【AWS】什么是Service Control Policies (SCPs)
Service Control Policies (SCPs) 在中文里通常翻译为:
服务控制策略 (SCPs)
什么是服务控制策略 (SCPs)?
服务控制策略 (SCPs) 是 AWS Organizations 的一项功能,它允许您集中管理组织中所有 AWS 账户的最大可用权限。SCPs 是一种组织策略,您可以将其附加到组织根、组织单元 (OU) 或单个 AWS 账户。
您可以将 SCPs 想象成一个**“权限防护栏”或“安全边界”。它定义了组织内所有 IAM 用户和 IAM 角色(包括根用户)在特定账户中可以执行的 AWS 服务操作的上限**。SCPs 从不授予权限;它们只限制或过滤 IAM 身份(用户和角色)可以获得的权限。最终的有效权限是 SCPs 和附加到 IAM 身份的权限策略(如 IAM 策略、资源策略)的交集。
SCPs 的核心特点和优势
SCPs 旨在帮助企业强制执行组织范围内的安全和合规性准则,即使在多个账户和团队之间也能保持一致性。
集中控制权限:
SCPs 允许您从组织管理账户集中控制所有成员账户的最大可用权限。
这有助于确保所有账户都遵守组织的访问控制准则,即使账户管理员试图授予超出组织策略范围的权限,也会被 SCPs 阻止。
设置权限防护栏:
SCPs 的核心作用是设置权限边界。如果 SCP 拒绝了某个账户执行某项操作,则该账户中的任何实体(包括根用户、IAM 用户和角色)都无法执行该操作,即使其 IAM 权限策略允许他们执行该操作。
这对于防止意外或恶意的权限提升非常有用。
继承性:
SCPs 具有继承性。它们会从组织根向下继承到所有组织单元 (OU) 和账户。
附加到组织根的 SCPs 会影响组织中的所有账户。附加到 OU 的 SCPs 会影响该 OU 内的所有账户。
最终应用于账户的权限是所有父级 SCPs(从根到该账户路径上的所有 SCPs)的交集。
“显式拒绝”优先:
SCPs 遵循 IAM 策略评估逻辑中的“显式拒绝”原则。如果任何一个适用的 SCP 包含一个 Deny 语句,明确拒绝了某个操作,那么无论其他任何策略(包括 IAM 身份策略或资源策略)如何允许该操作,该操作都将被拒绝。
默认情况下,所有新创建的组织都会附加一个 FullAWSAccess 的 SCP,允许所有服务和操作。您可以修改此默认 SCP 或创建新的 SCP 来限制权限。
不授予权限:
SCPs 仅定义最大可用权限,它们本身不授予任何权限。要授予权限,您仍然需要使用 IAM 身份策略、资源策略等。
与 IAM 策略类似但不同:
SCPs 使用与 IAM 权限策略几乎相同的 JSON 语法。
但 SCPs 仅限制组织中的 IAM 用户和角色的权限,不直接影响基于资源的策略(如 S3 存储桶策略)或组织外部账户的用户或角色。
简化合规性:
通过强制执行组织范围内的安全策略,SCPs 可以帮助企业更好地满足合规性要求,例如,限制对特定区域的访问、禁止删除关键资源等。
SCPs 的工作原理
启用所有功能: SCPs 仅在启用了所有功能的 AWS Organizations 中可用(如果您的组织只启用了整合账单功能,则无法使用 SCPs)。
创建策略: 您在 AWS Organizations 控制台中创建 SCPs。SCPs 是 JSON 格式的文档,与 IAM 策略类似,但它们只有 Allow 或 Deny 语句,并且 Effect 字段是必需的。
附加策略: 您可以将 SCPs 附加到:
组织根: 影响组织中的所有账户。
组织单元 (OU): 影响该 OU 中的所有账户及其子 OU。
单个 AWS 账户: 只影响该特定账户。
策略评估: 当组织中的 IAM 用户或角色尝试执行某个 AWS 操作时,AWS 会评估所有适用的策略,包括:
所有父级 SCPs: 从组织根到该账户路径上的所有 SCPs。
附加到 IAM 身份的策略: IAM 用户策略、IAM 组策略、IAM 角色策略。
基于资源的策略: 如果适用(例如 S3 存储桶策略)。
会话策略: 如果通过 AssumeRole 或联合身份创建了临时会话。
最终权限: 最终允许的操作是所有这些策略的交集。如果任何一个 Deny 语句(无论是来自 SCP 还是 IAM 策略)拒绝了某个操作,该操作就会被拒绝。
SCPs 的典型用例
限制对特定 AWS 区域的访问: 例如,禁止所有成员账户在未经授权的区域创建资源,以满足数据驻留要求。
禁止删除关键资源: 例如,防止组织中的任何用户删除 CloudTrail 日志记录或安全审计相关的 S3 存储桶。
强制执行安全最佳实践: 例如,要求所有账户启用多因素身份验证 (MFA),或禁止创建具有广泛权限的 IAM 用户。
限制对特定服务的访问: 例如,禁止开发账户访问生产数据库服务,或禁止非安全团队成员访问安全服务(如 GuardDuty)。
白名单/黑名单控制: 定义允许或禁止在组织中使用的 AWS 服务列表。
防止成本失控: 限制某些高成本服务的创建或使用。
总结来说,服务控制策略 (SCPs) 是 AWS Organizations 中的一项强大功能,它允许您在组织级别设置权限防护栏,集中控制所有成员账户的最大可用权限。通过使用 SCPs,您可以强制执行组织范围内的安全、合规性和治理策略,即使在复杂的、多账户的 AWS 环境中也能保持一致性。
过去考试题
あなたは複数のAWSアカウントを利用する組織で、セキュリティガードレールとして全アカウント共通のアクセス制御を強制したいと考えています。たとえば、開発環境アカウントで特定リージョンのリソース作成を禁止するなど、組織全体のポリシーを一元管理するには、AWS Organizations のどの機能を使うのが最適ですか?
正解は D です。Service Control Policies(SCP)を使用すると、AWS OrganizationsのルートやOU単位で許可?拒否するサービスやリージョンを定義し、組織内の全アカウントに強制的に適用できます。
選択肢 A : 請求統合を行う機能であり、アクセス制御とは無関係です。
選択肢 B : Configはリソース設定の監視?評価ツールであり、ポリシー強制はできません。
選択肢 C : SSOは認証?シングルサインオン管理用で、リソース制限機能は提供しません。