0

我希望使用 AWS STS 从另一个团队拥有的另一个 AWS 账户访问资源。

例如,AWS 账户 A 试图访问 AWS 账户 B。

basically the steps I am following:
1. Create a user in Account A
2. Create Role in Account B with the necesaary permissions
3. Add assume role permissions for user in Account A
4. Use User credentials to get temporary credentials for Account B.
5. Use temp credentials on Account B.

但是,在阅读了大量 AWS 文档后,我无法确定哪个账户会为跨账户 API 调用计费?

4

2 回答 2

3

当您使用 AssumeRole 授予对另一个 Amazon 账户(账户 B)的访问权限时,您的身份将切换到另一个账户,用户名是您代入的角色名称。

唯一被调用的跨账户 API 是 AssumeRole。成功后,您将使用从 AssumeRole 返回的帐户 B 的临时凭证来使用 API。

除用户名外,所有所有权、计费等都与您最初以普通 IAM 用户身份登录账户 B 相同。

CloudTrail 记录 STS 类型的调用,例如 AssumeRole,并记录所有经过身份验证的 API 请求。一旦 AssumeRole 成功,CloudTrail 将在账户 B 中记录您的活动(使用临时凭证)。这当然假设 CloudTrail 已启用。

此链接将为您提供有关 AWS 在使用 AssumeRole 时使用的用户身份的更多详细信息。

CloudTrail userIdentity 元素

于 2017-11-27T21:09:43.047 回答
1

当您为跨账户访问创建角色时,您会建立从拥有角色和资源的账户(信任账户)到包含用户的账户(信任账户)的信任。为此,您在角色的信任策略中将受信任的帐号指定为委托人。这可能允许受信任帐户中的任何用户担任该角色。要完成配置,受信任帐户的管理员必须授予该帐户中的特定组或用户切换角色的权限。 关联

正如大家所提到的,账户 A 中的用户只是在账户 B 中担任角色以临时访问账户 B 中的资源,所有权保持不变,所有者为他拥有的资源付费。在这种情况下,支付的是账户 B。STS 是用于承担角色的服务,是 IAM 的一部分。

以下内容摘自IAM FAQ。

问:如何担任 IAM 角色?您通过调用 AWS Security Token Service (STS) AssumeRole API(即 AssumeRole、AssumeRoleWithWebIdentity 和 AssumeRoleWithSAML)来代入 IAM 角色。这些 API 返回一组临时安全凭证,然后应用程序可以使用这些凭证签署对 AWS 服务 API 的请求。

问:我可以担任多少个 IAM 角色?您可以担任的 IAM 角色的数量没有限制,但在向 AWS 服务发出请求时,您只能充当一个 IAM 角色。

问:谁可以使用 IAM 角色?任何 AWS 客户都可以使用 IAM 角色。

问:IAM 角色的费用是多少?IAM 角色是免费的。您将继续为您的 AWS 账户中的角色使用的任何资源付费。

于 2017-11-28T02:15:01.073 回答