SageMaker Studio で立ち上げたTerminal環境でAWS CLIでスイッチロールをするときの設定方法

2022.11.10

はじめに

好物はインフラとフロントエンドのかじわらゆたかです。 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のようなケースで裏で動いている環境がそういった場合も、同様のことを認識しておく必要があります。