翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
の暗号化のベストプラクティス AWS Key Management Service
AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。 は、データを暗号化 AWS のサービス できる他のほとんどの と AWS KMS 統合します。完全なリストについては、「 AWS のサービス と統合されている AWS 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 ポリシーを設計する際は、次の内容を考慮します。
-
キーポリシーはマルチリージョンキーの共有プロパティではありません。また、関連するマルチリージョンキー間のキーポリシーをコピーまたは同期しません。
-
CreateKey
とReplicateKey
のアクションを使用してマルチリージョンキーを作成した場合、リクエストでキーポリシーが指定されていない限り、デフォルトキーポリシーが適用されます。 -
aws:RequestedRegion などの条件キーを実装して、特定の AWS リージョンへのアクセス許可を制限できます。
-
権限を使用して、マルチリージョンのプライマリキーまたはレプリカキーへのアクセス許可を付与できます。ただし、マルチリージョンキーが関連付けられている場合でも、単一の権限を使用して複数の KMS キーにアクセス許可を付与することはできません。
-
AWS KMS を使用してキーポリシーを作成するときは、次の暗号化のベストプラクティスとその他のセキュリティのベストプラクティスを考慮してください。
-
AWS KMS ベストプラクティスについては、以下のリソースの推奨事項に従ってください。
-
AWS KMS グラントのベストプラクティス (AWS KMS ドキュメント)
-
IAM ポリシーのベストプラクティス (AWS KMS ドキュメント)
-
-
職務分掌のベストプラクティスに従い、キーを管理する人物と使用する人物の ID は個別に管理してください。
-
キーの作成および削除を行う管理者ロールは、そのキーを使用できないようにする必要があります。
-
一部のサービスでは、データの暗号化のみを必要とするため、キーを使用して復号する権限を付与するべきではない場合があります。
-
-
キーポリシーは、常に最小特権モデルに従う必要があります。
kms:*
は、IAM またはキーポリシーのアクションに使用しないでください。これはプリンシパルにキーの管理と使用の権限が両方付与されてしまうためです。 -
キーポリシー内の 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 ブログ記事) を参照してください。 -
CloudTrail ログに AWS KMS API コールを記録します。こうすることで、実行されたリクエストの内容、リクエストの送信元 IP アドレス、リクエストを実行したユーザーなど、関連するイベント属性が記録されます。詳細については、「 を使用した API コールのログ記録 AWS KMSAWS CloudTrail」を参照してください。
-
暗号化コンテキストを使用する場合、機密情報を含めるべきではありません。CloudTrail は暗号化コンテキストをプレーンテキストの JSON ファイルに保存します。このファイルは、情報を含む S3 バケットにアクセスできるユーザーなら誰でも閲覧できます。
-
カスタマーマネージドキーの使用状況をモニタリングする場合、キーの作成、カスタマーマネージドキーポリシーの更新、キーマテリアルのインポートなど、特定のアクションが検出された際に通知するようイベントを設定します。また、キーを無効化する AWS Lambda 関数や組織のポリシーで指定されているインシデント対応アクションを実行する関数などの自動応答を実装することもお勧めします。
-
マルチリージョンキーは、コンプライアンス準拠、ディザスタリカバリ、バックアップなど、特定のシナリオにお勧めします。マルチリージョンキーのセキュリティプロパティは、単一リージョンキーとは大きく異なります。マルチリージョンキーの作成、管理、使用を許可する際には、以下の推奨事項が適用されます。
-
プリンシパルが、必要とする AWS リージョン のみにマルチリージョンキーをコピーできるようにします。
-
マルチリージョンキーのアクセス許可を、それらを必要とするプリンシパルおよびタスクに対してのみ付与します。
-