

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

# の Security Hub CSPM コントロール AWS KMS
<a name="kms-controls"></a>

これらの AWS Security Hub CSPM コントロールは、 AWS Key Management Service (AWS KMS) サービスとリソースを評価します。コントロールは一部の で使用できない場合があります AWS リージョン。詳細については、「[リージョン別のコントロールの可用性](securityhub-regions.md#securityhub-regions-control-support)」を参照してください。

## [KMS.1] IAM カスタマー管理ポリシーでは、すべての KMS キーの復号アクションを許可しないでください
<a name="kms-1"></a>

**関連する要件:** NIST.800-53.r5 AC-2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6、NIST.800-53.r5 AC-6(3)

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 中

**リソースタイプ :** `AWS::IAM::Policy`

**AWS Config ルール :** [https://docs.aws.amazon.com/config/latest/developerguide/iam-customer-policy-blocked-kms-actions.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-customer-policy-blocked-kms-actions.html)

**スケジュールタイプ :** 変更がトリガーされた場合

**パラメータ :** 
+ `blockedActionsPatterns: kms:ReEncryptFrom, kms:Decrypt` (カスタマイズ不可)
+ `excludePermissionBoundaryPolicy`: `True` (カスタマイズ不可)

IAM カスタマー管理ポリシーのデフォルトバージョンで、プリンシパルがすべてのリソースで復 AWS KMS 号アクションを使用できるようにするかどうかを確認します。ポリシーがすべての KMS キーに対して `kms:Decrypt` または `kms:ReEncryptFrom` のアクションを許可するのに十分にオープンな場合、このコントロールは失敗します。

コントロールはリソース要素の KMS キーのみをチェックし、ポリシーの Condition 要素の条件は考慮しません。このコントロールは、添付済みのカスタマーマネージドポリシーと添付されていないカスタマーマネージドポリシーの両方を評価します。インラインポリシーや AWS 管理ポリシーはチェックされません。

を使用すると AWS KMS、KMS キーを使用できるユーザーを制御し、暗号化されたデータにアクセスできます。IAM ポリシーは、アイデンティティ (ユーザー、グループ、またはロール) がどのリソースに対してどのアクションを実行できるかを定義します。セキュリティのベストプラクティスに従って、 は最小権限を許可することを AWS 推奨しています。つまり、ID に付与するのは `kms:Decrypt` または `kms:ReEncryptFrom` 許可と、タスクの実行に必要なキーのみにする必要があります。そうでない場合、ユーザーはデータに適さないキーを使用する可能性があります。

すべてのキーに対する許可を付与する代わりに、ユーザーが暗号化されたデータにアクセスするために必要な最小限のキーのセットを決定します。次に、ユーザーがそれらのキーのみを使用できるようにするポリシーを設計します。例えば、すべての KMS キーに `kms:Decrypt` 許可を付与しないでください。代わりに、アカウントの特定のリージョン内のキーのみに `kms:Decrypt` を許可します。最小特権のプリンシパルを採用することで、意図しないデータ開示のリスクを減らすことができます。

### 修正
<a name="kms-1-remediation"></a>

IAM カスタマー管理ポリシーを変更するには、「*IAM ユーザーガイド*」の「[カスタマー管理ポリシーの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html#edit-managed-policy-console)」を参照してください。`Resource` フィールドのポリシーを編集する際、復号化アクションを許可する特定の 1 つまたは複数キーの Amazon リソースネーム (ARN) を指定します。

## [KMS.2] IAM プリンシパルは、すべての KMS キーで復号アクションを許可する IAM インラインポリシーを使用しないでください
<a name="kms-2"></a>

**関連する要件:** NIST.800-53.r5 AC-2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6、NIST.800-53.r5 AC-6(3)

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 中

**リソースタイプ: **
+ `AWS::IAM::Group`
+ `AWS::IAM::Role`
+ `AWS::IAM::User`

**AWS Config ルール :** [https://docs.aws.amazon.com/config/latest/developerguide/iam-inline-policy-blocked-kms-actions.html](https://docs.aws.amazon.com/config/latest/developerguide/iam-inline-policy-blocked-kms-actions.html) 

**スケジュールタイプ :** 変更がトリガーされた場合

**パラメータ :**
+ `blockedActionsPatterns: kms:ReEncryptFrom, kms:Decrypt` (カスタマイズ不可)

このコントロールは、IAM ID (ロール、ユーザー、またはグループ) に埋め込まれているインラインポリシーが、すべての AWS KMS KMS キーで復号化および再暗号化アクションを許可しているかどうかをチェックします。ポリシーがすべての KMS キーに対して `kms:Decrypt` または `kms:ReEncryptFrom` のアクションを許可するのに十分にオープンな場合、このコントロールは失敗します。

コントロールはリソース要素の KMS キーのみをチェックし、ポリシーの Condition 要素の条件は考慮しません。

を使用すると AWS KMS、KMS キーを使用できるユーザーを制御し、暗号化されたデータにアクセスできます。IAM ポリシーは、アイデンティティ (ユーザー、グループ、またはロール) がどのリソースに対してどのアクションを実行できるかを定義します。セキュリティのベストプラクティスに従って、 は最小権限を許可することを AWS 推奨しています。つまり、ID には必要な許可のみを、タスクの実行に必要なキーにのみ付与する必要があります。そうでない場合、ユーザーはデータに適さないキーを使用する可能性があります。

すべてのキーに対する許可を付与する代わりに、ユーザーが暗号化されたデータにアクセスするために必要なキーの最小セットを決定します。次に、ユーザーがそれらのキーのみを使用できるようにするポリシーを設計します。例えば、すべての KMS キーに `kms:Decrypt` 許可を付与しないでください。代わりに、アカウントの特定リージョンでの特定のキーにのみ許可を付与してください。最小特権のプリンシパルを採用することで、意図しないデータ開示のリスクを減らすことができます。

### 修正
<a name="kms-2-remediation"></a>

IAM インラインポリシーを変更するには、「*IAM ユーザーガイド*」の「[インラインポリシーの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html#edit-inline-policy-console)」を参照してください。`Resource` フィールドのポリシーを編集する際、復号化アクションを許可する特定の 1 つまたは複数キーの Amazon リソースネーム (ARN) を指定します。

## [KMS.3] AWS KMS keys を意図せずに削除しないでください
<a name="kms-3"></a>

**関連する要件:** NIST.800-53.r5 SC-12、NIST.800-53.r5 SC-12(2)

**カテゴリ:** 保護 > データ保護 > データ削除保護

**重要度:** 非常事態

**リソースタイプ :** `AWS::KMS::Key`

**AWS Config rule:** `kms-cmk-not-scheduled-for-deletion-2` (カスタム Security Hub CSPM ルール)

**スケジュールタイプ :** 変更がトリガーされた場合

**パラメータ :** なし

このコントロールは、KMS キーの削除がスケジュール済みかどうかをチェックします。KMS キーの削除がスケジュール済みの場合、コントロールは失敗します。

KMS キーは、一度削除すると復元できません。KMS キーで暗号化されたデータも、KMS キーが削除された場合は永久に回復できません。削除予定の KMS キーで、意味のあるデータが暗号化されている場合、意図的に暗号化消去を実行しない限り、データの復号化または新しい KMS キーでデータの再暗号化を検討してください。

KMS キーの削除がスケジュール済みで、誤ってスケジュールされた場合、削除の取り消し時間を確保するために、強制的に待ち時間が適用されます。デフォルトの待機期間は 30 日間ですが、KMS キーの削除がスケジュールされている場合は 7 日以内に短縮できます。待機期間中、スケジュール済みの削除はキャンセルすることができ、KMS キーは削除されません。

KMS キーの削除の詳細については、「AWS Key Management Service 開発者ガイド」の「[KMS キーの削除](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)」を参照してください。

### 修正
<a name="kms-3-remediation"></a>

スケジュール済み KMS キーの削除をキャンセルには、「*AWS Key Management Service デベロッパーガイド*」の「[キー削除のスケジュールとキャンセル (コンソール)](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys-scheduling-key-deletion.html#deleting-keys-scheduling-key-deletion-console)」内にある「**キーの削除をキャンセルするには**」を参照してください。

## [KMS.4] AWS KMS キーローテーションを有効にする必要があります
<a name="kms-4"></a>

**関連する要件:** CIS AWS Foundations Benchmark v5.0.0/3.6、CIS AWS Foundations Benchmark v3.0.0/3.6、CIS AWS Foundations Benchmark v1.4.0/3.8、CIS AWS Foundations Benchmark v1.2.0/2.8、NIST.800-53.r5 SC-12、NIST.800-53.r5 SC-12(2)、NIST.800-53.r5 SC-28(3)、PCI DSS v3.2.1/3.6.4、PCI DSS v4.0.1/3.7.4

**カテゴリ:** 保護 > データ保護 > 保管中のデータの暗号化

**重要度:** 中

**リソースタイプ :** `AWS::KMS::Key`

**AWS Config ルール :** [https://docs.aws.amazon.com/config/latest/developerguide/cmk-backing-key-rotation-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/cmk-backing-key-rotation-enabled.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

AWS KMS では、 に保存されているキーマテリアルであり、KMS キーのキー ID AWS KMS に関連付けられているバッキングキーをローテーションできます。バッキングキーは、暗号化や復号化などの暗号化オペレーションを実行するために使用されます。現在、キーの自動ローテーションでは以前のすべてのバッキングキーが保持されるため、暗号化したデータは透過的に復号化できます。

CIS では、KMS キーのローテーションを有効にすることを推奨しています。新しいキーで暗号化されたデータは、漏洩した可能性がある以前のキーではアクセスできないため、暗号化キーをローテーションすることで、漏洩したキーにより起こる可能性のある被害を減らすことができます。

### 修正
<a name="kms-4-remediation"></a>

KMS キーローテーションを有効にするには、「*AWS Key Management Service デベロッパーガイド*」の「[自動キーローテーションを有効または無効にする方法](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-enable-disable)」を参照してください。

## [KMS.5] KMS キーはパブリックにアクセスしないでください
<a name="kms-5"></a>

**カテゴリ:** 保護 > セキュアなネットワーク設定 > パブリックアクセス不可のリソース

**重要度:** 非常事態

**リソースタイプ :** `AWS::KMS::Key`

**AWS Config ルール :** [https://docs.aws.amazon.com/config/latest/developerguide/kms-key-policy-no-public-access.html](https://docs.aws.amazon.com/config/latest/developerguide/kms-key-policy-no-public-access.html)

**スケジュールタイプ:** 変更がトリガーされた場合

**パラメータ :** なし

このコントロール AWS KMS key は、 がパブリックにアクセス可能かどうかをチェックします。KMS キーがパブリックにアクセス可能な場合、コントロールは失敗します。

最小特権アクセスの実装は、セキュリティリスクおよびエラーの影響や悪意ある行動を減らす上での基礎となります。のキーポリシーで外部アカウントからのアクセス AWS KMS key が許可されている場合、サードパーティーは キーを使用してデータを暗号化および復号化できる場合があります。これにより、 キーを使用する内部または外部の脅威 AWS のサービス が からデータを流出する可能性があります。

**注記**  
このコントロールは、設定で が KMS キーの設定項目 (CI) にキーポリシー AWS Config を記録 AWS KMS key できない場合も、 `FAILED`の結果を返します。 AWS Config が KMS キーの CI にキーポリシーを入力するには、[AWS Config ロール](https://docs.aws.amazon.com/config/latest/developerguide/gs-cli-prereq.html#gs-cli-create-iamrole)に [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html) API コールを使用してキーポリシーを読み取るためのアクセス権が必要です。このタイプの`FAILED`検出結果を解決するには、 AWS Config ロールが KMS キーのキーポリシーに読み取りアクセスできないようにするポリシーを確認します。たとえば、次のものをチェックします。  
KMS キーのキーポリシー。
アカウント AWS Organizations に適用される [のサービスコントロールポリシー (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) と[リソースコントロールポリシー (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)。
[AWS Config サービスにリンク](https://docs.aws.amazon.com/config/latest/developerguide/using-service-linked-roles.html)された AWS Config ロールを使用していない場合のロールのアクセス許可。
さらに、このコントロールはワイルドカード文字または変数を使用するポリシー条件を評価しません。`PASSED` 検出結果を生成するには、キーポリシーの条件は固定値のみを使用する必要があります。固定値は、ワイルドカード文字やポリシー変数を含まない値です。ポリシー変数に関する詳細については、「*AWS Identity and Access Management ユーザーガイド*」の「[変数およびタグ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)」を参照してください。

### 修正
<a name="kms-5-remediation"></a>

のキーポリシーの更新については AWS KMS key、「 *AWS Key Management Service デベロッパーガイド*」の「 [のキーポリシー AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-overview)」を参照してください。