Переключение между учетными записями AWS — обычное требование для разработчиков, администраторов и организаций. В этой статье блога мы рассмотрим различные способы переключения учетных записей AWS, включая примеры кода. Если вы предпочитаете использовать интерфейс командной строки (CLI) AWS или комплекты разработки программного обеспечения (SDK) AWS на разных языках программирования, мы предоставим вам всю необходимую информацию. Давайте погрузимся!
Метод 1: CLI AWS с именованными профилями
CLI AWS позволяет настраивать именованные профили, которые представляют разные учетные записи AWS. Вот пример настройки именованных профилей в файле конфигурации AWS CLI:
$ aws configure --profile account1
AWS Access Key ID [None]: YOUR_ACCESS_KEY_ID
AWS Secret Access Key [None]: YOUR_SECRET_ACCESS_KEY
Default region name [None]: us-west-2
Default output format [None]: json
Чтобы переключиться на настроенный профиль, используйте опцию --profileс командами AWS CLI:
$ aws --profile account1 ec2 describe-instances
Метод 2: CLI AWS с переменными среды
В качестве альтернативы вы можете переключать учетные записи AWS с помощью переменных среды. Установите для переменных среды AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEYи AWS_DEFAULT_REGIONсоответствующие значения целевой учетной записи:
$ export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
$ export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
$ export AWS_DEFAULT_REGION=us-west-2
Теперь вы можете запускать команды AWS CLI для взаимодействия с нужной учетной записью:
$ aws ec2 describe-instances
Метод 3: AWS SDK
AWS SDK предоставляют API-интерфейсы для конкретного языка для взаимодействия с сервисами AWS. SDK обычно предлагают механизмы для программной настройки учетных данных AWS. Вот пример на Python с использованием AWS SDK для Boto3:
import boto3
session = boto3.Session(
aws_access_key_id='YOUR_ACCESS_KEY_ID',
aws_secret_access_key='YOUR_SECRET_ACCESS_KEY',
region_name='us-west-2'
)
s3 = session.client('s3')
response = s3.list_buckets()
Замените учетные данные и регион на данные целевой учетной записи. Теперь вы можете использовать AWS SDK для выполнения операций с нужным аккаунтом.
Метод 4: API AssumeRole
Если в целевой учетной записи настроена роль IAM, вы можете использовать API AssumeRole для получения временных учетных данных безопасности. Вот пример использования AWS SDK для Python (Boto3):
import boto3
sts_client = boto3.client('sts')
response = sts_client.assume_role(
RoleArn='arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME',
RoleSessionName='session-name'
)
session = boto3.Session(
aws_access_key_id=response['Credentials']['AccessKeyId'],
aws_secret_access_key=response['Credentials']['SecretAccessKey'],
aws_session_token=response['Credentials']['SessionToken'],
region_name='us-west-2'
)
s3 = session.client('s3')
response = s3.list_buckets()
Замените ACCOUNT_IDи ROLE_NAMEсоответствующими значениями. Этот метод позволяет временно переключиться на целевую учетную запись.
Смена учетных записей AWS необходима для управления несколькими средами и доступа к ресурсам разных учетных записей. В этой статье мы рассмотрели несколько методов переключения учетных записей AWS, включая интерфейс командной строки AWS с именованными профилями и переменными среды, AWS SDK и использование API AssumeRole. Выберите метод, который соответствует вашим требованиям, и интегрируйте его в свой рабочий процесс для беспрепятственного переключения аккаунтов.