ベースライン KMS キーと IAM ポリシーステートメント - AWS IAM Identity Center

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ベースライン KMS キーと IAM ポリシーステートメント

ここで提供されるベースライン KMS キーとアイデンティティベースのポリシーは、一般的な要件の基盤として機能します。また、KMS キーが特定の IAM Identity Center インスタンスまたは AWS マネージドアプリケーションにのみアクセスできるようにするなど、より詳細なアクセスコントロール高度な KMS キーポリシーステートメントを提供する を確認することをお勧めします。高度な KMS キーポリシーステートメントを使用する前に、「」を確認してくださいベースラインとアドバンスト KMS キーポリシーステートメントの選択に関する考慮事項

以下のセクションでは、各ユースケースのベースラインポリシーステートメントについて説明します。ユースケースに一致する KMS キーポリシーステートメントをコピーし、 に戻りますステップ 2: KMS キーポリシーステートメントを準備する

IAM Identity Center を使用するためのベースライン KMS キーポリシーステートメント (必須)

で次の KMS キーポリシーステートメントテンプレートを使用してステップ 2: KMS キーポリシーステートメントを準備する、IAM Identity Center、関連付けられた Identity Store、および IAM Identity Center 管理者が KMS キーを使用できるようにします。

  • 管理者ポリシーステートメントのプリンシパル要素で、「arn:aws:iam::111122223333:root」の形式を使用して、 AWS 組織管理アカウントと委任管理アカウントである IAM アイデンティティセンターの管理アカウントのアカウント AWS プリンシパルを指定します。

  • PrincipalArn 要素で、サンプル ARNs を IAM アイデンティティセンター管理者の IAM ロールに置き換えます。

    次のいずれかを指定できます。

    • 特定の IAM ロール ARN:

      "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/ap-southeast-2/AWSReservedSSO_permsetname_12345678"

    • ワイルドカードパターン (推奨):

      "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/ap-southeast-2/AWSReservedSSO_permsetname_*"

    ワイルドカード (*) を使用すると、Identity Center が再作成されたアクセス許可セットの新しい一意の識別子を生成するため、アクセス許可セットが削除されて再作成された場合にアクセスが失われるのを防ぎます。実装例については、「」を参照してくださいカスタム信頼ポリシーの例

  • SourceAccount 要素で、IAM Identity Center アカウント ID を指定します。

  • Identity Store には独自のサービスプリンシパル がありidentitystore.amazonaws.com、KMS キーの使用を許可する必要があります。

  • これらのポリシーステートメントにより、特定の AWS アカウントの IAM Identity Center インスタンスが KMS キーを使用できるようになります。特定の IAM Identity Center インスタンスへのアクセスを制限するには、「」を参照してください高度な KMS キーポリシーステートメント。 AWS アカウントごとに IAM Identity Center インスタンスを 1 つだけ持つことができます。

KMS キーポリシーステートメント

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_AdminPermissionSet_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdminSet_*" ] }, "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_AdminPermissionSet_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdminSet_*" ] }, "StringLike": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*", "kms:ViaService": "identitystore.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToDescribeTheKMSKey", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_AdminPermissionSet_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdminSet_*" ] } } }, { "Sid": "AllowIAMIdentityCenterToUseTheKMSKey", "Effect": "Allow", "Principal": { "Service": "sso.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }, { "Sid": "AllowIAMIdentityStoreToUseTheKMSKey", "Effect": "Allow", "Principal": { "Service": "identitystore.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }, { "Sid": "AllowIAMIdentityCenterAndIdentityStoreToDescribeKMSKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": "kms:DescribeKey", "Resource": "*" } ] }

で次の IAM ポリシーステートメントテンプレートステップ 4: KMS キーをクロスアカウントで使用するように IAM ポリシーを設定するを使用して、IAM Identity Center 管理者が KMS キーを使用できるようにします。

  • Resource 要素のキー ARN の例を実際の KMS キー ARN に置き換えます。参照される識別子の値を見つける方法については、「」を参照してください必要な識別子を検索する

  • これらの IAM ポリシーステートメントは、IAM プリンシパルへの KMS キーアクセスを許可しますが、リクエストを実行できる AWS サービスを制限しません。KMS キーポリシーは通常、これらのサービス制限を提供します。ただし、この IAM ポリシーに暗号化コンテキストを追加して、特定の Identity Center インスタンスの使用を制限できます。詳細については、「高度な KMS キーポリシーステートメント」を参照してください。

IAM Identity Center の委任管理者に必要な IAM ポリシーステートメント

{ "Version": "2012-10-17", "Statement": [{ "Sid": "IAMPolicyToAllowIAMIdentityCenterAdminToUseKMSkey", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Sid": "IAMPolicyToAllowIAMIdentityCenterAdminToListKeyAliases", "Effect": "Allow", "Action": "kms:ListAliases", "Resource": "*" } ] }

AWS マネージドアプリケーションを使用するためのベースライン KMS キーと IAM ポリシーステートメント

注記

一部の AWS マネージドアプリケーションは、カスタマーマネージド KMS キーで設定された IAM Identity Center では使用できません。詳細については、AWS 「IAM Identity Center で動作するマネージドアプリケーション」を参照してください。

で次の KMS キーポリシーステートメントテンプレートステップ 2: KMS キーポリシーステートメントを準備するを使用して、 AWS マネージドアプリケーションとその管理者の両方が KMS キーを使用できるようにします。

  • PrincipalOrgID および SourceOrgId 条件に AWS Organizations ID を挿入します。参照される識別子の値を見つける方法については、「」を参照してください必要な識別子を検索する

  • これらのポリシーステートメントにより、 AWS 組織の任意の AWS マネージドアプリケーションと任意の IAM プリンシパル (アプリケーション管理者) は、IAM Identity Center と Identity Store を使用して kms:Decrypt を使用できます。これらのポリシーステートメントを特定の AWS マネージドアプリケーション、アカウント、または IAM Identity Center インスタンスに制限するには、「」を参照してください高度な KMS キーポリシーステートメント

    を特定の IAM プリンシパル*に置き換えることで、特定のアプリケーション管理者へのアクセスを制限できます。アクセス許可セットが再作成されたときに IAM ロール名の変更から保護するには、 の アプローチを使用しますカスタム信頼ポリシーの例。詳細については、「ベースラインとアドバンスト KMS キーポリシーステートメントの選択に関する考慮事項」を参照してください。

KMS キーポリシーステートメント

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-a1b2c3d4e5" }, "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "*" } } }, { "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-a1b2c3d4e5" }, "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } }, { "Sid": "AllowManagedAppsToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "*" }, "Bool": { "aws:PrincipalIsAWSService": "true" }, "StringEquals": { "aws:SourceOrgID": "o-a1b2c3d4e5" } } }, { "Sid": "AllowManagedAppsToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" }, "Bool": { "aws:PrincipalIsAWSService": "true" }, "StringEquals": { "aws:SourceOrgID": "o-a1b2c3d4e5" } } } ] }

で次の IAM ポリシーステートメントテンプレートステップ 4: KMS キーをクロスアカウントで使用するように IAM ポリシーを設定するを使用して、 AWS マネージドアプリケーションの管理者がメンバーアカウントの KMS キーを使用できるようにします。

  • Resource 要素のサンプル ARN を実際の KMS キー ARN に置き換えます。参照される識別子の値を見つける方法については、「」を参照してください必要な識別子を検索する

  • 一部の AWS マネージドアプリケーションでは、IAM Identity Center サービス APIs のアクセス許可を設定する必要があります。IAM Identity Center でカスタマーマネージドキーを設定する前に、これらのアクセス許可で KMS キーの使用も許可されていることを確認してください。特定の KMS キーのアクセス許可要件については、デプロイした各 AWS マネージドアプリケーションのドキュメントを参照してください。

AWS マネージドアプリケーションの管理者に必要な IAM ポリシーステートメント:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] } } }] }

を使用するためのベースライン KMS キーステートメント AWS Control Tower

で次の KMS キーステートメントテンプレートステップ 2: KMS キーポリシーステートメントを準備するを使用して、 AWS Control Tower 管理者が KMS キーを使用できるようにします。

  • Principal 要素で、IAM Identity Center サービス APIs へのアクセスに使用される IAM プリンシパルを指定します。IAM プリンシパルの詳細については、IAM ユーザーガイド「プリンシパルの指定」を参照してください。

  • これらのポリシーステートメントにより、 AWS Control Tower 管理者は任意の IAM Identity Center インスタンスを通じて KMS キーを使用できます。ただし、 AWS Control Tower は、同じ組織内の IAM Identity Center の AWS 組織インスタンスへのアクセスを制限します。この制限により、「」で説明されているように KMS キーを特定の IAM アイデンティティセンターインスタンスにさらに制限する実用的な利点はありません高度な KMS キーポリシーステートメント

  • アクセス許可セットが再作成されたときに IAM ロール名の変更から保護するには、「」で説明されている方法を使用しますカスタム信頼ポリシーの例

KMS キーポリシーステートメント:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowControlTowerAdminRoleToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/AWSControlTowerExecution" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowControlTowerAdminRoleToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/AWSControlTowerExecution" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }

AWS Control Tower は委任管理をサポートしていないため、管理者に IAM ポリシーを設定する必要はありません。

Amazon Elastic Compute Cloud Windows インスタンスに IAM Identity Center を使用するためのベースライン KMS キーと IAM ポリシーステートメント

次の の KMS キーポリシーステートメントテンプレートステップ 2: KMS キーポリシーステートメントを準備するを使用して、Amazon EC2 Windows インスタンスへのシングルサインオン (SSO) のユーザーがアカウント間で KMS キーを使用できるようにします。

  • Principal フィールドで、IAM Identity Center へのアクセスに使用する IAM プリンシパルを指定します。IAM プリンシパルの詳細については、IAM ユーザーガイド「プリンシパルの指定」を参照してください。

  • このポリシーステートメントは、任意の IAM Identity Center インスタンスに KMS キーの使用を許可します。特定の IAM Identity Center インスタンスへのアクセスを制限するには、「」を参照してください高度な KMS キーポリシーステートメント

  • アクセス許可セットが再作成されたときに IAM ロール名の変更から保護するには、カスタム信頼ポリシーの例で説明されているアプローチを使用します。

KMS キーポリシーステートメント

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIAMIdentityCenterPermissionSetRoleToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_MyPermissionSet_1a2b3c4d5e6f7g8h" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterPermissionSetRoleToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_MyPermissionSet_1a2b3c4d5e6f7g8h" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }

次の IAM ポリシーステートメントテンプレートを で使用ステップ 4: KMS キーをクロスアカウントで使用するように IAM ポリシーを設定するして、EC2 Windows インスタンスへの SSO が KMS キーを使用できるようにします。

Amazon EC2 Windows インスタンスへの SSO アクセスを許可するために使用している IAM Identity Center の既存のアクセス許可セットに IAM ポリシーステートメントをアタッチします。IAM ポリシーの例については、AWS 「Systems Manager ユーザーガイド」の「リモートデスクトッププロトコル接続」を参照してください。

  • Resource 要素のサンプル ARN を実際の KMS キー ARN に置き換えます。参照される識別子の値を見つける方法については、「」を参照してください必要な識別子を検索する

アクセス許可セット IAM ポリシー:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "IAMPolicyToAllowKMSKeyUseViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] } } }] }

IAM Identity Center でカスタムワークフローを使用するためのベースライン KMS キーと IAM ポリシーステートメント

で次の KMS キーポリシーステートメントテンプレートステップ 2: KMS キーポリシーステートメントを準備するを使用して、 AWS Organizations 管理アカウントまたは委任管理アカウントのカスタマーマネージドアプリケーションなどのカスタムワークフローが KMS キーを使用できるようにします。

  • Principal 要素で、IAM Identity Center サービス APIs へのアクセスに使用される IAM プリンシパルを指定します。IAM プリンシパルの詳細については、IAM ユーザーガイド「プリンシパルの指定」を参照してください。

  • これらのポリシーステートメントにより、ワークフローは任意の IAM Identity Center インスタンスを介して KMS キーを使用できます。特定の IAM Identity Center インスタンスへのアクセスを制限するには、「」を参照してください高度な KMS キーポリシーステートメント

  • アクセス許可セットが再作成されたときに IAM ロール名の変更から保護するには、「」で説明されている方法を使用しますカスタム信頼ポリシーの例

KMS キーポリシーステートメント:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyCustomWorkflowRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyCustomWorkflowRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }

で次の IAM ポリシーステートメントテンプレートステップ 4: KMS キーをクロスアカウントで使用するように IAM ポリシーを設定するを使用して、カスタムワークフローに関連付けられた IAM プリンシパルがアカウント間で KMS キーを使用できるようにします。IAM ポリシーステートメントを IAM プリンシパルに追加します。

  • Resource 要素のサンプル ARN を実際の KMS キー ARN に置き換えます。参照される識別子の値を見つける方法については、「」を参照してください必要な識別子を検索する

IAM ポリシーステートメント (クロスアカウント使用にのみ必要):

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] } } }] }