高度な KMS キーポリシーステートメント - AWS IAM Identity Center

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

高度な KMS キーポリシーステートメント

注記

のカスタマーマネージド KMS キー AWS IAM Identity Center は、現在、一部の AWS リージョンで利用できます。

高度な KMS キーポリシーステートメントを使用して、カスタマーマネージド KMS キーのより詳細なアクセスコントロールを実装します。これらのポリシーは、暗号化コンテキスト条件とサービス固有の制限を追加ベースライン KMS キーと IAM ポリシーステートメントすることで、 上に構築されます。高度な KMS キーポリシーステートメントを使用するかどうかを決定する前に、関連する考慮事項を確認してください。

暗号化コンテキストを使用してアクセスを制限する

キーポリシーステートメントに暗号化コンテキスト条件を追加することで、KMS キーの使用を特定の IAM Identity Center インスタンスに制限できます。この条件は、IAM Identity Center インスタンス ARN と Identity Store ARN を使用して、キーが目的のインスタンスでのみ動作することを確認します。この条件をベースラインポリシーステートメントに追加します。

アイデンティティセンター

"StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "${identity_center_arn}" }

ID ストア

"StringLike": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "${identity_store_arn}" }

サンプル ARNs実際の ARN 値に置き換えます。これらの識別子の検索に関するヘルプが必要な場合は、「」を参照してください必要な識別子を検索する

暗号化コンテキスト条件を実装する際の考慮事項

暗号化コンテキスト条件を実装する前に、以下の要件を確認してください。

  • DescribeKey アクション。暗号化コンテキストは、IAM Identity Center 管理者が使用できるkms:DescribeKey」アクションに適用できません。KMS キーポリシーを設定するときは、この特定のアクションの暗号化コンテキストを除外して、IAM Identity Center インスタンスの適切なオペレーションを確保します。

  • 新しいインスタンスのセットアップ。カスタマーマネージド KMS キーを使用して新しい IAM アイデンティティセンターインスタンスを有効にする場合は、「」を参照してくださいカスタマーマネージド KMS キーと高度な KMS キーポリシーに関する考慮事項

  • ID ソースの変更。Active Directory との間で ID ソースを変更する場合、暗号化コンテキストには特別な注意が必要です。「ID ソースの変更に関する注意事項」を参照してください。

ポリシーテンプレート

セキュリティ要件に基づいて、これらの高度なポリシーテンプレートから選択します。きめ細かなアクセスコントロールと、きめ細かなアクセスコントロールを導入する管理オーバーヘッドのバランスを取ります。

ここで説明するトピック:

特定の IAM Identity Center インスタンスを使用するための KMS キーポリシーステートメント

これらのポリシーステートメントにより、特定の IAM Identity Center インスタンスの管理者は、そのインスタンスへのアクセスのみを制限しながら KMS キーを使用できます。

注記

現在、カスタマーマネージド KMS キーは、IAM Identity Center の組織インスタンスでのみ使用できます。カスタマーマネージドキーは AWS 組織の管理アカウントに配置する必要があります。これにより、キーが 1 つの IAM Identity Center インスタンスで使用されるようになります。ただし、暗号化コンテキストメカニズムは、単一インスタンスの使用に対する独立した技術的保護を提供します。

管理者アクセスポリシー

次のポリシーステートメントテンプレートでは、IAM Identity Center の特定のインスタンスとその関連付けられた Identity Store の管理者が KMS キーを使用できます。

このポリシーを使用するには:

  1. サンプル管理者 IAM プリンシパルを実際の管理者 IAM プリンシパルに置き換えます。

  2. IAM Identity Center インスタンス ARN の例を実際のインスタンス ARN に置き換えます。

  3. サンプルの Identity Store ARN を実際の Identity Store ARN に置き換える

これらの識別子の値の検索に関するヘルプが必要な場合は、「」を参照してください必要な識別子を検索する

テンプレートを値で更新したら、 ステップ 2: KMS キーポリシーステートメントを準備するに戻り、必要に応じて追加の KMS キーポリシーステートメントを準備します。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowSpecificIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "${Admin_IAM_principal}" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "${identity_center_arn}", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowSpecificIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "${Admin_IAM_principal}" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "${identity_store_arn}", "kms:ViaService": "identitystore.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToDescribeTheKMSKey", "Effect": "Allow", "Principal": { "AWS": "${Admin_IAM_principal}" }, "Action": "kms:DescribeKey", "Resource": "*" } ] }

サービスアクセスポリシー

次のポリシーステートメントテンプレートでは、IAM Identity Center とその関連付けられた Identity Store の特定のインスタンスに KMS キーの使用を許可します。

このポリシーを使用するには:

  1. IAM Identity Center インスタンス ARN の例を実際のインスタンス ARN に置き換えます。

  2. サンプルの Identity Store ARN を実際の Identity Store ARN に置き換える

これらの識別子の値の検索に関するヘルプが必要な場合は、「」を参照してください必要な識別子を検索する

テンプレートを値で更新したら、 ステップ 2: KMS キーポリシーステートメントを準備するに戻り、必要に応じて追加の KMS キーポリシーステートメントを準備します。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowSpecificIAMIdentityCenterToUseTheKMSKey", "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": "${identity_center_arn}" } } }, { "Sid": "AllowSpecificIAMIdentityStoreToUseTheKMSKey", "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": "${identity_store_arn}" } } }, { "Sid": "AllowIAMIdentityCenterAndIdentityStoreToDescribeKMSKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": "kms:DescribeKey", "Resource": "*" } ] }

特定の IAM Identity Center インスタンスの読み取り専用使用のための KMS ポリシーステートメント

このポリシーは、IAM Identity Center への読み取りアクセスのみを必要とするセキュリティ監査者やその他の担当者が KMS キーを使用することを許可します。

このポリシーを使用するには:

  1. 読み取り専用管理者 IAM プリンシパルの例を実際の管理者 IAM プリンシパルに置き換えます。

  2. IAM Identity Center インスタンス ARN の例を実際のインスタンス ARN に置き換えます。

  3. サンプルの Identity Store ARN を実際の Identity Store ARN に置き換える

  4. 委任管理を使用している場合は、「」を参照してください。 ステップ 4: KMS キーをクロスアカウントで使用するように IAM ポリシーを設定する

これらの識別子の値の検索に関するヘルプが必要な場合は、「」を参照してください必要な識別子を検索する

テンプレートを値で更新したら、 ステップ 2: KMS キーポリシーステートメントを準備するに戻り、必要に応じて追加の KMS キーポリシーステートメントを準備します。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowReadOnlyAccessToIdentityCenterAPI", "Effect": "Allow", "Principal": { "AWS": "${Admin_IAM_principal}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "${identity_center_arn}", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowReadOnlyAccessToIdentityStoreAPI", "Effect": "Allow", "Principal": { "AWS": "${Admin_IAM_principal}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "${identity_store_arn}" } } } ] }

AWS マネージドアプリケーションを使用するための改良された KMS キーポリシーステートメント

これらのポリシーテンプレートにより、KMS キーを使用できる AWS マネージドアプリケーションをより詳細に制御できます。

注記

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

は、同じ AWS 組織内の任意のアカウントの任意の AWS マネージドアプリケーションに KMS キーの使用AWS マネージドアプリケーションを使用するためのベースライン KMS キーと IAM ポリシーステートメントを許可します。これらの洗練されたポリシーを使用して、以下によってアクセスを制限します。

  • アプリケーションサービスプリンシパル

  • アプリケーションインスタンス ARNs

  • AWS アカウント IDs

  • 特定の IAM Identity Center インスタンスの暗号化コンテキスト

注記

サービスプリンシパルは、 AWS サービスの一意の識別子であり、通常は servicename.amazonaws.com (Amazon EMR の場合は elasticmapreduce.amazonaws.com など) の形式です。

アカウントによる制限

この KMS キーポリシーステートメントテンプレートにより、特定の AWS アカウントの AWS マネージドアプリケーションは、特定の IAM アイデンティティセンターインスタンスを使用して KMS キーを使用できます。

このポリシーを使用するには:

  1. サンプルサービスプリンシパルを実際のアプリケーションサービスプリンシパルに置き換えます。

  2. サンプルアカウント IDsを実際のアカウント IDs。

  3. サンプルの Identity Store ARN を実際の Identity Store ARN に置き換える

  4. IAM Identity Center インスタンス ARN の例を実際のインスタンス ARN に置き換えます。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowServiceInSpecificAccountsToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "Service": "${app_SPN_IAM_principal}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:sourceAccount": [ "${account_id_1}", "${account_id_2}" ] }, "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "${identity_center_arn}" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } }, { "Sid": "AllowServiceInSpecificAccountsToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "Service": "${app_SPN_IAM_principal}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:sourceAccount": [ "${account_id_1}", "${account_id_2}" ] }, "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "${identity_store_arn}" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }

アプリケーションインスタンスによる制限

この KMS キーポリシーステートメントテンプレートは、特定の AWS マネージドアプリケーションインスタンスが特定の IAM アイデンティティセンターインスタンスを使用して KMS キーを使用できるようにします。

このポリシーを使用するには:

  1. サンプルサービスプリンシパルを実際のアプリケーションサービスプリンシパルに置き換えます。

  2. サンプルアプリケーション ARN を実際のアプリケーションインスタンス ARN に置き換えます。

  3. サンプルの Identity Store ARN を実際の Identity Store ARN に置き換える

  4. IAM Identity Center インスタンス ARN の例を実際のインスタンス ARN に置き換えます。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowSpecificAppInstanceToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "Service": "${app_SPN_IAM_principal}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceARN": "${app_arn}" }, "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "${identity_center_arn}" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } }, { "Sid": "AllowSpecificAppInstanceToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "Service": "${app_SPN_IAM_principal}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceARN": "${app_arn}" }, "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "${identity_store_arn}" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }