Рекомендации по использованию ключей доступа AWS IAM для использования с AWS SDK

Я хочу знать передовой опыт, используемый крупными компаниями для программного доступа к нескольким сервисам AWS, поскольку существует множество программ, которым требуется доступ к различным сервисам-2, и как этим управлять? Создали ли они несколько ключей доступа для каждой программы для двух разных сервисов или создали один, имеющий доступ ко всем сервисам?

1 ответ

Лучшей практикой для ресурсов AWS, таких как EC2/Lambda/etc, является использование ролей IAM, подробно описанных здесь. Короче говоря, вы не создаете пользователя для сервера, вы создаете роль, которую служба может принять и имеет набор разрешений, связанных с сервером EC2.

Этот сервер с ролью получает «временные» учетные данные во время работы, чтобы он мог получить доступ к любой службе, которую разрешает роль IAM. Когда я говорю «временно», учетные данные, предоставляемые службе, недолговечны, возможно, 24 часа, но по истечении срока их действия выдаются новые учетные данные. Обычно это прозрачно, если только вы не пишете программное обеспечение, которое их использует, и в этом случае вам придется время от времени их проверять. Возможно, я не совсем понимаю мелкие детали, но это более или менее правильно.

AWS имеет предопределенные политики, которые упрощают определение ролей.

Например, вы можете определить роль, в которой говорится: «Серверы EC2 с этой ролью могут отправлять запросы в SQS, извлекать данные из SQS, выполнять эту одну лямбда-функцию», и все, что не предоставлено явно, будет отклонено. Иногда требуется немного поэкспериментировать, чтобы получить необходимые разрешения. Лучше всего использовать минимальные привилегии, чтобы в случае взлома такого ресурса, как сервер EC2, он не имел прав администратора в AWS и не мог удалить все или начать майнинг криптовалюты.

Если вы работаете в крупной компании, выполняющей работу с AWS, я предлагаю вам пройти обучение AWS. Онлайн-обучение AWS Architect Associate в таком месте, как Cloud Guru, — это минимум, который вам понадобится. AWS — это сложная система. Я работаю в AWS полный рабочий день уже много лет, но каждый день узнаю что-то новое.

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