AWS 中是否有办法限制其他角色可以创建什么样的角色和策略?
在我的设置中,我有两种管理员角色:AccountAdmin
和InfraAdmin
。AccountAdmin
一个拥有更多权限,而一个InfraAdmin
仅拥有运行日常操作所需的权限集。
现在我遇到一种情况,InfraAdmin
角色需要权限来创建捆绑包,其中我有 EC2 实例、RDS 数据库和 S3 存储桶(描述略有简化,以便我们可以专注于主要点)。这些一起形成一个逻辑上的单一服务,我有多个这样的捆绑包,它们不应该能够访问其他的 RDS 数据库或 S3 存储桶。为了允许 EC2 实例访问其 RDS 数据库和 S3 存储桶,我正在创建实例配置文件、角色和策略。目前,这要求我授予InfraAdmin
创建角色和策略的权限,这有点破坏了最小特权原则,并且之间的分裂AccountAdmin
变得InfraAdmin
毫无意义。
有没有办法限制角色InfraAdmin
可以创建什么样的策略和角色,以便它不能被用来授予自身额外的权利或创建新的更强大的角色?
答案1
是的,您可以使用 AWS Organizations 设置基于策略的治理框架,该框架允许您设置适用于组织中所有 AWS 账户的规则和策略。这样您就可以控制您的 InfraAdmin 角色可以使用哪些服务和操作,以及限制它可以创建的策略和角色。
为此,您首先需要为 InfraAdmin 角色创建一个组织单位 (OU),然后将服务控制策略 (SCP) 附加到该 OU,该策略指定允许 InfraAdmin 角色使用的服务和操作。然后,您可以使用 AWS Identity and Access Management (IAM) 定义允许 InfraAdmin 角色创建的策略和角色,并将这些策略附加到 InfraAdmin 角色。
例如,您可以创建一个 SCP,允许 InfraAdmin 角色仅使用 EC2、RDS 和 S3 服务,并将其对这些服务可执行的操作限制为创建和管理您描述的捆绑包所需的操作。然后,您可以使用 IAM 创建策略,允许 InfraAdmin 角色创建和管理这些服务的实例配置文件、角色和策略,并将这些策略附加到 InfraAdmin 角色。这将允许 InfraAdmin 角色为捆绑包创建必要的资源,而无需赋予其向自身授予额外权限或创建新的更强大的角色的能力。
总体而言,以这种方式使用 AWS Organizations 和 IAM 允许您为您的 AWS 账户和资源设置更细粒度、更安全的访问控制系统。