AWS Confused Deputy - "external id" 真的只是一个 "password" 吗?

AWS Confused Deputy - is "external id" really just a "password"?

Amazon Web Services 描述了 Confused Deputy Problem 并规定使用 "external ID" 作为解决方案。

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html http://blogs.aws.amazon.com/security/blog/tag/Confused+Deputy

困惑的副手问题也在这里描述: http://www.cis.upenn.edu/~KeyKOS/ConfusedDeputy.html https://en.wikipedia.org/wiki/Confused_deputy_problem

然而,在所有花言巧语中,最终 "external ID" 似乎只是一个密码。我的理解对还是错?

是的,与 IAM 第三方角色一起使用的外部 ID 是一个美化的密码。

我将在此处使用以下术语:

  • ServiceA - AWS 账户的第三方服务
  • User1 - ServiceA 的原始善意用户
  • User2 - ServiceA 的不正当用户试图访问 User1 的 AWS 账户

IAM 角色是一种确保只有 ServiceA 可以使用 User1 的 IAM 角色的方法。 User1 的 IAM 角色与 ServiceA 的 AWS 账户相关联。但是需要额外的External ID来确保ServiceA只为User1服务。如果没有外部 ID,User2 可能会欺骗 ServiceA 为 User2 提供服务。

如果用户 2 猜到了用户 1 的 IAM 角色 ARN 并且可以告诉服务 A 使用哪个外部 ID,则用户 2 可以诱使服务 A 在用户 1 的 AWS 账户中代表它执行操作。

因此,ServiceA 应该始终指定外部 ID 的值。这限制了 User2 在 ServiceA 的眼中将自己欺骗为 User1 的能力。