Создание ключа доступа пользователя AWS IAM специально для SES - PullRequest
0 голосов
/ 03 сентября 2018

Я отслеживаю, как отправить электронное письмо, используя AWS SDK для Python (Boto) .

На странице руководства AWS для разработчиков using-credentials Страница, которую я прочитал:

Для обеспечения безопасности используйте ключи доступа пользователя AWS Identity and Access Management (IAM) вместо ключи доступа к учетной записи AWS [выделение добавлено].

Затем на Управление ключами доступа для пользователей IAM В конечном итоге меня ведут к этому разделу , и я должным образом подтверждаю использование

aws iam list-access-keys

, который я только что создал (в форме JSON):

{
    "AccessKeyMetadata": [
        {
            "UserName": "My_User_Name", 
            "Status": "Active", 
            "CreateDate": "2018-09-03T00:43:37Z", 
            "AccessKeyId": "JRUFKDHUWHE8DD495CHD"
        }
    ]
}

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

Как создать идентификацию IAM (доступ пользователя + пароль) для отправки электронной почты через SES и boto (исключая при этом возможность раскрытия всей учетной записи AWS)?

Ranting (и конструктивное предложение штатным сотрудникам AWS, если здесь): поможет конкретный брендинг. В Ikea я мог бы заказать стул или стол с бессмысленным именем Fjorstuvstok, но я точно знаю, что заказываю стул, который хочу.

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Ключи доступа к учетной записи AWS означают Root account ключи доступа / секретные ключи вашей учетной записи AWS. Когда вы регистрируетесь в AWS, используя свою электронную почту, создается учетная запись Root account. С этим связан ключ, который нужно удалить. (Поскольку это корневая учетная запись, она предоставляет неограниченный доступ ко всем службам AWS. Проверьте Учетные данные пользователя корневой учетной записи AWS и учетные данные пользователя IAM

В предупреждении предлагается использовать ключи доступа пользователя IAM. Таким образом, вы можете создать пользователя IAM в своей учетной записи aws, создать идентификатор ключа доступа и секретный ключ доступа, а также настроить его на своем компьютере, где вы выполняете свой код. (Это не очень хорошая практика в среде с более высоким уровнем развертывания. Если машина скомпрометирована, ключ доступа будет открыт) * ​​1007 *

Поскольку неясно, как вы запускаете код своего приложения (от ECS or EC2 or AWS Lambda), вы должны создать IAM role, чтобы предоставить доступ к SES, откуда вы собираетесь запускать свой код. Это позволит избежать выставления IAM access key Id и Secret access key из кода / машины вашего приложения.

0 голосов
/ 03 сентября 2018

Ключи доступа к учетной записи AWS - это ключи, принадлежащие пользователю root учетной записи . Чтобы проверить, что это такое, вам нужно знать имя пользователя вашей корневой учетной записи. Это можно проверить с помощью aws cli, используя корневые учетные данные AWS или войдя с учетными данными корневой учетной записи в консоль AWS и нажав «Мои учетные данные безопасности» под своим именем пользователя в верхнем правом углу.

Предполагая, что вы используете cli, убедитесь, что вы настроили корневые учетные данные в ~/.aws/credentials. Затем запустите:

aws iam get-user
{
    "User": {
        "UserName": "my_root_user_name", 
        "PasswordLastUsed": "2018-09-03T06:40:38Z", 
        "CreateDate": "2017-03-01T08:53:36Z", 
        "UserId": "9XXXXXXXXXXX", 
        "Arn": "arn:aws:iam::9XXXXXXXXXXX:root"
    }
}

Это предоставит вам информацию о вашем корневом пользователе. Это имя пользователя может затем использоваться для запроса ключей доступа:

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

Если какой-либо из ключей, перечисленных в этом результате, используется для SES, то это плохие новости. AWS рекомендует использовать ключи доступа, назначенные пользователям IAM (без полномочий root).

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