前提
アプリケーションには Python を使用し、AWS へのアクセスは boto3 を使用します。
実際に動作させるファイルには以下を使用します。(参考)
import boto3
def hello_s3():
"""
Use the AWS SDK for Python (Boto3) to create an Amazon Simple Storage Service
(Amazon S3) resource and list the buckets in your account.
This example uses the default settings specified in your shared credentials
and config files.
"""
s3_resource = boto3.resource('s3')
print("Hello, Amazon S3! Let's list your buckets:")
for bucket in s3_resource.buckets.all():
print(f"\t{bucket.name}")
if __name__ == '__main__':
hello_s3()
やり方
ローカルの ~/.aws を、Dockerコンテナの /root/.aws にマウントすることで、認証情報をコンテナに渡すことができます。
volumes:
- ~/.aws/:/root/.aws
default のプロファイルを使用する場合は上記の設定変更のみでOKです。
default 以外のプロファイルを使用する場合は、環境変数でAWS_PROFILE
を定義します。
以下では、ローカルで設定されたAWS_PROFILE
の値を使用するよう、環境変数の宣言のみを行なっています。
environment:
- AWS_PROFILE
IAM ユーザーに MFA を設定している場合も、aws-mfa 等を利用して有効な一時クレデンシャルを ~/.aws/credentials に設定しておけば、この方式で認証情報をコンテナに渡すことができます。
コメント