Ключи доступа AWS без доступа к консоли - PullRequest
0 голосов
/ 11 декабря 2018

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

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

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

Спасибо!

1 Ответ

0 голосов
/ 17 декабря 2018

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

Возможны как через интерфейс командной строки (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#Using_CreateAccessKey_CLIAPI

ПРИМЕР ОБНОВЛЕНИЯ ОБНОВЛЕНИЯ КЛАВИШИ С ИСПОЛЬЗОВАНИЕМ CLI:

Прежде чем вы попробуете это из 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.

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

...