создать код Powershell, который работает с AWS: перечислить пары ключей EC2, которые не используются экземплярами - PullRequest
0 голосов
/ 25 октября 2019

Я хочу создать код Powershell, который работает с AWS: для перечисления пар ключей EC2, которые не используются экземплярами.

aws ec2 - профиль по умолчанию description-key-pair --query KeyPairs []. [KeyName] - выходной текст | xargs -I {} aws ec2 - профиль по умолчанию description-instances --filters Name = имя-ключа, значения = {} - резервирование запроса []. Экземпляры []. [KeyName, InstanceId] - выходной текст |uniq

этот код не работает для powershell

1 Ответ

0 голосов
/ 25 октября 2019

Вам необходимо работать с модулем AWS Powershell.

Хитрость здесь заключается в работе с функцией 2-х командлетов - Get-EC2instance и Get-EC2KeyPair. Прежде всего, вам необходимо получить все ключи, которые используются сейчас. Позже вам нужно получить все пары ключей и отфильтровать их по основным для каждого оператора if.

Взгляните на следующий фрагмент кода:

Import-Module AWSPowerShell
$keysInUse = @()
$keysNotInUse = @()

#Set AWS Credential        
Set-AWSCredential -AccessKey "AccessKey" -SecretKey "SecretKey"        

#Get ec2 key name from each instance
$allInstancesKeys = (Get-EC2instance  -Region "YourRegion").Instances.KeyName

#Get all key based on region and check if there's an instance who use this key
Get-EC2KeyPair -Region "YourRegion" | % {

    if($_.KeyName -notin $allInstancesKeys)
    {
        $keysNotInUse += $_.KeyName
    }

    else
    {
        $keysInUse += $_.KeyName
    }

} 

Write-Output "Keys not in use: $($keysNotInUse -join ',')\n
Keys in use: $($keysInUse -join ',')"

Экземпляры, которыми я владею, и ключимя:

enter image description here

Вывод:

enter image description here

Как создать новыйAccessKey и SecretKey - Управление ключами доступа для вашей учетной записи AWS .

Установка модуля AWSPowerShell.

Подробнее о командлете Get-EC2KeyPair.

Из документов:

Описывает указанные пары ключей или все ваши пары ключей.

Подробнее о Get-EC2instance

Возвращает информацию о ваших экземплярах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...