#python #amazon-web-services #boto3 #amazon-iam
#python #amazon-web-сервисы #boto3 #amazon-iam
Вопрос:
Как получить временный программный доступ к IAM с помощью роли IAM без настройки aws configure?
ответ на python будет полезен
вставьте мне полный код, если у вас есть, пожалуйста.
Комментарии:
1. пожалуйста, не отклоняйте вопрос, не поправив меня.
2. Можете ли вы поделиться примером кода, который вы пробовали и который не сработал? Где будет выполняться код — EC2 / ECS / Lambda?
Ответ №1:
(base) [root@ip-172-31-39-101 ec2-user]# cat role.py
import boto3
import botocore
account_no=7439222006066 # another account number
role_name='iamest' # another account role
sts_client = boto3.client('sts')
assume_role_response = sts_client.assume_role(
RoleArn = 'arn:aws:iam::{0}:role/{1}'.format(account_no,role_name),
RoleSessionName = 'CloudWatchMetricRoleSession',
DurationSeconds = 900,
#ExternalId = '9949183895'
)
#Below session is required to create request using temporary credentials generated.
session = boto3.Session(
aws_access_key_id = assume_role_response['Credentials']['AccessKeyId'],
aws_secret_access_key = assume_role_response['Credentials']['SecretAccessKey'],
aws_session_token = assume_role_response['Credentials']['SessionToken']
)
#print('your keys are here:', session)
#below we are specifying region for temporary credentials stored in 'session' same like we #configure region in 'aws configure'
cloudwatch_client = session.client('cloudwatch',
region_name = 'us-east-1'
)
all_metric_items = []
# using temporary credentials for a request.
cpu_util_metrices_response = cloudwatch_client.list_metrics(
Namespace = 'AWS/EC2',
MetricName = 'CPUUtilization',
Dimensions = [
{
'Name': 'i-00a2e99dc0855d2b7',
'Value': 'us-east-1'
}
]
)
print (cpu_util_metrices_response)
Примечание:
1) в другой учетной записи должна быть создана роль для перекрестной учетной записи, а в политике доверия добавьте идентификатор учетной записи учетной записи aws, из которой вы отправляете запрос.
2) На сервере, с которого вы запускаете запросы aws, должна быть определена «настройка aws», чтобы запрашивать ключи временного доступа к другой учетной записи aws.
3) одна и та же учетная запись не может генерировать временные ключи доступа для запроса своих ресурсов