の暗号化のベストプラクティス AWS Key Management Service - AWS 規範ガイダンス

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

の暗号化のベストプラクティス AWS Key Management Service

AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。 は、データを暗号化 AWS のサービス できる他のほとんどの と AWS KMS 統合します。詳細なリストについては、「 AWS のサービス と統合 AWS KMSされている」を参照してください。 AWS KMS また、 とも AWS CloudTrail 統合されており、監査、規制、コンプライアンスのニーズに対応するためのKMSキーの使用をログに記録します。

KMS キーは のプライマリリソースであり AWS KMS、暗号化キーの論理表現です。KMS キーには主に 3 つのタイプがあります。

  • カスタマーマネージドキーは、作成するKMSキーです。

  • AWS マネージドキーは、 がユーザーに代わってアカウントで AWS のサービス 作成するKMSキーです。

  • AWS 所有キーは、 が AWS のサービス 所有および管理するKMSキーで、複数の で使用します AWS アカウント。

キーの種類の詳細については、「カスタマーキーと AWS キー」を参照してください。

では AWS クラウド、 ポリシーを使用して、リソースとサービスにアクセスできるユーザーを制御します。例えば、 AWS Identity and Access Management (IAM) では、アイデンティティベースのポリシーはユーザー、ユーザーグループ、またはロールのアクセス許可を定義し、リソースベースのポリシーは S3 バケットなどのリソースにアタッチし、アクセスを許可するプリンシパル、サポートされているアクション、および満たす必要があるその他の条件を定義します。IAM ポリシーと同様に、 はキーポリシー AWS KMS を使用してKMSキーへのアクセスを制御します。各KMSキーにはキーポリシーが必要です。各キーにはキーポリシーを 1 つだけ持つことができます。KMS キーへのアクセスを許可または拒否するポリシーを定義するときは、次の点に注意してください。

  • カスタマーマネージドキーのキーポリシーは制御できますが、 AWS マネージドキーまたは AWS 所有キーのキーポリシーを直接制御することはできません。

  • キーポリシーにより、 内の コールへの AWS KMS APIきめ細かなアクセスを許可できます AWS アカウント。キーポリシーで明示的に許可されていない限り、IAMポリシーを使用してKMSキーへのアクセスを許可することはできません。キーポリシーからのアクセス許可がない場合、アクセス許可を許可するIAMポリシーは効果がありません。詳細については、IAM「ポリシーにKMSキー へのアクセスを許可する」を参照してください。

  • IAM ポリシーを使用して、キーポリシーからの対応するアクセス許可なしで、カスタマーマネージドキーへのアクセスを拒否できます。

  • マルチリージョンキーのキーポリシーとIAMポリシーを設計する場合は、次の点を考慮してください。

    • キーポリシーはマルチリージョンキーの共有プロパティではありません。また、関連するマルチリージョンキー間のキーポリシーをコピーまたは同期しません。

    • CreateKeyReplicateKey のアクションを使用してマルチリージョンキーを作成した場合、リクエストでキーポリシーが指定されていない限り、デフォルトキーポリシーが適用されます。

    • aws:RequestedRegion などの条件キーを実装して、アクセス許可を特定の に制限できます AWS リージョン。

    • 権限を使用して、マルチリージョンのプライマリキーまたはレプリカキーへのアクセス許可を付与できます。ただし、1 つの許可を使用して、複数のKMSキーが関連するマルチリージョンキーであっても、複数のキーへのアクセス許可を許可することはできません。

AWS KMS を使用してキーポリシーを作成するときは、次の暗号化のベストプラクティスとその他のセキュリティのベストプラクティスを考慮してください。

  • AWS KMS ベストプラクティスについては、以下のリソースの推奨事項に従ってください。

  • 職務分掌のベストプラクティスに従い、キーを管理する人物と使用する人物の ID は個別に管理してください。

    • キーの作成および削除を行う管理者ロールは、そのキーを使用できないようにする必要があります。

    • 一部のサービスでは、データの暗号化のみを必要とするため、キーを使用して復号する権限を付与するべきではない場合があります。

  • キーポリシーは、常に最小特権モデルに従う必要があります。IAM または キーポリシーのアクションkms:*に を使用しないでください。これにより、プリンシパルにキーの管理と使用の両方のアクセス許可が付与されます。

  • キーポリシー内の kms:ViaService 条件キー AWS のサービス を使用して、カスタマーマネージドキーの使用を特定の に制限します。

  • キータイプの中から選択できる場合は、カスタマーマネージドキーをお勧めします。これは、次のようなきめ細かな制御オプションが提供されるためです。

  • AWS KMS 管理アクセス許可と変更アクセス許可は、未承認のプリンシパルに対して明示的に拒否する必要があり、 AWS KMS 変更アクセス許可は、未承認のプリンシパルの許可ステートメントに存在してはいけません。詳細については、「AWS Key Management Serviceのアクション、リソース、および条件キー」を参照してください。

  • KMS キーの不正使用を検出するには、 で AWS Configiam-customer-policy-blocked-kms-actions および iam-inline-policy-blocked-kms-actions ルールを実装します。これにより、プリンシパルはすべてのリソースで復 AWS KMS 号アクションを使用できなくなります。

  • のサービスコントロールポリシー (SCPs) を に実装 AWS Organizations して、権限のないユーザーまたはロールがコマンドとして直接、またはコンソールを介してKMSキーを削除しないようにします。詳細については、「予防的コントロールSCPsとして を使用する」(AWS ブログ記事) を参照してください。

  • コールをログ AWS KMS APIに記録します CloudTrail 。こうすることで、実行されたリクエストの内容、リクエストの送信元 IP アドレス、リクエストを実行したユーザーなど、関連するイベント属性が記録されます。詳細については、「 を使用したAPI呼び出しのログ記録 AWS KMSAWS CloudTrail」を参照してください。

  • 暗号化コンテキスト を使用する場合、機密情報を含めないでください。 は暗号化コンテキストをプレーンテキストJSONファイルに CloudTrail 保存します。プレーンテキストファイルは、情報を含む S3 バケットにアクセスできるすべてのユーザーが表示できます。

  • カスタマーマネージドキーの使用状況をモニタリングする場合、キーの作成、カスタマーマネージドキーポリシーの更新、キーマテリアルのインポートなど、特定のアクションが検出された際に通知するようイベントを設定します。また、キーを無効化する AWS Lambda 関数や組織のポリシーで指定されているインシデント対応アクションを実行する関数などの自動応答を実装することもお勧めします。

  • マルチリージョンキーは、コンプライアンス準拠、ディザスタリカバリ、バックアップなど、特定のシナリオにお勧めします。マルチリージョンキーのセキュリティプロパティは、単一リージョンキーとは大きく異なります。マルチリージョンキーの作成、管理、使用を許可する際には、以下の推奨事項が適用されます。

    • プリンシパルが、必要とする AWS リージョン のみにマルチリージョンキーをコピーできるようにします。

    • マルチリージョンキーのアクセス許可を、それらを必要とするプリンシパルおよびタスクに対してのみ付与します。