Ключи доступа AWS без доступа к консоли

Можно ли получить ключи доступа AWS, не генерируя их с консоли?

Я хочу иметь возможность создать скрипт, который будет запрашивать пользователя / пароль /(TOTP) и генерировать временные ключи доступа для выполнения нескольких задач. Цель состоит в том, чтобы дать разработчикам одну программу, чтобы им даже не приходилось иметь дело с ключами доступа каждый раз, когда они знают свой пароль.

Я посмотрел везде, где я верю, но не могу найти никаких ресурсов, если это даже выполнимо.

Спасибо!

1 ответ

Да, это выполнимо.

Оба через интерфейс командной строки (CLI) и API возможны.

Команда CLI:

aws iam create-access-key

Вызов API:

CreateAccessKey

См. Ссылку на документацию ниже для получения дополнительной информации. Это хорошее чтение и охватывает лучшие темы, такие как вращение ваших ключей с помощью API или CLI. Еще одна хорошая рекомендация - НЕ использовать свою учетную запись root для повседневного использования.

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html

ПРИМЕР ОБНОВЛЕНИЯ КЛЮЧА ВРАЩЕНИЯ С ИСПОЛЬЗОВАНИЕМ

Прежде чем попробовать это из CLI - создайте нового пользователя IAM с правами администратора.

Шаг 1 - настройте CLI для использования ключей администратора:

aws configure

затем введите идентификатор ключа доступа и секретный ключ доступа для администратора.

Шаг 2 - список ключей для пользователя foo

 aws iam list-access-keys --user-name foo

Вывод будет похож на:

{
    "AccessKeyMetadata": [
        {
            "UserName": "foo",
            "AccessKeyId": "AKIAIY*****A7YBHCBEBQ",
            "Status": "Active",
            "CreateDate": "2018-11-10T14:02:56Z"
        }
    ]
}

Убедитесь, что есть только один, потому что пользователь может иметь максимум 2. Если у них уже есть 2, то шаг 3 завершится неудачей.

Шаг 3 - создайте новый ключ для пользователя foo

aws iam create-access-key --user-name foo

вы увидите вывод, аналогичный приведенному ниже. Это единственный раз, когда вы увидите секретный ключ для нового набора, поэтому вам нужно сохранить его.

{
    "AccessKey": {
        "UserName": "foo",
        "AccessKeyId": "****GAGA*****WEFWEWE",
        "Status": "Active",
        "SecretAccessKey": "*****sEcReT*****Tasdasd",
        "CreateDate": "2018-12-01T19:16:41Z"
    }
}

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

Если вы получили ошибку:

An error occurred (InvalidClientTokenId) when calling the ListAccessKeys operation: The security token included in the request is invalid.

тогда это признак того, что вы пытаетесь сделать это из учетной записи, что ваш токен устарел, недействителен или не имеет правильных привилегий.

Другие вопросы по тегам