使用来自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 回答
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
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则