

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

# 高度な KMS キーポリシーステートメント
<a name="advanced-kms-policy"></a>

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

## 暗号化コンテキストを使用してアクセスを制限する
<a name="using-encryption-context-to-restrict-access"></a>

 キーポリシーステートメントで暗号化コンテキスト条件を指定することで、KMS キーの使用を特定の IAM アイデンティティセンターインスタンスに制限できます。ベースラインキーポリシーステートメントには、このコンテキストに汎用値がすでに含まれています。「\$1」ワイルドカードを特定のアイデンティティセンターインスタンス ARN とアイデンティティセンター ARN に置き換えて、キーが目的のインスタンスでのみ機能することを確認します。KMS キーのクロスアカウント使用のために設定された IAM ポリシーに同じ暗号化コンテキスト条件を追加することもできます。

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

```
"StringEquals": {
    "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
}
```

ID ストア

```
"StringEquals": {
    "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
}
```

 これらの識別子の検索に関するヘルプが必要な場合は、[必要な識別子の場所](identity-center-customer-managed-keys.md#find-the-required-identifiers)「」を参照してください。

**注記**  
カスタマーマネージド KMS キーは、IAM アイデンティティセンターの組織インスタンスでのみ使用できます。カスタマーマネージドキーは AWS 組織の管理アカウントに配置する必要があります。これにより、キーが 1 つの IAM Identity Center インスタンスで使用されるようになります。ただし、暗号化コンテキストメカニズムは、単一インスタンスの使用に対する独立した技術的保護を提供します。アイデンティティセンターおよび ID ストアサービスプリンシパル向けの KMS キーポリシーステートメントで `aws:SourceArn` 条件キーを使用することもできます。

### 暗号化コンテキスト条件を実装する際の考慮事項
<a name="considerations-for-implementing-encryption-context-conditions"></a>

暗号化コンテキスト条件を実装する前に、以下の要件を確認してください。
+  **DescribeKey アクション。**暗号化コンテキストは、IAM アイデンティティセンター管理者が使用できる「kms:DescribeKey」アクションに適用できません。KMS キーポリシーを設定するときは、この特定のアクションの暗号化コンテキストを除外して、IAM アイデンティティセンター インスタンスの適切なオペレーションを確保します。
+  **新しいインスタンスのセットアップ。**カスタマーマネージド KMS キーを使用して新しい IAM アイデンティティセンターインスタンスを有効にする場合は、「[カスタマーマネージド KMS キーと高度な KMS キーポリシーに関する考慮事項](considerations-for-customer-managed-kms-keys-advanced.md)」を参照してください。
+  **ID ソースの変更。**Active Directory との間で ID ソースを変更する場合、暗号化コンテキストには特別な注意が必要です。「[ID ソースの変更に関する注意事項](manage-your-identity-source-considerations.md)」を参照してください。

## ポリシーテンプレート
<a name="advanced-policy-templates"></a>

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

ここで説明するトピックは以下の通りです。
+  [特定の IAM アイデンティティセンターインスタンスの読み取り専用使用のための KMS ポリシーステートメント](#kms-policy-statements-for-read-only-use-of-a-specific-iam-identity-center-instance). このセクションでは、IAM アイデンティティセンターへの読み取り専用アクセスに暗号化コンテキストを使用する方法を示します。
+  [AWS マネージドアプリケーションを使用するための改良された KMS キーポリシーステートメント](#refined-kms-key-policy-statements-for-use-of-aws-managed-applications)。 このセクションでは、アプリケーションサービスプリンシパル、アプリケーション ARN、 AWS アカウント ID などの暗号化コンテキストとアプリケーション情報を使用して、 AWS マネージドアプリケーションの KMS キーポリシーを絞り込む方法を示します。

## 特定の IAM アイデンティティセンターインスタンスの読み取り専用使用のための KMS ポリシーステートメント
<a name="kms-policy-statements-for-read-only-use-of-a-specific-iam-identity-center-instance"></a>

 このポリシーは、IAM アイデンティティセンターへの読み取りアクセスのみを必要とする[セキュリティ監査担当者](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/SecurityAudit.html)やその他の担当者が KMS キーを使用することを許可します。

このポリシーを使用するには以下を実行します。

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

1. IAM アイデンティティセンターインスタンス ARN の例を実際のインスタンス ARN に置き換えます。

1. サンプルの ID ストア ARN を実際の ID ストア ARN に置き換える

1. [委任管理を使用している場合](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html)は、[ステップ 4: KMS キーをクロスアカウントで使用するように IAM ポリシーを設定する](identity-center-customer-managed-keys.md#configure-iam-policies-kms-key) を参照してください

これらの識別子の値の検索に関するヘルプが必要な場合は、「」を参照してください[必要な識別子の場所](identity-center-customer-managed-keys.md#find-the-required-identifiers)。

テンプレートを値で更新したら、 [ステップ 2: KMS キーポリシーステートメントを準備する](identity-center-customer-managed-keys.md#choose-kms-key-policy-statements) に戻り、必要に応じて追加の KMS キーポリシーステートメントを準備します。

kms:Decrypt アクションだけでは、読み取り専用オペレーションへのアクセスは制限されません。IAM ポリシーは、IAM アイデンティティセンターサービス API に読み取り専用アクセスを適用する必要があります。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowReadOnlyAccessToIdentityCenterAPI",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyAdminRole"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
        }
      }
    },
    {
      "Sid": "AllowReadOnlyAccessToIdentityStoreAPI",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyAdminRole"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
        }
      }
    }
  ]
}
```

## AWS マネージドアプリケーションを使用するための改良された KMS キーポリシーステートメント
<a name="refined-kms-key-policy-statements-for-use-of-aws-managed-applications"></a>

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

**注記**  
 一部の AWS マネージドアプリケーションは、カスタマーマネージド KMS キーで設定された IAM Identity Center では使用できません。「[AWS IAM アイデンティティセンターで使用できるマネージドアプリケーション](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-that-work-with-identity-center.html)」を参照してください。

は、同じ AWS 組織内の任意のアカウントの任意の AWS マネージドアプリケーションに KMS キーの使用[AWS マネージドアプリケーションを使用するためのベースライン KMS キーと IAM ポリシーステートメント](baseline-KMS-key-policy.md#baseline-kms-key-policy-statements-for-use-of-aws-managed-applications)を許可します。これらの洗練されたポリシーを使用して、以下によってアクセスを制限します。
+ アプリケーションサービスプリンシパル
+ アプリケーションインスタンス ARN
+ AWS アカウント IDs
+ 特定の IAM アイデンティティセンターインスタンスの暗号化コンテキスト

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

### アカウントによる制限
<a name="restrict-by-account"></a>

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

このポリシーを使用するには以下を実行します。

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

1. サンプルアカウント ID を、 AWS マネージドアプリケーションをデプロイする実際のアカウント ID に置き換えます。

1. サンプルの ID ストア ARN を実際の ID ストア ARN に置き換える

1. IAM アイデンティティセンターインスタンス ARN の例を実際のインスタンス ARN に置き換えます。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowServiceInSpecificAccountsToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": [
            "111122223333",
            "444455556666"
          ]
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    },
    {
      "Sid": "AllowServiceInSpecificAccountsToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": [
            "111122223333",
            "444455556666"
          ]
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

### アプリケーションインスタンスによる制限
<a name="restrict-by-application-instance"></a>

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

このポリシーを使用するには以下を実行します。

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

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

1. サンプルの ID ストア ARN を実際の ID ストア ARN に置き換える

1. IAM アイデンティティセンターインスタンス ARN の例を実際のインスタンス ARN に置き換えます。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowSpecificAppInstanceToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceARN": "arn:aws:myapp:us-east-1:111122223333:application/my-application"
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    },
    {
      "Sid": "AllowSpecificAppInstanceToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceARN": "arn:aws:myapp:us-east-1:111122223333:application/my-application"
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

# カスタマーマネージド KMS キーと高度な KMS キーポリシーに関する考慮事項
<a name="considerations-for-customer-managed-kms-keys-advanced"></a>

IAM アイデンティティセンターでカスタマーマネージド KMS キーを実装する場合は、暗号化設定の設定、セキュリティ、継続的なメンテナンスに影響するこれらの要因を考慮してください。

## ベースラインとアドバンスト KMS キーポリシーステートメントの選択に関する考慮事項
<a name="kms-policy-considerations-advanced-vs-baseline"></a>

[高度な KMS キーポリシーステートメント](advanced-kms-policy.md) を使用して KMS キーのアクセス許可をより具体的にするかどうかを決定するときは、組織の管理オーバーヘッドとセキュリティニーズを考慮してください。より具体的なポリシーステートメントでは、キーを使用できるユーザーと目的をよりきめ細かく制御できます。ただし、IAM アイデンティティセンターの設定が進化するにつれて、継続的なメンテナンスが必要になります。たとえば、KMS キーの使用を特定の AWS マネージドアプリケーションのデプロイに制限する場合は、組織がアプリケーションをデプロイまたはデプロイ解除するたびにキーポリシーを更新する必要があります。制限の少ないポリシーは管理上の負担を軽減しますが、セキュリティ要件に必要なよりも広範なアクセス許可を付与する可能性があります。

## カスタマーマネージド KMS キーを使用して新しい IAM アイデンティティセンターインスタンスを有効にする際の考慮事項
<a name="considerations-for-enabling-new-instance"></a>

 ここでの考慮事項は、「[高度な KMS キーポリシーステートメント](advanced-kms-policy.md)」で説明されている暗号化コンテキストを使用して、KMS キーの使用を特定の IAM アイデンティティセンター インスタンスに制限する場合に適用されます。

 カスタマーマネージド KMS キーを使用して新しい IAM アイデンティティセンターインスタンスを有効にする場合、IAM アイデンティティセンターと ID ストア ARN はセットアップ後まで使用できません。次のオプションがあります。
+  一時的に汎用 ARN パターンを使用し、インスタンスが有効になったら、 完全な ARN に置き換えます。必要に応じて、StringEquals 演算子と StringLike 演算子を切り替えてください。
  +  IAM アイデンティティセンター SPN の場合: "arn:\$1\$1Partition\$1:sso:::instance/\$1"。
  +  ID ストア SPN の場合: "arn:\$1\$1Partition\$1:identitystore::\$1\$1Account\$1:identitystore/\$1"。
+  ARN で一時的に「purpose:KEY\$1CONFIGURATION」を使用します。これはインスタンスの有効化にのみ機能し、IAM アイデンティティセンターインスタンスが正常に機能するには、実際の ARN に置き換える必要があります。このアプローチの利点は、インスタンスが有効になった後にこれを置き換えることを忘れないことです。
  +  IAM アイデンティティセンター SPN の場合は、「arn:\$1\$1Partition\$1:sso:::instance/purpose:KEY\$1CONFIGURATION」を使用します。
  +  ID ストア SPN の場合は、「arn:\$1\$1Partition\$1:identitystore::\$1\$1Account\$1:identitystore/purpose:KEY\$1CONFIGURATION」を使用します。
**重要**  
 この設定は、既存の IAM アイデンティティセンターインスタンスで既に使用されている KMS キーに適用しないでください。通常のオペレーションが中断される可能性があります。
+  インスタンスが有効になるまで、KMS キーポリシーから暗号化コンテキスト条件を省略します。