如何在 AWS 中保护各组彼此之间不受干扰?

如何在 AWS 中保护各组彼此之间不受干扰?

在单个 AWS 帐户中,我希望能够向将设置不同应用程序的两组用户授予访问权限。每组都应该能够创建新的 EC2 机器、S3 存储桶、RDS 数据库等以及删除它们,但他们不应该能够删除彼此的或以任何其他方式影响它们。

这可能吗?如何最好地实现这一点?

答案1

方法有很多。

帐户

最高级别的隔离是为它们提供单独的账户。这使它们完全分开,完全没有重叠。这是企业通常的做法——数十个甚至数百个账户并不罕见。

您可以创建一个 AWS 组织,这样您就可以获得一张账单。这还允许您使用服务控制策略,该策略允许您控制可以使用哪些服务、允许和不允许哪些 API 调用,并且您可以根据需要执行基于角色的权限。我建议不要在 SCP 中使用基于角色的权限,因为它很复杂。

您必须拥有高度自动化才能在大量账户中实现这一目标,而且架构师和 devops 工程师的成本很高,但对于少数账户来说,手动完成就很容易了。

AWS 着陆区/控制塔可帮助完成这一设置。它也很复杂。

VPC

下一个隔离级别是为每个应用程序分配一个 VPC。将您的 IAM 用户设置到地面,并确保您的 IAM 策略仅允许用户在自己的 VPC 上操作。这是很好的隔离,但 AWS 速率/资源限制是基于帐户的,因此一个非常繁忙或 DDOS 的应用程序可能会影响另一个。您必须小心您的 IAM 策略。

子网

隔离的下一级是子网。隔离程度较低,管理起来略有困难。

等等

下一个级别可能是资源级别的权限,但这并不实际。

用户管理

如果有的话,您可以从现有的 Active Directory 服务器设置身份联合。这样,您可以让用户根据他们的 AD 组承担 IAM 角色,这确实很有帮助。然后,您可以使用基于角色的权限,这样您就可以定义用户、管理员、安全操作或您真正喜欢的任何组。如果您不使用这样的角色,组可能会类似。

您可以拥有一个中央“用户”帐户,让用户在工作量帐户中承担角色。这很好,但是当您拥有十几个帐户时就会变得混乱。

我发现使用 CloudFormation 创建和发布 IAM 策略是最好的方式,因为这样可以轻松更新策略。SCP 尚不支持 CF,但您可以编写策略,然后使用 API 上传,从而自动分发策略。

选择哪一个

鉴于你的问题,我猜你对 AWS 还不熟悉。为每个应用程序或团队设置单独的帐户更容易实现。我建议你认真考虑这个选项。

答案2

您还可以使用基于属性的访问控制(ABAC)。您只需通过附加标签来分组您的 IAM 主体,并根据您的需要创建基于标签的访问控制策略。

文章演示基于标签的授权的示例用例。

答案3

是的,可以使用 AWS 身份和访问管理 (IAM) 和资源级权限在 AWS 中保护各组免受彼此影响。

您可以采取以下方法:

  1. 创建两个 IAM 组,每个团队一个。
  2. 为每个组定义策略,授予其所需 AWS 服务的权限,例如 EC2、S3 和 RDS。
  3. 使用资源级权限将每个组的访问权限限制为他们创建的资源。例如,您可以使用 IAM 策略指定每个组只能启动带有特定标签的 EC2 实例,该标签将其标识为所有者。
  4. 设置 AWS CloudTrail 来监控和记录对 AWS 服务的所有 API 调用,并设置 CloudWatch 警报以在检测到任何异常活动时提醒您。

通过这些步骤,您可以确保每个组只能访问和修改他们创建的资源,并且不会影响彼此的资源。此外,通过使用 CloudTrail 和 CloudWatch,您可以监控 AWS 账户中的所有活动并检测任何未经授权的操作。

相关内容