boto3 で デフォルトprofile以外を使う


デフォルトの場合

import boto3

s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)

ACCESS_KEY, SECRET_KEYを指定

ドキュメント

import boto3
from boto3.session import Session

session = Session(aws_access_key_id='<YOUR ACCESS KEY ID>',
                  aws_secret_access_key='<YOUR SECRET KEY>',
                  region_name='<REGION NAME>')

s3 = session.resource('s3')

~/.aws/credentials の profile名で指定する

Session に profile_name を渡す。

ドキュメント 見ても分からず、githubのissue で発見

import boto3
from boto3.session import Session

profile = '<YOUR_PROFILE_NAME>'
session = Session(profile_name=profile)

s3 = session.resource('s3')