And*_*hov 9 administration amazon-ec2 amazon-web-services devops-services
我们之前的 DevOps 在 EC2 中创建了几个密钥对。看起来有些已经不再使用了。所以我想删除它们。如何找到密钥对的创建时间以及当前是否正在使用(最好在控制台中)?
ken*_*kas 10
KeyPairs这将提供正在使用的AWS 列表。
aws ec2 --profile default describe-key-pairs --query KeyPairs[].[KeyName] --output text |xargs -I {} aws ec2 --profile default describe-instances --filters Name=key-name,Values={} --query Reservations[].Instances[].[KeyName,InstanceId] --output text| uniq
Run Code Online (Sandbox Code Playgroud)
它获取一个列表KeyPairs并使用该输出来匹配使用这些输出的服务器Keys。如果不使用a,KeyPair它将不会出现在列表中。
输出:
fake_key
第二个假密钥
这也将匹配已关闭的服务器。
我想看看这会是什么样子,Python所以你就开始吧。这将获得未使用的键和输出键的列表。
#! /usr/bin/env python
import boto3
region = 'us-east-1'
session = boto3.Session(profile_name='default')
ec2 = session.client('ec2')
response = ec2.describe_key_pairs()['KeyPairs']
for key in response:
found_instance = ec2.describe_instances(
Filters=[
{
'Name': 'key-name',
'Values': [key['KeyName']]
}
]
)['Reservations']
if len(found_instance) == 0:
print (key['KeyName'] + " is unused")
Run Code Online (Sandbox Code Playgroud)
输出:
假密钥未使用
| 归档时间: |
|
| 查看次数: |
4006 次 |
| 最近记录: |