Как проверить, используется ли еще пара ключей в EC2? - PullRequest
1 голос
/ 24 мая 2019

Наши предыдущие Devops создали несколько ключевых пар в EC2.Похоже, некоторые из них больше не используются.Поэтому я хотел бы удалить их.Как я могу узнать, когда были созданы пары ключей и используются ли они в настоящее время (предпочтительно в консоли)?

Ответы [ 3 ]

1 голос
/ 25 мая 2019

Пары ключей являются функцией Linux, а не AWS.

Когда экземпляр Amazon EC2 запускается из Amazon Linux AMI, в экземпляре есть некоторый код, который копирует назначенную пару ключей в файл /users/ec2-user/.ssh/authorized_keys,После этого это просто обычный Linux.

Таким образом, единственный способ узнать, разрешает ли экземпляр вход в систему через определенную пару ключей, - это просмотреть каждый экземпляр, в файле .ssh/authorized_keys каждого пользователя, чтобы найти эту пару ключей..

Следует отметить, что сгенерированные AWS пары ключей не являются рекомендуемым способом постоянного управления входами в экземпляры.Ваша организация, вероятно, будет иметь сервер Active Directory или LDAP, поэтому необходимо настроить экземпляры для использования этих служб аутентификации, а не пар ключей AWS.Таким образом, было бы очень просто деактивировать пользователей в центральном местоположении, а не посещать каждый экземпляр по отдельности.

Итог: Следуйте обычным процедурам безопасности в Amazon EC2, а такжена территории.

0 голосов
/ 25 мая 2019

Будет предоставлен список используемых AWS KeyPairs.

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

Он получает список KeyPairs и использует этот вывод для сопоставления серверов, использующих эти Keys.Если KeyPair не используется, он не появится в списке.

Вывод:

fake_key
second-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")

Вывод:

фальшивый ключ не используется

0 голосов
/ 24 мая 2019

В настоящее время AWS не предоставляет какого-либо способа получения даты и времени создания пары ключей.В вашем случае вы можете проверить пары ключей, созданные для экземпляров в консоли EC2, и удалить остальные пары ключей, которые не используются.

...