この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
好物はインフラとフロントエンドのかじわらゆたかです。 SageMaker StudioでTerminalを立ち上げてAWS CLIを使う際にAssume Roleをするさいの設定方法について解説します。
どうすればよいか?
SageMaker Studioは内部ではECSを用いて環境を作成している模様です。
そのため、~/.aws/config
のsouce_profileにはAmazon ECS コンテナにアタッチされた IAM ロールの使用を明示するEcsContainerを記載する必要があります。
具体的には以下のようになります。
~/.aws/config
[profile assumeTarget]
role_arn = arn:aws:iam::123456789012:role/assumeTargetRole
credential_source = EcsContainer
AWS CLI での IAM ロールの使用 - AWS Command Line Interface
あとは作成したProfileを使うようにAWS CLIで指定して実行すればOKです。
aws s3 ls --profile assumeTarget
まとめ
Assume元がEC2やECS等の場合、AWSCLIでAssumeする際はAssume元の指定は明示する必要があるという話でした。 また、今回のSageMaker Studioのようなケースで裏で動いている環境がそういった場合も、同様のことを認識しておく必要があります。