使用角色管理用户的 AWS 账户

Using roles to manage user's AWS account

我想设置一个 Web 服务,它将代表用户(在他自己的 AWS 账户上)管理少量资源。

所以基本上,用户登录后,他会为我的服务提供适当的权限来访问他的帐户。我注意到类似的服务 (https://www.dashbird.io/),它指导您如何创建适当的角色,但我不确定如何实际使用该角色。如何代表他登录(没有令牌和密码)。

我正在使用 node.js,但其他示例也会有所帮助。

谢谢。

您的应用程序需要有效凭证才能访问客户 AWS 账户中的资源。这些凭据可以通过多种方式提供,但最有可能是:

  • 您客户帐户中 IAM 用户 的凭据,或
  • 您客户帐户中的一个 IAM 角色,他们已将其配置为允许您承担

IAM 用户

这是最简单的方法。您的客户将创建一个 IAM 用户 并为其提供适当的权限。然后他们会为您的应用程序提供与用户关联的访问密钥和秘密密钥。

您的应用程序将在与 AWS 服务建立会话时使用这些凭证。

IAM 角色

您的客户将创建一个 IAM 角色 并为其提供适当的权限。与 IAM 用户不同,IAM 角色没有凭证。相反,AWS 用户承担角色。然后,他们会获得临时凭证,可用于在该账户中使用 AWS 服务。

可以把它想象成消防员——如果办公楼发生火灾,有人会暂时承担消防员的角色,告诉人们该怎么做。发生火灾时,他们拥有权威,因为他们承担了这个角色。但是当没有火的时候,他们没有权力告诉你该怎么做。

客户需要将角色配置为信任您的帐户或您帐户中的用户。然后他们会给你角色的 ARN(亚马逊资源名称)。然后,您的应用程序使用您自己帐户中的 IAM 用户来调用 AssumeRole()。如果该 IAM 用户(或您的整个帐户)是可信的,那么您将收到用于访问您客户帐户的凭据。

参见: