2017-01-17 3 views
1

두 지역 CN 및 US 지역에 두 개의 다른 AWS 계정이 있습니다. 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

한 가지 가능한 방법처럼 어떻게 사용하는 것입니다 BOTO 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를 사용하여 profile_name을 지정할 수 없습니다.

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