AWS EC2多账户的Powershell脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS EC2多账户的Powershell脚本相关的知识,希望对你有一定的参考价值。

我一直在寻找示例powershell脚本,该脚本将循环访问AWS中的多个帐户,并仅从每个帐户打印EC2实例信息。我一直在使用Python / Boto3完成相同的任务,但想学习Powershell的实现方法。我已经搜索过但找不到多帐户的任何示例,尤其是如何为每个帐户获取sts令牌并承担角色等。如果有人可以将我指向任何此类示例脚本(如果可用),那将是很好的。

感谢和问候。

答案

我确定您需要为每个帐户使用不同的凭据。对于每个帐户,您需要创建一个AWS凭证。有关如何执行此操作的示例,请参见:https://timharkin.com/managing-aws-credentials-with-powershell/

一旦保存了凭据,就可以使用三个嵌套循环来获取所需的信息。这些循环将是Credential-> Region-> EC2 Instance。此代码为:

$AccountCreds = "Credential1","Credential2"
$Regions="ap-northeast-1","ap-northeast-2","ap-south-1","ap-southeast-1","ap-southeast-2","ca-central-1","eu-central-1","eu-north-1","eu-west-1","eu-west-2","eu-west-3","sa-east-1","us-east-1","us-east-2","us-west-1","us-west-2"

foreach ($credential in $AccountCreds){
    Set-AWSCredential -ProfileName $credential

    foreach($region in $Regions){

        Set-DefaultAWSRegion $region
        try {

            (Get-EC2Instance  ).Instances |Format-Table  -AutoSize | Out-String  -Width 512

        }
        catch {

        }

    }
}

以上是关于AWS EC2多账户的Powershell脚本的主要内容,如果未能解决你的问题,请参考以下文章

Powershell AWS 自动化管理 (11) - 创建一个高可用的WordPress博客(中)

将 EC2 实例连接到另一个 AWS 账户上的 RDS 卷

aws账户停用,实例未停用,怎么办

AWS EC2 使用root账户密码登陆

编写 IAM 策略,其中任何具有 EC2 完全访问权限的用户都不能删除 AWS 账户中任何其他用户的实例

Join EC2 into AD with SSM and remote powershell in AWS