Featured image of post 【AWS CLI】Pythonでboto3ライブラリを使用する際の認証情報をprofileやACCESS_KEY/SECRET_KEYを指定して実行する方法【まとめ】

【AWS CLI】Pythonでboto3ライブラリを使用する際の認証情報をprofileやACCESS_KEY/SECRET_KEYを指定して実行する方法【まとめ】

524文字

profileを分けたい

PythonでAWS操作をしたい場合に、boto3ライブラリを使用すると特に意識せずに利用するとdefaultのプロファイルの認証情報が利用されます。

defaultのプロファイルが使用される
s3 = boto3.client('s3')

しかし、場合によっては、使用するプロファイルや認証情報を指定したいケースがあります。

もちろん、boto3では様々な方法で認証情報を指定することが可能なので今回はそちらをご紹介致します。

手順

前提

今回は~/.awsディレクトリ内にcredentialsconfigで認証情報が設定されていることとします。

~/.aws/config
[blogenist]
output = json
region = ap-northeast-1

~/.aws/credentials
[blogenist]
aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

profile指定

まずはprofileで指定する方法です。

その場合はboto3.sessionを利用して以下のように記述することで実現が可能です。

profile指定
from boto3.session import Session

PROFILE = 'blogenist'
session = Session(profile_name=PROFILE)
s3 = session.client('s3')

ACCESS_KEY/SECRET_KEY指定

ACCESS_KEYとSECRET_KEYを直接指定する方法でも以下のようにすることで可能です。

認証キー指定
from boto3.session import Session

ACCESS_KEY='XXXXXXXXXXXXXXXXXXXXX'
SECRET_KEY='YYYYYYYYYYYYYYYYYYYYY'
REGION='ap-northeast-1'
session = Session(aws_access_key_id=ACCESS_KEY,
                  aws_secret_access_key=SECRET_KEY,
                  region_name=REGION)

s3 = session.client('s3')

終わりに

以上のように簡単な方法ですが、忘れがちなので備忘録として残しました。

この記事が困っている方のお力になれれば幸いです♪