【AWS】什么是AWS SCP (Service Control Policies) 服务控制策略
【AWS】什么是AWS SCP (Service Control Policies) 服务控制策略
AWS SCP (Service Control Policies),即服务控制策略,是 AWS Organizations 中的一种组织策略,用于集中管理组织中所有 AWS 账户的最大可用权限。SCPs 允许您为组织中的 IAM 用户和 IAM 角色设置权限的“护栏”或“上限”,确保所有账户都符合组织的访问控制准则。
您可以将 AWS SCP 想象成一个**“组织级别的权限防火墙”。它不授予权限,而是定义了组织中所有账户(包括根账户和所有成员账户)可以执行的 AWS 服务操作的最大范围**。即使账户管理员在某个成员账户中授予了更宽泛的 IAM 权限,SCP 也会限制这些权限,使其不能超出 SCP 定义的范围。

AWS SCP 的核心功能和优势
SCP 旨在帮助大型企业和组织实现跨账户的集中式治理、安全性和合规性。
- 集中式权限控制:组织级别管理: 您可以在 AWS Organizations 的根、组织单元 (OU) 或单个成员账户级别附加 SCP。权限“护栏”: SCP 为组织中的所有 IAM 用户和角色(包括成员账户的根用户)设置了最大可用权限。这意味着任何账户都只能拥有其所有父级(包括根和所有上级 OU)允许的那些权限。强制执行合规性: 帮助您确保所有账户都符合组织的访问控制指导方针,例如,可以阻止所有账户使用特定的高风险服务或操作。
- 安全性增强:降低风险: 即使某个成员账户的管理员意外或恶意地授予了过于宽泛的 IAM 权限,SCP 也能限制这些权限,从而降低潜在的安全风险。防止未经授权的操作: 可以明确拒绝(Deny)某些服务或操作,即使 IAM 策略允许,SCP 也会阻止这些操作。Deny 语句在 SCP 中具有最高的优先级,会覆盖任何 Allow 语句。
- 简化治理和审计:统一策略: 在组织级别定义策略,并自动应用于其下的所有账户,减少了在每个账户中单独配置权限的复杂性。审计跟踪: SCP 的应用和变更都会记录在 AWS CloudTrail 中,提供详细的审计跟踪。
- 支持“默认拒绝”模型:SCP 评估遵循“默认拒绝”模型。这意味着 SCP 中未明确允许的任何权限都将被拒绝。如果 SCP 在任何级别(例如根、OU 或账户)中都没有允许声明,则访问将被拒绝。
AWS SCP 的工作原理
SCP 类似于 IAM 权限策略,使用几乎相同的语法(基于 JSON),但它们的作用不同:
- 启用所有功能: SCP 仅在启用了所有功能的 AWS Organizations 组织中可用。如果您的组织只启用了整合账单功能,则无法使用 SCP。
- 策略评估逻辑:当一个 IAM 用户或角色尝试执行一个 AWS 操作时,AWS 会评估所有相关的策略,包括 IAM 身份策略、IAM 资源策略、权限边界,以及最重要的,所有适用的 SCP。SCP 的评估从组织根开始,然后向下到 OU,再到目标账户。显式拒绝 (Explicit Deny) 优先级最高: 如果在任何级别的 SCP 中存在一个明确拒绝某项操作的语句,那么该操作将立即被阻止,无论其他任何策略(包括 IAM 策略)是否允许该操作。隐式拒绝 (Implicit Deny): 如果某项操作在任何级别的 SCP 中没有被明确允许,那么它也将被隐式拒绝。SCPs 不授予权限: SCP 永远不会授予权限。它们只是定义了 IAM 身份可以获得的最大权限集。实际的权限仍需要通过 IAM 策略来授予。
- 作用范围:SCP 仅影响由属于组织的账户管理的 IAM 用户和角色。SCP 不直接影响基于资源的策略(例如 S3 存储桶策略、SQS 队列策略),也不影响组织外账户的用户或角色。
AWS SCP 的典型用例
- 强制执行合规性:禁用特定区域: 阻止所有成员账户在未经授权的 AWS 区域中启动资源,以满足数据驻留或合规性要求。禁用高风险服务: 阻止所有账户使用某些可能带来高风险的服务(例如,某些机器学习服务或不符合安全标准的服务)。强制加密: 确保所有 S3 存储桶都必须启用服务器端加密。
- 安全治理:限制根用户操作: 限制成员账户的根用户可以执行的操作,因为根用户拥有最高权限。防止账户离开组织: 阻止任何成员账户退出 AWS Organizations,以保持集中管理。限制网络访问: 强制所有网络流量必须经过特定的网络设备或服务。
- 成本控制:限制高成本服务: 阻止未经授权的账户使用某些非常昂贵的服务或实例类型。
- 沙盒环境管理:在沙盒(开发/测试)OU 中,可以设置 SCP 来限制开发人员可以使用的服务范围,防止他们意外地创建昂贵或不安全的资源。
总结来说,AWS SCP 是一项强大的治理工具,它通过在 AWS Organizations 中集中设置权限护栏,帮助企业在大规模多账户环境中强制执行安全、合规和成本控制策略,从而提高整体的云治理水平。
过去考试题
ある多国籍企業は、複数のAWSリージョンにまたがるマイクロサービスアーキテクチャを採用しています。各マイクロサービスは異なるAWSサービスを使用し、それぞれに適切な認証情報と権限が必要です。また、会社はセキュリティを強化し、認証情報の管理を簡素化したいと考えています。この状況下で、最もセキュアで管理しやすいIAMエンティティの組み合わせはどれですか?
- IAMユーザーとIAMグループの組み合わせ
- IAMロールとサービスコントロールポリシー(SCP)の組み合わせ
- IAMインスタンスプロファイルとリソースベースのポリシーの組み合わせ
- フェデレーテッドユーザーとIAMポリシーの組み合わせ
正解はBです。IAMロールとサービスコントロールポリシー(SCP)の組み合わせが、この複雑な環境で最もセキュアで管理しやすい選択肢となります。
IAMロールは一時的な認証情報を提供し、各マイクロサービスに必要最小限の権限を付与できます。
SCPは組織レベルでの権限の境界を設定し、各リージョンやアカウントでの権限を制限できます。
この組み合わせにより、細かい制御と全体的なガバナンスを両立できます。
選択肢 A:IAMユーザーとIAMグループは主に人間のユーザー管理に適しており、マイクロサービスのような動的な環境には適していません。また、長期的な認証情報を使用するため、セキュリティリスクが高くなります。
選択肢 C:IAMインスタンスプロファイルはEC2インスタンス特有のものであり、多様なAWSサービスを使用するマイクロサービス環境全体をカバーするには限界があります。リソースベースのポリシーも全てのサービスでサポートされているわけではありません。
選択肢 D:フェデレーテッドユーザーは主に外部IDプロバイダーとの統合に使用され、マイクロサービス間の認証には適していません。IAMポリシーだけでは、複数リージョンにまたがる環境での一貫した制御が難しくなります。
关注
收藏
赞
踩