如何管理 AWS 组织的 SCP 字符大小限制或 SCP 数量?

1 分钟阅读
0

我想增加服务控制策略 (SCP) 的字符限制,或者将更多 SCP 附加到 AWS 组织中的一个实体。

解决方法

AWS Organizations 服务有一个硬性限制,每个账户最多只能有五个 SCP。如果将过多的 SCP 关联到账户、OU 或根目录,则可能会收到 ConstraintViolationException 错误。

SCP 的最大大小为 5,120 个字符,其中包括任何多余的空格或换行符。有关详细信息,请参阅 AWS Organizations 的配额和服务限制

使用以下方法可减少直接附加到账户的 SCP 数量,以便在组织中实施更多限制:

  • 将多个 SCP 整合为一个 SCP
  • 在组织单位(OU)的层次结构中使用 SCP 继承

将多个 SCP 整合为一个 SCP

如果 SCP 小于 5,120 字节(策略大小限制),请使用此方法。

请按照以下建议降低 SCP 大小限制:

  • 查看您的 SCP 并删除所有重复的权限。例如,将所有具有相同 EffectResource 元素的操作放在一个语句中,而不是放在多个语句中。

  • 删除所有不必要的元素,例如语句 ID (Sid),因为该元素计入允许的字符总数。

  • 对于具有相同后缀或前缀的操作,请使用通配符。例如,操作 ec2:DescribeInstancesec2:DescribeTagsec2:DescribeSubnets 可以组合为 ec2:Describe*

    **重要事项:**通配符可能会给组织带来额外的安全风险。通配符授予广泛的权限,通常用于多个资源。通配符可以为组织中的 AWS Identity and Access Management (IAM) 身份(用户、组、角色)授予意外权限。不要对 AWS Lambda 函数使用此方法来应用权限。确保仅在进行尽职调查后才使用通配符。最佳做法是避免在 IAM 策略中授予通配符权限

在 OU 层次结构中使用 SCP 继承

五个 SCP 限制不包括从父 SCP 继承的 SCP。您可以使用 OU 的 SCP 继承结构和成员账户,在多个 OU 之间分配 SCP。例如,要拒绝拥有您的组织成员账户的 IAM 用户或角色访问 AWS 服务,请按照以下示例设置您的组织结构:

Root    <--- 1 full access SCP (1 directly attached)   |
OU1     <--- 1 full access, 4 deny SCPs (5 directly attached, 1 inherited)
 |
OU2     <--- 1 full access, 4 deny SCPs (5 directly attached, 6 inherited)
 |
Account <--- 1 full access, 4 deny SCPs (5 directly attached, 11 inherited)
 |
Bob

在组织层次结构的每个节点上,由 SCP 筛选出的权限是直接附加 SCP 和继承 SCP 的交集。在此示例中,成员账户中的 IAM 用户 Bob 拥有完全访问权限,但无法访问被 12 个基于拒绝的 SCP 拒绝访问的服务。这种方法是可扩展的,因为在组织层次结构中,嵌套 OU 的最大数量为 5 个。

有关详细信息,请参阅 SCP 评估

相关信息

在多账户环境中充分利用服务控制策略

AWS 官方
AWS 官方已更新 1 个月前