

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

# の暗号化のベストプラクティス AWS Key Management Service
<a name="kms"></a>

[AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。 は、データを暗号化 AWS のサービス できる他のほとんどの と AWS KMS 統合します。完全なリストについては、「 [AWS のサービス と統合されている AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration)」を参照してください。 AWS KMS また、 とも AWS CloudTrail 統合され、監査、規制、コンプライアンスのニーズに対応するための KMS キーの使用をログに記録します。

KMS キーは のプライマリリソースであり AWS KMS、暗号化キーの論理表現です。KMS キーには主に 3 つのタイプがあります。
+ カスタマーマネージドキーは、お客様が作成する KMS キーです。
+ AWS マネージドキーは、ユーザーに代わって がアカウントに AWS のサービス 作成する KMS キーです。
+ AWS 所有キーは、 AWS のサービス が所有および管理し、複数の で使用する KMS キーです AWS アカウント。

キーの種類の詳細については、「[カスタマーキーと AWS キー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)」を参照してください。

では AWS クラウド、 ポリシーを使用して、リソースとサービスにアクセスできるユーザーを制御します。例えば、 AWS Identity and Access Management (IAM) では、*アイデンティティベースのポリシー*はユーザー、ユーザーグループ、またはロールのアクセス許可を定義し、*リソースベースのポリシー*は S3 バケットなどのリソースにアタッチし、アクセスを許可するプリンシパル、サポートされているアクション、および満たす必要があるその他の条件を定義します。IAM ポリシーと同様に、 は[キーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) AWS KMS を使用して KMS キーへのアクセスを制御します。各 KMS キーにはキーポリシーが必要です。また、各キーには 1 つのキーポリシーしか指定できません。KMS キーへのアクセスを許可または拒否するポリシーを定義する場合、次の点に注意してください。
+ カスタマーマネージドキーのキーポリシーは制御できますが、 AWS マネージドキーまたは AWS 所有キーのキーポリシーを直接制御することはできません。
+ キーポリシーを使用すると、 内の AWS KMS API コールへのきめ細かなアクセスを許可できます AWS アカウント。キーポリシーで明示的に許可されていない限り、IAM ポリシーを使用して KMS キーへのアクセスを許可することはできません。キーポリシーからの許可がない場合、許可を許可する IAM ポリシーは効力を持ちません。詳細については、「[IAM ポリシーに KMS キーへのアクセスを許可する](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#key-policy-default-allow-root-enable-iam)」を参照してください。
+ IAM ポリシーを使用して、キーポリシー対応する権限がないカスタマーマネージドキーへのアクセスを拒否できます。
+ マルチリージョンキーのキーポリシーと IAM ポリシーを設計する際は、次の内容を考慮します。
  + キーポリシーはマルチリージョンキーの[共有プロパティ](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-sync-properties)ではありません。また、関連するマルチリージョンキー間のキーポリシーをコピーまたは同期しません。
  + `CreateKey` と `ReplicateKey` のアクションを使用してマルチリージョンキーを作成した場合、リクエストでキーポリシーが指定されていない限り、[デフォルトキーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html)が適用されます。
  + [aws:RequestedRegion](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) などの条件キーを実装して、特定の AWS リージョンへのアクセス許可を制限できます。
  + 権限を使用して、マルチリージョンのプライマリキーまたはレプリカキーへのアクセス許可を付与できます。ただし、マルチリージョンキーが関連付けられている場合でも、単一の権限を使用して複数の KMS キーにアクセス許可を付与することはできません。

 AWS KMS を使用してキーポリシーを作成するときは、次の暗号化のベストプラクティスとその他のセキュリティのベストプラクティスを考慮してください。
+  AWS KMS ベストプラクティスについては、以下のリソースの推奨事項に従ってください。
  + [AWS KMS 許可のベストプラクティス](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant-best-practices) (AWS KMS ドキュメント)
  + [IAM ポリシーのベストプラクティス](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies-best-practices.html) (AWS KMS ドキュメント)
+ 職務分掌のベストプラクティスに従い、キーを管理する人物と使用する人物の ID は個別に管理してください。
  + キーの作成および削除を行う管理者ロールは、そのキーを使用できないようにする必要があります。
  + 一部のサービスでは、データの暗号化のみを必要とするため、キーを使用して復号する権限を付与するべきではない場合があります。
+ キーポリシーは、常に最小特権モデルに従う必要があります。`kms:*` は、IAM またはキーポリシーのアクションに使用しないでください。これはプリンシパルにキーの管理と使用の権限が両方付与されてしまうためです。
+ キーポリシー内の [kms:ViaService ](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service)条件キー AWS のサービス を使用して、カスタマーマネージドキーの使用を特定の に制限します。
+ キータイプの中から選択できる場合は、カスタマーマネージドキーをお勧めします。これは、次のようなきめ細かな制御オプションが提供されるためです。
  + [認証とアクセスコントロールの管理](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)
  + [キーの有効化と無効化](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)
  + [AWS KMS keysのローテーション](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)
  + [キーのタグ付け](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)
  + [エイリアスの作成](https://docs.aws.amazon.com/kms/latest/developerguide/programming-aliases.html)
  + [AWS KMS keysの削除](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)
+ AWS KMS 管理および変更のアクセス許可は、未承認のプリンシパルに対して明示的に拒否する必要があり、 AWS KMS 変更のアクセス許可は、未承認のプリンシパルの許可ステートメントに存在してはいけません。詳細については、[AWS Key Management Serviceのアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html)を参照してください。
+ KMS キーの不正使用を検出するには、 で AWS Config[iam-customer-policy-blocked-kms-actions](https://docs.aws.amazon.com/config/latest/developerguide/iam-customer-policy-blocked-kms-actions.html) および [iam-inline-policy-blocked-kms-actions](https://docs.aws.amazon.com/config/latest/developerguide/iam-inline-policy-blocked-kms-actions.html) ルールを実装します。これにより、プリンシパルがすべてのリソースで復 AWS KMS 号アクションを使用できなくなります。
+ のサービスコントロールポリシー (SCPs に実装 AWS Organizations して、権限のないユーザーまたはロールが コマンドとして直接、またはコンソールを介して KMS キーを削除しないようにします。詳細については、[「予防的コントロールとしての SCPs](https://aws.amazon.com/blogs/mt/identity-guide-preventive-controls-with-aws-identity-scps/)」(AWS ブログ記事) を参照してください。
+ CloudTrail ログに AWS KMS API コールを記録します。こうすることで、実行されたリクエストの内容、リクエストの送信元 IP アドレス、リクエストを実行したユーザーなど、関連するイベント属性が記録されます。詳細については、「 [を使用した API コールのログ記録 AWS KMSAWS CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/logging-using-cloudtrail.html)」を参照してください。
+ [暗号化コンテキスト](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)を使用する場合、機密情報を含めるべきではありません。CloudTrail は暗号化コンテキストをプレーンテキストの JSON ファイルに保存します。このファイルは、情報を含む S3 バケットにアクセスできるユーザーなら誰でも閲覧できます。
+ カスタマーマネージドキーの使用状況をモニタリングする場合、キーの作成、カスタマーマネージドキーポリシーの更新、キーマテリアルのインポートなど、特定のアクションが検出された際に通知するようイベントを設定します。また、キーを無効化する AWS Lambda 関数や組織のポリシーで指定されているインシデント対応アクションを実行する関数などの自動応答を実装することもお勧めします。
+ [マルチリージョンキー](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-auth.html)は、コンプライアンス準拠、ディザスタリカバリ、バックアップなど、特定のシナリオにお勧めします。マルチリージョンキーのセキュリティプロパティは、単一リージョンキーとは大きく異なります。マルチリージョンキーの作成、管理、使用を許可する際には、以下の推奨事項が適用されます。
  + プリンシパルが、必要とする AWS リージョン のみにマルチリージョンキーをコピーできるようにします。
  + マルチリージョンキーのアクセス許可を、それらを必要とするプリンシパルおよびタスクに対してのみ付与します。