boto의 profile_name 설정으로 여러개의 Credential 사용하기

By | 2014/11/07

[markdown]
# boto의 profile_name 설정으로 여러개의 Credential 사용하기

### 주의
AWS_CREDENTIAL_FILE 이 환경변수로 있는 경우에는 자동으로 해당 파일을 `boto`에서 인식하므로 여러개의 credential 설정을 사용할 수 없다. 이 경우에는 해당 설정을 삭제해야한다.

`boto`의 환경설정 파일로 인식되는 경로로 아래의 3가지가 있다.

* /etc/.boto : 모든 유저가 공유하는 세팅
* ~/.boto : 각 유저별 세팅
* ~/.aws/credentials : aws SDK와 공유하는 설정

우리가 만저볼 것은 `~/.boto` 파일로 각 유저별롤 세팅가능한 설정인데 profile 을 설정함으로서 여러개의 credential을 사용할 수 있다.

“`text
[Credentials]
aws_access_key_id = access_key_id1
aws_secret_access_key = secret_access_key1

[profile test]
aws_access_key_id = access_key_id2
aws_secret_access_key = secret_access_key2
“`

아래는 테스트 코드이다. `.boto` 파일에 설정한 내용에 따라 다른 AWS계정의 credential을 사용하게 될 것이다.

“`python
import boto.ec2

# 기본 Credentials 로 되어 있는 설정을 사용
conn = boto.ec2.connect_to_region(‘ap-northeast-1’)
conn.get_all_addresses()

# test 라고 되어 있는 설정을 사용
conn = boto.ec2.connect_to_region(‘ap-northeast-1′, profile_name=’test’)
conn.get_all_addresses()
“`
[/markdown]