Скрипты Powershell для мультиаккаунтов AWS EC2

Я искал пример сценария powershell, который будет перебирать несколько учетных записей в AWS и просто печатать информацию об экземпляре EC2 из каждой учетной записи. Я использую Python/Boto3 для выполнения той же задачи, но хочу изучить способ Powershell для этого. Я искал, но не смог найти ни одного примера мультиаккаунта, особенно того, как получить токен sts для каждой учетной записи, взять на себя роль и т. д. Если бы кто-нибудь мог указать мне любой такой пример сценария, если он доступен, это было бы здорово.

Спасибо и привет.


person Fahd Mirza    schedule 03.12.2019    source источник
comment
Это может быть полезно forums.aws.amazon.com/thread.jspa?messageID= 856626 . Однако это с модулем powershell.   -  person Sanny Patel    schedule 09.12.2019


Ответы (1)


Я предполагаю, что вам потребуются разные учетные данные для каждой учетной записи. Для каждой учетной записи вам потребуется создать учетные данные AWS. Пример того, как это сделать, см. на странице https://timharkin.com/managing-aws-credentials-with-powershell/

После сохранения учетных данных вы можете использовать три вложенных цикла для получения необходимой информации. Эти циклы будут «Учетные данные» -> «Регион» -> «Экземпляр EC2». Код для этого будет:

$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 {

        }

    }
}
person tim_harkin    schedule 03.02.2020