View a markdown version of this page

ベースライン KMS キーポリシー - AWS IAM アイデンティティセンター

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

ベースライン KMS キーポリシー

次の KMS キーポリシーでは、最も一般的なデプロイシナリオについて説明します。Amazon EC2 インスタンスへの SSO、カスタムワークフローなど AWS Control Tower、委任された管理者と AWS マネージドアプリケーションを持つ IAM Identity Center インスタンス。IAM Identity Center のカスタマーマネージド KMS キーを作成するときは、このポリシーを出発点として使用します。キーを特定の IAM Identity Center インスタンスまたはアプリケーションに制限するなど、より詳細なアクセスコントロールが必要な場合は、「」を参照してください高度な KMS キーポリシーステートメント。マルチリージョンキーを使用する場合は、一貫した認可を確保するために、すべてのレプリカで同じポリシーを使用する必要があります。

このポリシーを使用するには、次のプレースホルダー値を独自のプレースホルダー値に置き換えます。

  • 111122223333 — IAM Identity Center インスタンスの AWS アカウント ID ( AWS Organizations 管理アカウント)。

  • 444455556666 — 委任管理 AWS アカウントのアカウント ID。委任管理を使用しない場合は、このプリンシパルを削除します。

AWS IAM Identity Center では、KMS キーがサービスと同じ AWS アカウントにある必要があるため、次のステートメントではリテラル値の代わりに 変数${aws:ResourceOrgID}${aws:ResourceAccount}変数を使用します。これらの変数は、必要に応じて AWS 組織 ID と AWS アカウント ID に置き換えることができます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIdentityCenterAdminAccounts", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": "kms:*", "Resource": "*" }, { "Sid": "AllowIdentityCenterAndIdentityStoreToDescribeKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "${aws:ResourceAccount}" } } }, { "Sid": "AllowIdentityCenterAndIdentityStoreToUseKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "${aws:ResourceAccount}" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:sso:instance-arn", "aws:identitystore:identitystore-arn" ] } } }, { "Sid": "AllowOrgPrincipalsViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "${aws:ResourceOrgID}" }, "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:sso:instance-arn", "aws:identitystore:identitystore-arn" ] } } }, { "Sid": "AllowManagedApps", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Bool": { "aws:PrincipalIsAWSService": "true" }, "StringEquals": { "aws:SourceOrgID": "${aws:ResourceOrgID}" }, "StringLike": { "kms:ViaService": [ "identitystore.*.amazonaws.com", "sso.*.amazonaws.com" ] }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:sso:instance-arn", "aws:identitystore:identitystore-arn" ] } } } ] }

このポリシーには 5 つのステートメントが含まれています。次の表に、各ステートメントの動作を示します。

ステートメント 目的
AllowIdentityCenterAdminAccounts IAM Identity Center 管理アカウントと委任管理アカウントに完全な KMS キーアクセス許可を付与します。これには、キーポリシーの変更やキーの削除のスケジュールなどのキー管理アクションが含まれます。これらのアカウントの管理者は、アイデンティティベースのポリシーで必要なアクセス許可を持っている場合、 キーを管理して使用できます。
AllowIdentityCenterAndIdentityStoreToDescribeKey IAM Identity Center および Identity Store サービスプリンシパルがキーメタデータを取得できるようにします。これは、暗号化や復号を実行せずにキーを検証するサービスオペレーションに必要です。このaws:SourceAccount条件は、IAM Identity Center インスタンスのみが KMS キーを使用できるようにするのに役立ちます。
AllowIdentityCenterAndIdentityStoreToUseKey IAM Identity Center および Identity Store サービスプリンシパルが、データの暗号化、復号、再暗号化などの暗号化オペレーションに キーを使用できるようにします。このaws:SourceAccount条件は、IAM Identity Center インスタンスのみが KMS キーを使用できるようにするのに役立ちます。
AllowOrgPrincipalsViaIdentityCenterAndIdentityStore Organization の IAM プリンシパル AWS が IAM Identity Center および Identity Store サービスを通じてデータを復号できるようにします。これには、フォワードアクセスセッション (FAS) を使用して IAM Identity Center 統合 AWS サービスとやり取りするアプリケーション管理者が含まれます。
AllowManagedApps AWS マネージドアプリケーションが IAM Identity Center と Identity Store を通じて KMS キーで保護されたデータを復号できるようにします。

で次の IAM ポリシーステートメントステップ 4: KMS キーをクロスアカウントで使用するように IAM ポリシーを設定するを使用して、委任管理者が IAM Identity Center サービス APIs を介して KMS キーを使用できるようにします。サンプルキー ARN を実際の KMS キー ARN に置き換えます。この例のワイルドカードリージョンは、マルチリージョン KMS キーのすべてのレプリカに対応します。

Amazon EC2 インスタンスへの SSO や AWS マネージドアプリケーションの管理など、IAM Identity Center 管理以外のクロスアカウントユースケースでは、 AllowListKMSKeyAliasesステートメントkms:DecryptのみにスコープAllowCrossAccountKMSKeyUseダウンして削除します。

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