AWS KMS 中的资源控制策略 - AWS Key Management Service

AWS KMS 中的资源控制策略

资源控制策略(RCP)是一种组织策略,可用于对组织中的 AWS 资源强制实施预防性控制。RCP 有助您大规模集中限制对您的 AWS 资源的外部访问。RCP 是服务控制策略(SCP)的补充。SCP 可用于集中设置组织中 IAM 角色和用户的最大权限,而 RCP 可用于集中设置组织中 AWS 资源的最大权限。

您可以使用 RCP 来管理组织中客户自主管理型 KMS 密钥的权限。单凭 RCP 不足以授予对客户自主管理型密钥的权限。RCP 不会授予任何权限。RCP 针对各种身份可对受影响账户中资源执行的操作定义权限护栏或设置限制。管理员仍然必须将基于身份的策略附加到 IAM 用户或角色,或者附加密钥策略,才能实际授予权限。

注意

组织中的资源控制策略不适用于 AWS 托管式密钥

AWS 托管式密钥由 AWS 服务代表您创建、管理和使用,您无法更改或管理其权限。

了解更多

  • 有关 RCP 的更多一般信息,请参阅《AWS Organizations 用户指南》中的 Resource control policies

  • 有关如何定义 RCP 的详细信息(包括示例),请参阅《AWS Organizations 用户指南》中的 RCP syntax

以下示例展示了如何使用 RCP 来阻止外部主体访问您组织中的客户自主管理型密钥。此策略仅为示例,需要根据您自己独特的业务和安全需求对其进行定制。例如,您可能需要对该策略进行自定义,以允许业务合作伙伴访问。有关更多详细信息,请参阅 data perimeter policy examples repository

注意

即使 Action 元素将星号(*)指定为通配符,kms:RetireGrant 权限在 RCP 中也无效。

要详细了解如何确定 kms:RetireGrant 权限,请参阅停用和撤销授权

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RCPEnforceIdentityPerimeter", "Effect": "Deny", "Principal": "*", "Action": "kms:*", "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:PrincipalOrgID": "my-org-id" }, "Bool": { "aws:PrincipalIsAWSService": "false" } } } ] }

以下示例 RCP 要求 AWS 服务主体仅在请求来自您的组织时才能访问您的客户自主管理型 KMS 密钥。此策略仅对存在的 aws:SourceAccount 请求执行控制。这样可以确保不需要使用 aws:SourceAccount 的服务集成不会受到影响。如果请求上下文中存在 aws:SourceAccount,则 Null 条件将评估为 true,从而强制执行 aws:SourceOrgID 键。

有关混淆代理问题的更多信息,请参阅《IAM 用户指南》中的混淆代理问题

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RCPEnforceConfusedDeputyProtection", "Effect": "Deny", "Principal": "*", "Action": "kms:*", "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceOrgID": "my-org-id" }, "Bool": { "aws:PrincipalIsAWSService": "true" }, "Null": { "aws:SourceAccount": "false" } } } ] }