グループのすべてのメンバーがAWS IAMでロールを引き受けることをどのように許可できますか?
次のステートメントを使用して試しましたが、 AWS IAMプリンシパル要素 で指定されているように、グループをプリンシパルにすることはできません。
私は以下のようなことを達成したいです:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::***:group/developer"
},
"Action": "sts:AssumeRole"
}
]
}
アイデアは、グループのすべてのメンバーがgroup/developer
が役割を引き受けることができる必要があります。目的は、グループ内の各メンバーを個別に指定する必要がないようにすることです。
これを達成する方法はありますか?
グループにポリシーを添付目的のロールでsts:AssumeRole
を呼び出す権限を付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "123",
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::123456789012:role/desired-role"
]
}
]
}
また、ロールの信頼ポリシーを添付します。サンプルポリシー(下記)はアカウント内のすべてのユーザーを信頼しますが、役割を引き受けるにはsts:AssumeRole
権限(上記)も必要です。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "sts:AssumeRole"
}
]
}
IAMグループをプリンシパルとして指定することはできません。
AWSアカウント、IAMユーザー、IAMロール、フェデレーテッドユーザー、または想定ロールユーザーのAmazonリソースネーム(ARN)を使用してプリンシパルを指定します。 IAMグループをプリンシパルとして指定することはできません。
AWSのドキュメントごと https://docs.aws.Amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html
2018年12月現在(執筆時点でそれらが正しいかどうかはわかりません)、グループの制限について上記で表明したいくつかの声明は誤解を招くようです。
受け入れられた回答を追加/明確化したい:
1)sts:AssumeRole
から..:root
ユーザーへの信頼POTENTIALLYのみは、すべてのユーザーが問題の役割を引き受けることを許可します。一部のユーザーまたはグループに役割を引き受ける権限も付与しない限り、それは許可されません。
2)私と同じように、異なるスタックにあるリソースや循環依存関係のためにグループ定義で指定されたアクセス許可を持つことができない場合、グループに関連付けられたポリシーを定義するコードは次のとおりです。
DevelopersAccess:
Type: AWS::IAM::Policy
Properties:
Groups:
- !ImportValue another-stack-DevelopersGroupNameNotArn
PolicyName: DevelopersAccess
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- sts:AssumeRole
Resource:
- arn:aws:iam::123456789012:role/desired-role
Groups
の下には、ARNではなくグループ名をリストする必要があることに注意してください。
これは別の方法で行うことができます。しかし、これがあなたが望むものであるかどうかはわかりません。
1) create-policy を使用してポリシーを作成します。
2) attach-role-policy を使用して、arn:aws:iam::***:role/developer
ロールにポリシーをアタッチします。
3) create-group を使用して、目的のGroup
を作成します。
4) attach-group-policy を使用して、指定した管理ポリシーを指定したグループにアタッチします。
CLIを使用する代わりに、AWSコンソールまたはAWS SDKを使用して同じことを実現できます。参照してください IAMグループへのポリシーのアタッチ
これにより、グループの各メンバーに個別にロールを追加する必要がなくなります。