使用 VPC 端点控制对 AWS KMS 资源的访问
您可以在请求来自于 VPC 或使用 VPC 终端节点时控制对 AWS KMS 资源和操作的访问。为此,请在密钥策略或 IAM policy 中使用以下全局条件键之一。
-
使用
aws:sourceVpce条件键基于 VPC 终端节点授予或限制访问。 -
使用
aws:sourceVpc条件键基于托管私有终端节点的 VPC 授予或限制访问。
注意
根据您的 VPC 终端节点创建密钥策略和 IAM policy 时要小心。如果策略语句要求请求来自特定的 VPC 或 VPC 终端节点,则来自代表您使用 AWS KMS 资源的集成 AWS 服务的请求可能会失败。有关帮助信息,请参阅 在具有 AWS KMS 权限的策略中使用 VPC 终端节点条件。
此外,当请求来自 Amazon VPC 终端节点时,aws:sourceIP 条件键也不起作用。要限制对 VPC 终端节点的请求,请使用 aws:sourceVpce 或 aws:sourceVpc 条件键。有关更多信息,请参阅《AWS PrivateLink 指南》中的 VPC 终端节点和 VPC 终端节点服务的身份和访问管理。
您可以使用这些全局条件键来控制对 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 中运行,但您使用第二个隔离的 VPC 执行管理功能,则可以使用这样的策略。
要使用类似这样的策略,请将占位符 AWS 账户 ID 和 VPC 终端节点 ID 替换为您账户中的有效值。