事象
AWS SSO で AWS Organizations の管理アカウントにユーザーやグループの割り当てを行うと以下のように AccessDenied が発生してしまうケースがある。
Access denied by IAM. Please check your policy, or wait for role propagation to complete.
IAM Error: User: arn:aws:sts::123456789012:assumed-role/AWSReservedSSO_DelegatedAdmin_xxxxxxxxxxxxxxxx/user@example.com is not authorized to perform:
iam:GetSAMLProvider on resource: arn:aws:iam::123456789012:saml-provider/AWSSSO_yyyyyyyyyyyyyyyy_DO_NOT_DELETE
(Service: AmazonIdentityManagement; Status Code: 403; Error Code: AccessDenied; Request ID: bd752e56-391c-4a21-bf82-zzzzzzzzzzzz; Proxy: null)
割り当て操作を行う SSO ユーザーの権限セット や IAM ユーザのポリシーに AWS 管理ポリシーの AWSSSOMasterAccountAdministrator
付与している場合でも発生する。メンバーアカウントへの割り当てでは発生しない。
メッセージ中の権限を追加してみるとわかるが、iam:GetSAMLProvider
だけではなく、複数の権限が不足している状態。
対応
以下のドキュメントに記載されているように AWS Organizations の管理アカウントに割り当てを行うには IAM ユーザーまたは権限セットに以下のようなポリシーを追加する必要がある。
Note
The additional permissions listed under the "Sid": "IAMListPermissions", and "Sid": "AccessToSSOProvisiondRoles" sections are required only to enable the user to create assignments in the AWS Organizations management account.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"iam:ListRoles",
"iam:ListPolicies"
],
"Resource": "*",
"Effect": "Allow",
"Sid": "IAMListPermissions"
},
{
"Action": [
"iam:AttachRolePolicy",
"iam:CreateRole",
"iam:DeleteRole",
"iam:DeleteRolePolicy",
"iam:DetachRolePolicy",
"iam:GetRole",
"iam:ListAttachedRolePolicies",
"iam:ListRolePolicies",
"iam:PutRolePolicy",
"iam:UpdateRole",
"iam:UpdateRoleDescription"
],
"Resource": "arn:aws:iam::*:role/aws-reserved/sso.amazonaws.com/*",
"Effect": "Allow",
"Sid": "AccessToSSOProvisionedRoles"
},
{
"Action": [
"iam:GetSAMLProvider"
],
"Resource": "arn:aws:iam::*:saml-provider/AWSSSO_*_DO_NOT_DELETE",
"Effect": "Allow"
}
]
}
原因
CloudTrail で GetSAMLProvider
等の履歴を確認すると、メンバーアカウントの場合は宛先アカウントのサービスロール (AWSServiceRoleForSSO
) を通して割り当てに伴う各種操作を行っていることがわかる。しかし組織の管理アカウントの場合は操作を行うユーザー自身の権限が使用されるため、上記のようなポリシーが追加で必要となる。
組織の管理アカウントに割り当てを行う機会自体は少ないと思いますが、特定の管理者に AWS SSO の権限を委任している場合は遭遇するケースがあるかと思いますのでご注意ください。
以上です。
参考になれば幸いです。