AWS:使用 Web 身份令牌承担 IAM 角色

问题描述 投票:0回答:1

我有一个带有 OpenID Connect 提供商的 EKS 集群。我的目标是配置跨账户权限,以允许账户 A 中的集群上运行的 Pod 访问账户 B 中的 AWS 资源。为此,我创建了一个服务账户并将其附加到账户 A 中的相关 Pod。

我的问题是,在更改获得批准之前,我需要证明它有效。

AWS文档似乎建议我可以通过CLI测试

STS:AssumeRoleWithWebIdentity
的使用。然而,当它指定
web_identity_token_file
时,它实际上并没有告诉您如何生成该令牌。

Magic Google 让我想到了另一个 SO 问题,现在我已经为相关服务帐户创建了一个秘密,并且可以获得 JWT 令牌。但是,当我使用该令牌时,我看到一个错误 -

操作错误STS:AssumeRoleWithWebIdentity,https响应错误StatusCode:400,RequestID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,InvalidIdentityToken:Issuer必须是有效的URL

上面的问题然后让我在另一个问题中找到这个答案,但是以这种方式生成令牌会导致另一个错误。

操作错误STS:AssumeRoleWithWebIdentity,https响应错误StatusCode:400,RequestID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,InvalidIdentityToken:令牌受众不正确

所以我的问题是,如何通过 CLI 测试具有 Web 身份的角色承担?有没有办法为我的 EKS 集群的 OIDC 提供商生成通用 JWT 令牌?

amazon-web-services openid-connect amazon-eks
1个回答
0
投票

这里的答案是按照

这个答案
中的建议使用kubectl create token,但除此之外还需要更改受众,因为默认受众无效。

kubectl create token <sa> -n <namespace> --audience sts.amazonaws.com

请注意,不需要服务帐户链接的 Secret。

© www.soinside.com 2019 - 2024. All rights reserved.