使用来自Azure AD或GCP的OIDC令牌访问AWS资源(工作负载身份联合)

0

【以下的问题经过翻译处理】 你好,

我想使用Workload Identity联合身份验证来让Azure Ad或GCP中的应用程序访问AWS资源。在Azure和GCP之间,我们可以基于JWT令牌的声明(发布者和受众)配置信任关系。我看到可以在AWS IAM部分中添加身份提供者,这样可以输入发布者并定义受众,然后分配一个授予访问该资源的角色。但是,[exchange](https://www.rfc-editor.org/rfc/rfc8693)如何操作?对于其他IdPs,我们可以向特定端点(例如google sts)发送一个简单的http请求,其中包含令牌作为参数,并在响应中接收交换的令牌。

有人知道是否可以使用AWS实现“Workload Identity Federation”吗?如果是,如何进行令牌交换?

非常感谢,

1 Antwort
0

【以下的回答经过翻译处理】 你好,

我们在IAM中已经有一个可用的解决方案:https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html

请注意:如果你在使用Google作为你的IdP,你就不需要在AWS中创建一个单独的IAM IdP,因为它已经内置在AWS中。

在上述链接页面中指出,你将创建你的IAM策略,并作为其中的信任策略。

然后,如果从Google登录,下面的示例信任策略将适用。在这个例子中,666777888999000代表谷歌分配的应用程序ID。

{ 
      "Version": "2012-10-17",
      "Statement": [{ 
          "Sid": "RoleForGoogle",
          "Effect": "Allow",
          "Principal": {"Federated": "accounts.google.com"},
          "Action": "sts:AssumeRoleWithWebIdentity",
          "Condition": {"StringEquals": {"accounts.google.com:aud": "666777888999000"}}
      }]
  }

流程可能会是这样的:

客户端-认证到-> Google IdP - 返回已认证的ID令牌至 - 客户端

客户端-使用ID令牌调用'sts AssumeRoleWithWebIdentity' - > AWS STS

AWS STS <--- 验证ID令牌与 ---> Google IdP

AWS STS --- 检查信任策略 ---> IAM角色

AWS STS --- 返回临时凭证至 - 客户端

客户端--访问服务--> AWS

最后,你必须在调用'AssumeRoleWithWebIdentity'时使用ID令牌-这不适用于Google访问令牌。

希望这有所帮助?

祝好,

Alex.

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen