有多少个 Pod 可以使用相同的联合凭据来访问托管身份?

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

使用相同联合凭证的 Pod 数量是否有限制?

假设我有 5 个 pod,它们都使用相同的服务帐户。该服务帐户用

azure.workload.identity/client-id
进行注释,在 Azure 端,我拥有该服务帐户到托管身份的联合凭据。

这应该有效吗?

我问是因为我收到很多错误,例如:

Azure Identity => ERROR in getToken() call

...

Attempted credential WorkloadIdentityCredential is unavailable.

这不是发行者、受众或主体的问题。

安装到

/var/run/secrets/azure/tokens/azure-identity-token
的JWT在我解码时有效。

我只是想知道这里的多对一关系是否应该起作用。

还有。还有另一组 5 个 Pod,它们具有不同的服务帐户和相同 UMI 的联合凭证。

总而言之,

  • 10 颗豆荚
  • 2 个服务帐户
  • 2 个联合凭证
  • 1 乌米

每个 svc_acct/fed_cred 组合有 5 个 pod。 svc_acct/fed_cred 组合都访问相同的 UMI。所有 10 个 pod 都访问相同的 UMI。


注意:AWS EKS 不存在此问题,因为与 Azure 不同,令牌主题不必完全匹配。类似以下内容适用于 AWS:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:default:*",
                    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"
                }
            }
        }
    ]
}

https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html

kubernetes azure-identity
1个回答
0
投票

是的,多个 Pod 可以使用相同的联合凭据来访问 Azure 中的 托管身份。 可以共享相同联合凭据的 Pod 数量没有固有限制。

联合凭证具有访问所需资源的必要权限。

您的服务帐户上的工作负载身份配置和注释正确并且与联合凭据设置匹配。

您遇到的错误Azure Identity => getToken() 调用中的错误...尝试的凭据 WorkloadIdentityCredential 不可用。建议您的设置中存在潜在问题。

尝试以下故障排除步骤来解决该错误:

仔细检查服务帐户上的 azure.workload.identity/client-id 注释。确保它与 Azure 端的联合凭据中相应的客户端 ID 匹配。

如果您的 Pod 具有限制对 Azure 身份令牌或机密的访问的安全上下文约束或 Pod 安全策略,请相应地调整这些策略。

验证与联合凭据关联的托管标识是否具有访问所需资源所需的 Azure AD 角色。

如果上述步骤无法解决问题,请启用 Azure 身份日志到您的 k8s 集群并查看指标以识别错误。

通过执行这些故障排除步骤,您应该能够解决错误并在 Azure 中使用工作负载标识成功运行 Pod。

正如您正确指出的那样,AWS EKS 在令牌主题匹配方面提供了更大的灵活性,使其更能容忍较小的服务帐户名称变化。 Azure 强制执行更严格的匹配。

关于 AWSEKS 和 Azure AD 之间主题匹配的差异,您是正确的。虽然 Azure AD 要求令牌主题和服务帐户名称之间完全匹配,但 AWS EKS 允许在主题声明中使用通配符。这在某些情况下可以更加灵活。

虽然 AWS EKS 在令牌主题匹配方面提供了更大的灵活性,但请谨慎使用此功能并确保足够的 IAM 权限。

请参阅此官方文档,了解有关使用 AWS 或 Azure 配置工作负载身份联合的更多信息。

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