IAM Identity Center のサービスリンクロールの使用
AWS IAM Identity Center では AWS Identity and Access Management (IAM) のサービスリンクロールを使用します。サービスリンクロールは、IAM Identity Center に直接リンクされた特殊なタイプの IAM ロールです。これは IAM Identity Center によって事前に定義され、そのサービスがユーザーに代わって他の AWS サービスを呼び出すために必要なすべてのアクセス権限が含まれます。詳細については、「IAM Identity Center のサービスリンクロールについて」を参照してください。
サービスにリンクされたロールを使用すると、必要なアクセス許可を手動で追加する必要がないため、IAM Identity Center の設定が簡単になります。サービスリンクロールの許可は IAM Identity Center が定義し、特に定義されない限り、IAM Identity Center のみがそのロールを引き受けることができます。定義されたアクセス許可には、信頼ポリシーとアクセス権限ポリシーが含まれ、そのアクセス権限ポリシーを他の IAM エンティティに適用することはできません。
サービスリンクロールをサポートする他のサービスについては、IAM と連携する AWS のサービスを参照して、[サービスにリンクされたロール] 列が [はい] になっているサービスを探してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、はいリンクを選択します。
IAM Identity Center のサービスリンクロールの権限
IAM Identity Center は、AWSServiceRoleForSSO という名称のサービスリンクロールを使用して、ユーザーに代わって IAM ロール、ポリシー、SAML IdP などの AWS リソースを管理するためのアクセス権限を IAM Identity Center に付与します。
AWSServiceRoleForSSO サービスリンクロールは、ロールの引き受けに以下のサービスを信頼します。
-
IAM Identity Center (サービスプレフィックス:
sso
)
AWSServiceRoleForSSO サービスリンクロールのアクセス権限ポリシーでは、IAM Identity Center は「/aws-reserved/sso.amazonaws.com/」パスにあり、名前のプレフィックスが「AWSReservedSSO_」であるロールで以下のことを実行することができます。
-
iam:AttachRolePolicy
-
iam:CreateRole
-
iam:DeleteRole
-
iam:DeleteRolePermissionsBoundary
-
iam:DeleteRolePolicy
-
iam:DetachRolePolicy
-
iam:GetRole
-
iam:ListRolePolicies
-
iam:PutRolePolicy
-
iam:PutRolePermissionsBoundary
-
iam:ListAttachedRolePolicies
AWSServiceRoleForSSO サービスリンクロールのアクセス権限ポリシーでは、IAM Identity Center は名前のプレフィックスが「AWSSSO_」である SAML プロバイダーで以下のことを実行することができます。
-
iam:CreateSAMLProvider
-
iam:GetSAMLProvider
-
iam:UpdateSAMLProvider
-
iam:DeleteSAMLProvider
AWSServiceRoleForSSO サービスリンクロールのアクセス権限ポリシーでは、IAM Identity Center はすべての組織で以下のことを実行することができます。
-
organizations:DescribeAccount
-
organizations:DescribeOrganization
-
organizations:ListAccounts
-
organizations:ListAWSServiceAccessForOrganization
-
organizations:ListDelegatedAdministrators
AWSServiceRoleForSSO サービスリンクロールのアクセス権限ポリシーでは、IAM Identity Center はすべての IAM ロール (*) で以下のことを実行することができます。
-
iam:listRoles
AWSServiceRoleForSSO サービスリンクロールのアクセス権限ポリシーでは、IAM Identity Center は「arn:aws:iam::*:role/aws-service-role/sso.amazonaws.com/AWSServiceRoleForSSO」で以下のことを実行することができます。
-
iam:GetServiceLinkedRoleDeletionStatus
-
iam:DeleteServiceLinkedRole
ロールのアクセス権限ポリシーは、リソースに対して以下のアクションを実行することを IAM Identity Center に許可します。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"IAMRoleProvisioningActions", "Effect":"Allow", "Action":[ "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRolePermissionsBoundary", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription", "iam:UpdateAssumeRolePolicy" ], "Resource":[ "arn:aws:iam::*:role/aws-reserved/sso.amazonaws.com/*" ], "Condition":{ "StringNotEquals":{ "aws:PrincipalOrgMasterAccountId":"${aws:PrincipalAccount}" } } }, { "Sid":"IAMRoleReadActions", "Effect":"Allow", "Action":[ "iam:GetRole", "iam:ListRoles" ], "Resource":[ "*" ] }, { "Sid":"IAMRoleCleanupActions", "Effect":"Allow", "Action":[ "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:ListRolePolicies", "iam:ListAttachedRolePolicies" ], "Resource":[ "arn:aws:iam::*:role/aws-reserved/sso.amazonaws.com/*" ] }, { "Sid":"IAMSLRCleanupActions", "Effect":"Allow", "Action":[ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus", "iam:DeleteRole", "iam:GetRole" ], "Resource":[ "arn:aws:iam::*:role/aws-service-role/sso.amazonaws.com/AWSServiceRoleForSSO" ] }, { "Sid": "IAMSAMLProviderCreationAction", "Effect": "Allow", "Action": [ "iam:CreateSAMLProvider" ], "Resource": [ "arn:aws:iam::*:saml-provider/AWSSSO_*" ], "Condition": { "StringNotEquals": { "aws:PrincipalOrgMasterAccountId": "${aws:PrincipalAccount}" } } }, { "Sid": "IAMSAMLProviderUpdateAction", "Effect": "Allow", "Action": [ "iam:UpdateSAMLProvider" ], "Resource": [ "arn:aws:iam::*:saml-provider/AWSSSO_*" ] }, { "Sid":"IAMSAMLProviderCleanupActions", "Effect":"Allow", "Action":[ "iam:DeleteSAMLProvider", "iam:GetSAMLProvider" ], "Resource":[ "arn:aws:iam::*:saml-provider/AWSSSO_*" ] }, { "Effect":"Allow", "Action":[ "organizations:DescribeAccount", "organizations:DescribeOrganization", "organizations:ListAccounts", "organizations:ListAWSServiceAccessForOrganization", "organizations:ListDelegatedAdministrators" ], "Resource":[ "*" ] }, { "Sid":"AllowUnauthAppForDirectory", "Effect":"Allow", "Action":[ "ds:UnauthorizeApplication" ], "Resource":[ "*" ] }, { "Sid":"AllowDescribeForDirectory", "Effect":"Allow", "Action":[ "ds:DescribeDirectories", "ds:DescribeTrusts" ], "Resource":[ "*" ] }, { "Sid":"AllowDescribeAndListOperationsOnIdentitySource", "Effect":"Allow", "Action":[ "identitystore:DescribeUser", "identitystore:DescribeGroup", "identitystore:ListGroups", "identitystore:ListUsers" ], "Resource":[ "*" ] } ] }
サービスリンクロールの作成、編集、削除を IAM エンティティ (ユーザー、グループ、ロールなど) に許可するには、アクセス許可を設定する必要があります。詳細については、「IAM User Guide」(IAM ユーザーガイド) の「Service-linked role permissions」(サービスにリンクされたロールのアクセス権限) を参照してください。
IAM Identity Center のサービスリンクロールの作成
サービスリンクロールを手動で作成する必要はありません。IAM Identity Center を有効にすると、AWS Organizations の組織内のすべてのアカウントに、サービスリンクロールが作成されます。また、IAM Identity Center では、その後組織に追加されるすべてのアカウントに、同じサービスにリンクしたロールが作成されます。このロールは、IAM Identity Center が顧客に代わって各アカウントのリソースにアクセスすることを可能にします。
メモ
-
AWS Organizations 管理アカウントにサインインしている場合、サービスリンクロールではなく、現在サインインしているロールが使用されます。これにより、権限の昇格を防ぐことができます。
-
IAM Identity Center が AWS Organizations 管理アカウントで IAM 操作を実行すると、すべての操作は IAM プリンシパルの認証情報を使用して行われます。これにより、CloudTrail のログから、管理アカウントのすべての権限変更を誰が行ったかがわかります。
重要
サービスリンクロールのサポートを開始した 2017 年 12 月 7 日以前に IAM Identity Center サービスを利用していた場合、IAM Identity Center はお客様のアカウントに AWSServiceRoleForSSO ロールを作成しています。詳細については、「IAM アカウントに新しいロールが表示される」を参照してください。
このサービスにリンクされたロールを削除した後で再度作成する必要が生じた場合は、同じ方法でアカウントにロールを再作成できます。
IAM Identity Center のサービスリンクロールの編集
IAM Identity Center では、サービスリンクロール AWSServiceRoleForSSO を編集できません。サービスリンクロールを作成した後は、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用したロールの説明の編集はできます。詳細については、「IAM ユーザーガイド」の「サービスリンクロールの編集」を参照してください。
IAM Identity Center のサービスリンクロールの削除
AWSServiceRoleForSSO ロールを手動で削除する必要はありません。AWS アカウント が AWS 組織から削除されると、IAM Identity Center は自動的にリソースをクリーンアップし、AWS アカウント からサービスリンクロールを削除します。
サービスにリンクされたロールは、IAM コンソール、IAM CLI、または IAM API を使用して手動で削除することもできます。そのためにはまず、サービスリンクロールのリソースをクリーンアップする必要があります。その後で、手動で削除できます。
注記
リソースを削除しようとしたときに IAM Identity Center サービスがロールを使用している場合は、削除が失敗する可能性があります。失敗した場合は、数分待ってから操作を再試行してください。
AWSServiceRoleForSSO が使用する IAM Identity Center リソースを削除するには
-
AWS アカウント へのアクセス権を持つすべてのユーザーとグループの AWS アカウントへのユーザーおよびグループのアクセスを削除する。
-
AWS アカウント に関連付けられている IAM Identity Center で権限セットを削除する。
サービスにリンクされたロールを IAM で手動削除するには
IAM コンソール、IAM CLI、または IAM API を使用して、AWSServiceRoleForSSO サービスにリンクされたロールを削除します。詳細については、「IAM User Guide」(IAM ユーザーガイド) の「Deleting a Service-Linked Role」(サービスにリンクされたロールの削除) を参照してください。