VPC エンドポイントを使用して AWS KMS リソースへのアクセスを制御する
リクエストが VPC から送信されたとき、または VPC エンドポイントを使用するときに、AWS KMS リソースとオペレーションへのアクセスを制御できます。このためには、キーポリシーまたは IAM ポリシーで、次のいずれかのグローバル条件キーを使用します。
-
aws:sourceVpce条件キーを使用して、VPC エンドポイントに基づいてアクセスを許可または制限します。 -
aws:sourceVpc条件キーを使用して、プライベートエンドポイントをホストする VPC に基づいてアクセスを許可または制限します。
注記
VPC エンドポイントに基づいてキーポリシーと IAM ポリシーを作成する場合は、注意が必要です。ポリシーステートメントによって、特定の VPC または VPC エンドポイントからリクエストが送信されるように要求されている場合は、ユーザーに代わって AWS リソースを使用する統合 AWS KMS のサービスからのリクエストが失敗する可能性があります。ヘルプについては、「AWS KMS アクセス許可を持つポリシーでの VPC エンドポイント条件の使用」を参照してください。
また、リクエストが Amazon VPC エンドポイントから送信される場合、aws:sourceIP 条件キーは無効です。リクエストを VPC エンドポイントに制限するには、aws:sourceVpce または aws:sourceVpc 条件キーを使用します。詳細については、AWS PrivateLink ガイドの「Identity and access management for VPC endpoints and VPC endpoint services」を参照してください。
これらのグローバル条件キーを使用して、AWS KMS keys (KMS キー)、エイリアス、および特定のリソースに依存しない CreateKey などのオペレーションへのアクセスを制御できます。
例えば、次のサンプルキーポリシーでは、リクエストが指定された VPC エンドポイントを使用する場合にのみ、KMS キーを使用してユーザーが一部の暗号化オペレーションを実行できます。ユーザーが AWS KMS へのリクエストを行うと、リクエストの VPC エンドポイント ID が、ポリシーの aws:sourceVpce 条件キーの値と比較されます。一致しない場合、要求は拒否されます。
このようなポリシーを使用するには、AWS アカウント ID と VPC エンドポイント ID のプレースホルダーを、アカウントの有効な値で置き換えます。
また、aws:sourceVpc 条件キーを使用して、VPC エンドポイントが存在する VPC に基づいて、KMS キーへのアクセスを制限することもできます。
次のサンプルキーポリシーでは、コマンドが vpc-12345678 から送信される場合にのみ、KMS キーを管理するコマンドが許可されます。また、コマンドが vpc-2b2b2b2b から送信される場合にのみ、暗号化オペレーションで KMS キーを使用するコマンドが許可されます。ある VPC でアプリケーションが実行されていれば、このようなポリシーを使用できますが、管理機能のために 2 番目の切り離された VPC を使用します。
このようなポリシーを使用するには、AWS アカウント ID と VPC エンドポイント ID のプレースホルダーを、アカウントの有効な値で置き換えます。