В современных условиях облачных вычислений организации часто используют несколько учетных записей AWS для разделения своих рабочих нагрузок, приложений и ресурсов. Однако управление доступом и разрешениями для этих учетных записей может оказаться сложной задачей. Роли AWS Identity and Access Management (IAM) представляют собой мощное решение, упрощающее доступ к нескольким учетным записям и одновременно повышающее безопасность и возможности совместной работы. В этой записи блога мы рассмотрим различные методы включения доступа к нескольким учетным записям с помощью ролей IAM, сопровождаемые примерами кода.
- Метод 1. Переключение ролей через консоль управления AWS
Один из самых простых способов взять на себя роль в другом аккаунте AWS — использовать Консоль управления AWS. Выполните следующие действия:
-
Войдите в консоль управления AWS.
-
Перейдите к службе IAM.
-
Нажмите «Роли» в меню слева.
-
Выберите из списка нужную роль IAM.
-
Нажмите кнопку «Сменить роль».
-
Введите идентификатор учетной записи, имя роли и, при необходимости, внешний идентификатор.
-
Нажмите «Сменить роль», чтобы принять на себя эту роль.
-
Метод 2: вызов API AssumeRole
Для программного доступа пакеты AWS SDK предоставляют API-вызов AssumeRole, который позволяет вам принять роль программным способом. Вот пример использования AWS SDK для Python (Boto3):
import boto3
client = boto3.client('sts')
response = client.assume_role(
RoleArn='arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME',
RoleSessionName='CrossAccountSession'
)
# Use the temporary credentials in the response for subsequent API calls
access_key_id = response['Credentials']['AccessKeyId']
secret_access_key = response['Credentials']['SecretAccessKey']
session_token = response['Credentials']['SessionToken']
- Метод 3: роль нескольких аккаунтов и политика доверия
Другой подход — создать роль перекрестного аккаунта в целевом аккаунте AWS и установить доверительные отношения с исходным аккаунтом AWS. Этот метод требует определения политики доверия в роли IAM целевой учетной записи. Вот пример политики доверия, разрешающей доступ из определенной учетной записи:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::SOURCE_ACCOUNT_ID:root"
},
"Action": "sts:AssumeRole"
}
]
}
- Метод 4: организации AWS и политики управления сервисами (SCP)
Если вы используете AWS Organizations для управления несколькими аккаунтами, вы можете использовать политики управления сервисами (SCP), чтобы предоставить доступ к нескольким аккаунтам. SCP позволяют вам устанавливать детальные разрешения на уровне организации. Прикрепив SCP к исходной учетной записи, вы можете предоставить доступ целевой учетной записи. Вот пример SCP:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAssumeRole",
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::TARGET_ACCOUNT_ID:role/ROLE_NAME"
}
]
}
Роли IAM играют решающую роль в обеспечении безопасного доступа к нескольким аккаунтам в AWS. Внедряя методы, обсуждаемые в этой статье, организации могут оптимизировать совместную работу, эффективно управлять контролем доступа и обеспечивать безопасность своих ресурсов для нескольких учетных записей. Будь то консоль управления AWS, программные вызовы API, политики доверия или организации AWS, роли IAM обеспечивают гибкость и контроль, необходимые для создания надежной архитектуры доступа между аккаунтами.
Применяя эти методы, организации могут повысить уровень своей безопасности, одновременно способствуя эффективному сотрудничеству между аккаунтами AWS.
Не забывайте применять передовые методы обеспечения безопасности, такие как регулярная проверка и смена учетных данных IAM, мониторинг активности IAM и использование принципов минимальных привилегий, чтобы обеспечить целостность настройки доступа к нескольким учетным записям.