事前準備
IAMで、default, dev, prodユーザーを作成します。
devには、AmazonS3FullAccessのポリシーをアタッチし、S3へのアクセスを許可します。
S3に、bucket1, bucket2, bucket3を用意します。
credentialsファイルを利用
-
credentialsファイル
~/.aws/credentials
orC:\Users\USER_NAME\.aws\credentials
[default] aws_access_key_id = DEFAULT_ID aws_secret_access_key = SECRET_KEY1 [dev] aws_access_key_id = DEV_ID aws_secret_access_key = SECRET_KEY2 [prod] aws_access_key_id = PROD_ID aws_secret_access_key = SECRET_KEY3
-
Pythonプログラム
import boto3.session dev_sess = boto3.session.Session(profile_name='dev') s3 = dev_sess.resource('s3') for bucket in s3.buckets.all(): print(bucket.name)
※ profile_nameのデフォルトは、profile_name='default'です。
アクセスID、シークレットキーを直接指定
-
Pythonプログラム
import boto3.session dev_sess = boto3.session.Session( aws_access_key_id='DEV_ID', aws_secret_access_key='SECRET_KEY2') s3 = dev_sess.resource('s3') for bucket in s3.buckets.all(): print(bucket.name)
※ ID/パスワードがプログラムに埋め込まれています。実運用では避けましょう。
実行結果
- 'dev'を指定
bucket1
bucket2
bucket3
- 'prod'を指定
ClientError: An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied
- 'foo'を指定
ProfileNotFound: The config profile (foo) could not be found