2017-01-17 9 views
1

У меня есть две разные учетные записи AWS в двух регионах CN и США, могу ли я использовать boto3 для подключения к другому региону? выглядят как код для последующих действий.boto3 как подключить другую учетную запись в другом регионе

Boto2 код:

sqs = boto.sqs.connect_to_region(
    region, aws_access_key_id=access_key, aws_secret_access_key=secret_key) 

как Boto3 сделать это как boto2

ответ

2

Одним из возможных методов было бы использовать бото Session

from boto3 import Session 

# Example: connecting to 'us-east-1' region 

session = Session(aws_access_key_id=*****,aws_secret_access_key=****,region_name='us-east-1') 
sqs_client = session.client('sqs') 
sqs_resource = session.resource('sqs') 
0

Существует много способов сделать это. Для начала см. credential configuration guide.

Вы можете быстро получить информацию от от boto3.Session

# use aws credential profile 
session = boto3.Session(profile_name='dev') 

# Or hardcoded your credentail 
session = boto3.Session(
    aws_access_key_id="****", 
    aws_secret_access_key="****", 
    region_name="us-east-1" 
) 

Второй способ питания трудно закодированный верительных в вызове клиента. ПРИМЕЧАНИЕ. Вы не можете указать имя профиля с помощью клиента.

client = boto3.client(
    's3', 
    aws_access_key_id="****", 
    aws_secret_access_key="****", 
    region_name="us-east-1" 
) 

Примечание: Если установка EC2 экземпляра с помощью STS/временное удостоверение безопасности, то вы можете получить маркер сеанса, как это.

sts = boto3.client('sts') 
my_token = sts.get_session_token()) 
s3 = boto3.client(
     's3', 
     region_name="us-east-1", 
     aws_session_token = my_token 
    ) 
+0

как я могу получить aws_session_token? – scott

+0

@scott: ответ обновлен. Вы не можете использовать токен сеанса, если вы не настроите службы переписки. – mootmoot