EKS 和 IRSA 临时凭证有效期

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

我的 EKS 集群和 IRSA 面临挑战。

我已通过

eksctl create iamserviceaccount..
命令在 K8 中创建了一个与 AWS 角色关联的服务账户。之后,我在 AWS 控制台中修改了角色的最大会话持续时间,将其设置为 12 小时。

然后我在部署中使用了所述服务帐户。一旦工作负载在集群中运行并且我的 Pod 能够承担关联的 AWS 角色,一切看起来都很好。

每当 Pod 执行需要 IAM 身份验证的操作时,boto3 都会发出

AssumeRoleWithWebIdentity
调用,并且 AWS IAM 返回一组临时凭证(下图中的第 4 点和第 5 点,来源 https://aws.amazon.cn)。 com/blogs/containers/diving-into-iam-roles-for-service-accounts/)。这些凭证(通过在 CloudTrail 中查看)持续了 1 小时,这与此类调用的默认持续时间_秒一致(请参阅此处 https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html ).

我希望这些凭证能够持续 1 小时以上,我希望这些凭证能够持续 12 小时。据我了解,实现这一目标的唯一方法是在 pod 内的 $HOME/.aws/config 文件中指定

durations_seconds
。实施并再次测试后,我发现临时凭证仍然可以持续 1 小时。此时,我不知道如何更改持续时间行为。有人遇到过这种情况吗?如果是的话,这个问题是怎么解决的?

注意:OIDC JWT 令牌持续 24 小时,正如我在注释中指定的那样

eks.amazonaws.com/token-expiration: 86400

谢谢! 阿莱西奥

amazon-web-services kubernetes boto3 amazon-eks
1个回答
0
投票

除了更新客户端的持续时间级别之外,您还需要在 AWS 控制台中检查角色的会话持续时间设置。默认情况下,角色持续时间为 1 小时,因此您的凭据将在 1 小时后过期。

AWS IAM 的默认会话持续时间

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