こんにちは。hacknoteのr.katoです。
ふと、boto3関連の過去記事を見返したら、configとcredentialsに関してを書いていなかったので紹介していきます。
ちなみに、みなさんはboto3で認証を得るときにどうしていますか?
boto3.Session(aws_access_key_id = access_key_id, aws_secret_access_key = secret_access_key)
みたいにidとkeyをソースにベタ書きしていますか?
この場合、github等にアップするときとかでミスったら大変ですし、いちいち編集するのもめんどくさいです。
なので、私の場合はconfigとcredentialsに認証情報を書き込み、profileで指定しています。
設定の仕方
前提として、boto3とawscliがインストールされているものとします。
$HOME/.aws
にconfigファイルとcredentialsファイルがあれば中身を編集、無ければ作成し、次のような構成にします。
$HOME - .aws - config └ credentials
- configファイルの書き方
[profile1] region = ap-northeast-1 output = json [profile2] region = ap-northeast-1 output = json
といった感じで指定してあげます。
- credentialsファイルの書き方
[profile1] aws_access_key_id = XXXXXXXXXXXXX aws_secret_access_key = XXXXXXXXXXXXX [profile3] aws_access_key_id = XXXXXXXXXXXXX aws_secret_access_key = XXXXXXXXXXXXX
といった感じで指定してあげます。
この時、configファイルとcredentialsファイルでのprofile名が共通の物は、boto3で指定したときにどちらも適用されます。
例えば、configファイルとcredentialsファイルが上記の場合
profile1を指定したら、
region = ap-northeast-1、output = json と id、keyが適用され、
profile3を指定したら、
id、keyのみ適用されます。
boto3でのprofileの指定方法
configファイルとcredentialsファイルを作成したら、次のようにprofileを指定してあげることで、使用できます。
import boto3 session = boto3.Session(profile_name="profile1")
c.f.) clientを使いたい方はこちら