こちらが良いかも
ーー
ややこしいのでまとめました。
リソースベースポリシーはTrust Policy
リソースベースのポリシーは、Amazon S3 バケットなどのリソースにアタッチする JSON ポリシードキュメントです。リソースベースのポリシーはインラインポリシーです。リソースベースの管理ポリシーはありません。IAM サービスは、ロールの信頼ポリシーと呼ばれるリソースベースのポリシーのタイプを 1 つのみサポートします。
信頼ポリシーは他にもあるけど、リソースベースのポリシーは信頼ポリシーしかないです。つまり十分条件ですね。つまり、他のリソースがアクセスすることを信頼するポリシーです。
IAM信頼ポリシー
あるPrincipalが、ロールや認証を引き受けることができるように許可するポリシー。
この1文がわかりやすかったです。『Trust policyでは、管理者がEC2インスタンスだけにロールを引き受けさせることができます。』
In the role's trust policy, the administrator specifies that only EC2 instances can assume the role. https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html
同じページからポリシーの例。
Principalはec2で、sts:AssumeRoleをAllowしている。
The abcd role must trust the Amazon EC2 service to assume the role. To do this, the abcd role must have the following trust policy:Account 111111111111 abcd Role Trust Policy{"Version": "2012-10-17","Statement": [{"Sid": "abcdTrustPolicy","Effect": "Allow","Action": "sts:AssumeRole","Principal": {"Service": "ec2.amazonaws.com"}}]}
Service-linked role
(「サービスにリンクされたロール」と訳されている。)
あるAWSサービス(1)が他のAWSサービス(2)にアクセスできるようになるためのrole。
このロールがつくサービス(1)は「trusted service」と呼ばれる。
- AWS Organizationで設定する
- 1つのサービスに限定して作成する
- ロールの管理が楽になる(Organizationzで設定するから)
- 権限のエスカレーションができないので安全
- 他のIAMのパーミッションには影響しない
- このロールの削除は対象のリソースを削除してからでないとできません。
使えるサービスは表になっている。最初はlexだけだったそうです。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html
Service-linked roleを使う設定
あるAWSサービス(trusted serviceと呼ぶ)でservice-linked roleをアタッチするとする。trusted serviceが別のAWSサービスにアクセスできるようにする設定をtrusted accessと呼ぶ。
条件:
・AWS Organizationが使えること。
・Trusted serviceが使えること。
方法:
Trusted access を有効にすることで、 trusted serviceが有効にできる。パーミッションの設定を行う。
organizations:EnableAWSServiceAccess
organizations:ServicePrincipal
organizations:ListAWSServiceAccessForOrganization
詳細は こちらで。
https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html?icmpid=docs_orgs_console
0 件のコメント:
コメントを投稿