

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

# ベースライン KMS キーポリシー
<a name="baseline-KMS-key-policy"></a>

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

このポリシーを使用するには、次のプレースホルダー値を独自のプレースホルダー値に置き換えます。
+ `{{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 ポリシーを設定する](identity-center-customer-managed-keys.md#configure-iam-policies-kms-key)を使用して、委任管理者が 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": "*"
    }
  ]
}
```