以前、↓のリンクでIAMの基本について少し扱ったので、もう少し具体的なパターンについて。
押さえておきたい概念としてはやはり
ユーザー・・特定のキーなどでログインするユーザー
ポリシー・・1つ1つの具体的な権限(EC2に何何ができるなど)
ロール・・ポリシーを付与して、サービスを実行できる仕組みそのもの(ユーザーと違いサービスやユーザーに紐付けられる)
Contents
具体的なポリシーについて
概念だけでは分かりにくいので、具体的なポリシーについて。
サンプル
AmazonSSMReadOnlyAccess — AWSSystemManagerへのアクセス
JSONだと以下のように定義できる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:Describe*", "ssm:Get*", "ssm:List*" ], "Resource": "*" } ] } |
具体的なロールについて
以下が作成された具体的なロール。
PrinciPal・・実行ユーザーのこと。ここでは具体的なユーザーだが、サービス全体になることもある。
Action・・sts:AssumeRoleとは一時的に権限を付与してもらう仕組み。(ずっとではないので、セキュリティレベルが高い)
以下のロールで一時的にecs_sampleに権限を付与させようとしている。
IAM ロールの PassRole と AssumeRole をもう二度と忘れないために絵を描いてみた
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<amazonアカウントID>:user/ecs_sample" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } |
まだまとまってないので、別途まとめる必要あり・・・