Документация AWS " рекомендует [s] удалить корневые ключи доступа пользователя ", а " not использовать учетную запись AWSпользователь root для ваших повседневных задач", потому что" [a] тот, у кого есть ключ доступа для вашей учетной записи root пользователя AWS, имеет неограниченный доступ ко всем ресурсам вашей учетной записи . "
Но тогда авторитетный ответ предлагает" создать учетные данные пользователя IAM с соответствующими разрешениями и поместить их в ~/.aws/credentials
файл . "
IIUC, это означает, что у моего ~/.aws/credentials
будет мой AWS IAM " именованные профили ", который будет выглядеть как this :
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[ses_user]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
[s3_user]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=2Zp9UtkClwBF/je7MtGb/o8nvbh3yCEXAMPLEKEY
Выйтиэти идентификаторы IAM в моем файле ~/.aws/credentials
(в контейнере Docker) в экземпляре EC2 означают лишь то, что тот, кто их захватывает, не сможет запустить amock со всей учетной записью AWS, но сможет запустить amock только один кусок ввремя с частями AWS SDK.
Это небольшой консольособенно для достаточно большого приложения, которое обращается ко многим сервисам AWS.
Почему же в качестве альтернативы корневым ключам доступа предлагаются вечные идентификаторы IAM (идентичные в ~/.aws/credentials
)?Разве это не так, единственные временные полномочия обеспечивают значительную дополнительную безопасность?