设计一种 AWS 服务,用于监控和控制多个不同 AWS 账户中的资源

Design of one AWS service that monitors & controls resources in several different AWS accounts

假设我在账户 A 中设置了此服务,我希望它监视和控制账户 B 和 C 中的资源。我计划在 B 和 C 中创建 IAM 角色,然后在 A 中使用 STS 来获得对资源的访问权限,例如 https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html。我假设允许该服务一次访问多个不同的帐户。如果我需要监控帐户 E、F、G 中的资源,此解决方案更容易扩展...

另一种方法是在账户 B 和 C 中部署服务,这样就不需要跨账户访问,但更难扩展。

我不确定哪种方法更好,我是 AWS 的初学者。感谢任何帮助,谢谢。

在每个帐户中创建相同的 IAM 角色的方法很好。

这经常通过 3rd 方服务完成,例如病毒扫描服务,因为它允许他们访问可能属于其他公司的帐户,但权限仅限于通过 IAM 角色授予的权限。

与将您的服务放在每个帐户中相比,该方法 更易于管理,因为它需要额外的权限来部署、监控和维护这些服务。通过您自己的 AWS 账户完成这一切,您可以访问维护和操作您的服务所需的一切。

请注意,您的服务将调用 AssumeRole(),提供您希望承担的 IAM 角色的 ARN(Amazon 资源名称)。 ARN 包括帐号。然后,AWS STS 会返回一些临时凭证,您的服务可以使用这些凭证来使用该 IAM 角色的权限访问资源。

因此,说 “我假设允许该服务一次访问多个不同的帐户”并不十分准确。相反,需要为每个账户 'assumed' 分别调用 AssumeRole,并且每个 AWS 账户返回的凭证都不同。因此,它们不是“一次全部”访问,而是“每组凭据访问一个”。