Вы можете использовать AWS Identity and Access Management Roles Anywhere для получения временных учетных данных безопасности в IAM для рабочих нагрузок, таких как серверы, контейнеры и приложения, которые работают за пределами AWS.
Чтобы использовать IAM Roles Anywhere, ваши рабочие нагрузки должны использовать сертификаты X.509, выданные вашим центром сертификации (ЦС). Вы регистрируете ЦС в IAM Roles Anywhere в качестве якоря доверия, чтобы установить доверие между вашей инфраструктурой открытых ключей (PKI) и IAM Roles Anywhere. Вы также можете использовать AWS Certificate Manager Private Certificate Authority (ACM PCA) для создания ЦС, а затем использовать его для установления доверия с IAM Roles Anywhere.
Ваше приложение делает запрос на аутентификацию в IAM Roles Anywhere, отправляя свой открытый ключ (закодированный в сертификате) и подпись, подписанную соответствующим закрытым ключом. Ваше приложение также указывает в запросе роль, которую оно должно принять. Когда IAM Roles Anywhere получает запрос, он сначала проверяет подпись с открытым ключом, а затем проверяет, что сертификат был выдан якорем доверия, ранее настроенным в учетной записи. Более подробную информацию см. в документации по проверке подписи.
Концепции IAM Roles Anywhere
Якоря доверия
Вы устанавливаете доверие между IAM Roles Anywhere и центром сертификации (ЦС) путем создания якоря доверия. Якорь доверия — это либо ссылка на ACM PCA, либо сертификат другого ЦС. Ваши рабочие нагрузки за пределами AWS аутентифицируются на якоре доверия с помощью сертификатов, выданных доверенным ЦС в обмен на временные учетные данные AWS. Дополнительную информацию см. в разделе Модель доверия IAM Roles Anywhere.
Роли
Роль IAM — это идентификатор IAM, который вы можете создать в своей учетной записи и который имеет определенные разрешения. Роль предназначена для того, чтобы ее мог принять любой, кому она нужна. Чтобы IAM Roles Anywhere мог принять роль и предоставить временные учетные данные AWS, роль должна доверять принципалу службы IAM Roles Anywhere. Дополнительную информацию смотрите в разделе Доверие к роли.
Профили
Чтобы определить, какие роли принимает IAM Roles Anywhere и что ваши рабочие нагрузки могут делать с временными учетными данными, вы создаете профиль. В профиле можно определить разрешения с помощью управляемых политик IAM, чтобы ограничить разрешения для созданного сеанса.
Варианты использования IAM Roles Anywhere
Вы можете использовать IAM Roles Anywhere для любых рабочих нагрузок, выполняемых в вашем центре обработки данных или у других облачных провайдеров, которым требуются учетные данные для доступа к API AWS. Вот некоторые из примеров использования, которые, по нашему мнению, будут интересны клиентам на основе разговоров и моделей, которые мы наблюдали:
-
Резервное копирование локальных данных в Amazon Simple Storage Service (Amazon S3).
-
Предоставление местным рабочим нагрузкам Kubernetes доступа к собственным сервисам AWS, таким как Amazon DynamoDB и Amazon Simple Queue Service (Amazon SQS).
-
Доступ к секретам, хранящимся в AWS Secrets Manager, из рабочих нагрузок вне AWS
-
Отправлять результаты проверок безопасности из локальных источников в AWS Security Hub
-
Обеспечение доступа гибридных рабочих нагрузок к службам AWS в ходе поэтапной миграции.
Пример сценария Для демонстрации того, как IAM Roles Anywhere
Шаг 1: Установите доверие
Первым шагом использования IAM Roles Anywhere является создание якоря доверия, для чего необходимо указать центр сертификации (ЦС), который IAM Roles Anywhere будет использовать для проверки ваших запросов на аутентификацию. Вы можете использовать либо ресурс ACM PCA в вашей учетной записи, либо загрузить свой собственный сертификат ЦС.
Чтобы настроить центр сертификации (ЦС)
-
Сделайте одно из следующих действий:
-
Чтобы использовать ресурс ACM PCA, откройте консоль ACM PCA. Следуйте инструкциям в руководстве пользователя ACM PCA.
-
Чтобы использовать другой ЦС, следуйте инструкциям, предоставленным ЦС. Вы предоставляете тело сертификата на следующем этапе.
Чтобы создать якорь доверия
-
Войдите в консоль IAM Roles Anywhere.
-
Выберите Создать якорь доверия.
-
В поле Имя якоря доверия введите имя якоря доверия.
-
Для параметра Источник центра сертификации (ЦС) выполните одно из следующих действий:
Чтобы использовать ресурс ACM PCA, выберите ACM Private CA. В таблице ACM Private CA выберите ресурс ACM PCA.
Чтобы использовать другой ЦС, выберите External certificate bundle. В поле External certificate bundle вставьте тело сертификата вашего ЦС. Сертификат должен быть в формате Privacy Enhanced Mail (PEM).
-
(Необязательно) Добавьте метаданные к якорю доверия, прикрепив теги в виде пар ключ-значение. Дополнительные сведения см. в разделе Тегирование ресурсов AWS.
-
Выберите Создать якорь доверия.
Шаг 2: Настройка ролей
Прежде чем создавать профиль IAM Roles Anywhere, вам нужна хотя бы одна роль IAM, которая доверяет принципалу службы IAM Roles Anywhere. Затем вы можете создать профиль, в котором перечислены роли, которые IAM Roles Anywhere принимает. В профиле вы также можете ограничить разрешения для созданного сеанса с помощью управляемых политик IAM.
Чтобы настроить роль на доверие к IAM Roles Anywhere, выполните следующие действия.
-
Войдите в AWS Management Console и откройте консоль IAM по адресу https://console.aws.amazon.com/iam/.
-
На странице Роли IAM выберите нужную роль.
-
На вкладке Доверительные отношения выберите Редактировать политику доверия.
-
Обновите политику доверия, включив в нее
rolesanywhere.amazonaws.com
, как показано ниже.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"rolesanywhere.amazonaws.com"
]
},
"Action": [
"sts:AssumeRole",
"sts:TagSession",
"sts:SetSourceIdentity"
]
}
]
}
Чтобы создать профиль
-
Войдите в консоль IAM Roles Anywhere.
-
Выберите Создать профиль.
-
В поле Имя профиля введите имя профиля.
-
В разделе Роль выберите роль, для которой вы обновили политику доверия.
-
(Необязательно) Настройте политики сеансов, выбрав до 10 управляемых политик или создав встроенную политику.
Политики сеанса ограничивают разрешения для созданного сеанса, но не предоставляют разрешения. Дополнительные сведения см. в разделе Политики сеанса.
-
(Необязательно) Добавьте метаданные к профилю, прикрепив теги в виде пар ключ-значение. Дополнительные сведения см. в разделе Тегирование ресурсов AWS.
-
Выберите Создать профиль.
Использовать роли в любом месте
- Аутентификация из вашей среды Ваши рабочие нагрузки, не относящиеся к AWS, проходят аутентификацию с помощью сертификата, доверенного вашим якорем доверия, и получают временные учетные данные от роли. См. документацию IAM Roles Anywhere
Чтобы сначала протестировать функциональность, запустите инструмент credential helper (aws_signing_helper) вручную с локального сервера, как показано ниже.
./aws_signing_helper credential-process
--certificate /path/to/certificate.pem
--private-key /path/to/private-key.pem
--trust-anchor-arn <TA_ARN>
--profile-arn <PROFILE_ARN>
--role-arn <ExampleS3WriteRole_ARN>
Вы должны успешно получить учетные данные сессии от IAM Roles Anywhere.
Подробнее