2017-01-17 3 views
1

私は2つの異なる地域のCNと米国の2つのAWSアカウントを持っています。フォローアップコードのように見える。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

のboto用いることであろう。開始のために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" 
) 

から情報を取得することができます。注記:クライアントを使用してprofile_nameを指定することはできません。

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

注意:STS/temporary security credentialを使用してEC2インスタンスを設定すると、このようなセッショントークンを取得できます。

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

関連する問題