【AWS】IAM ロールのパスをルート(/)以外にする
【AWS】IAM ロールのパスをルート(/)以外にする:
こちらのサイト を参考に Sagemaker を触ってみようとしたところ、
トレーニング部分で
エラーが発生しました。
結論としては下の図のようにSagemakerにアタッチするロールのパスを
出来ず、aws cli で行う必要がありました。
同じようなことがあったときに迷わないようにメモしておきます。
今回作るのはSagemakerのサービスロールなので、こういうファイルを作成します。
以下のコマンドを実行すれば、パスが
後は AmazonSageMakerFullAccess など必要なポリシーをアタッチすればOK。
json ファイルの指定には、
はじめに
こちらのサイト を参考に Sagemaker を触ってみようとしたところ、トレーニング部分で
sagemaker unable to assume role
というエラーが発生しました。
結論としては下の図のようにSagemakerにアタッチするロールのパスを
/service-role/
に必要があったのですが、その設定がコンソール上から出来ず、aws cli で行う必要がありました。
同じようなことがあったときに迷わないようにメモしておきます。
設定方法
今回作るのはSagemakerのサービスロールなので、こういうファイルを作成します。$ cat sage.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
/service-role/
のロールが出来ます。$ aws iam create-role --role-name [ロール名] --path /service-role/ --assume-role-policy-document file://sage.json { "Role": { "Path": "/service-role/", "RoleName": "[ロール名]", "RoleId": "XXXXXXXXXXXX", "Arn": "arn:aws:iam::XXXXXXXX:role/service-role/[ロール名]", "CreateDate": "2018-12-08T19:20:28Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } } } }
注意
json ファイルの指定には、file://sage.json
のようにする必要があります。file://
無しだとエラーが返されました。$ aws iam create-role --role-name TestRole --path /service-role/ --assume-role-policy-document sage.json An error occurred (MalformedPolicyDocument) when calling the CreateRole operation: This policy contains invalid Json
コメント
コメントを投稿