Open3
IAMロールでサービスロール(パス:/service-role/)を作りたい
IAMロールの作成で、パス「/service-role/
」を設定したものを作成したい。
例えば、AWS Lambda関数の作成時に自動で作成されるIAMロールには、このパスが設定されているので、揃えたい。
- AWSコンソール(Webの画面)からでは、できない...?
- AWS CLIの
iam create-role
で--path /service-role/
を指定してIAMロールを作成すればできる- 気楽な方法:雛形だけAWS CLIで作って、あとのIAMポリシーのアタッチなんかの追加調整は、AWSコンソール(Web)でする
AWS Lambda関数用の、ロール作成の例
-
ロール名を決める
今回は、AWS Lambda関数
func-foo
用のロールということで、ロール名はfunc-foo
にします。 -
パスのprefixを決める
AWS Lambda関数用ということで、パスのprefixは/service-role/lambda/
にします。1のロール名と合わせて、パスは
/service-role/lambda/func-foo
となります。 -
「信頼されたエンティティ」のポリシーは必須なので、これをjsonファイルとして作成する
trust_lambda.json{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
AWS CLIでIAMロールを作成
-
--role-name
オプションで、func-foo
を指定 -
--path
オプションで、/service-role/lambda/
を指定 -
--assume-role-policy-document
オプションに、1で作成したJSONファイル「trust_lambda.json」を、file://
を頭につけて指定
aws iam create-role \ --role-name func-foo \ --path /service-role/lambda/ \ --assume-role-policy-document file://trust_lambda.json
-
-
AWS IAMコンソール(Web)にログインし、作ったIAMロールの設定から、残りのIAMポリシーの設定等を行う
参考
信頼ポリシーテンプレート
基本的に、Principal
> Service
のところが変わるだけ。
-
AWS Lambda
trust_lambda.json{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
CodeBuild
trust_codebuild.json{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }