You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EKS Secrets Store CSI Provider无法拉取Secret求助

问题排查:AWS Secrets Store CSI Provider 挂载失败

问题背景

使用AWS Secrets Store CSI Provider将AWS Secrets Manager中的密钥同步至EKS集群,已配置SecretProviderClass和Pod,但Pod启动失败,报错:

Warning
FailedMount
96s (x10 over 5m47s)
kubelet
MountVolume.SetUp failed for volume "secret-volume" : rpc error: code = Unknown desc = failed to mount secrets store objects for pod pace/secret-dotfiles-pod,
err: rpc error: code = Unknown desc = Failed to fetch secret from all regions: mysecret

已确认Secrets Manager中存在密钥mysecret,内容为:

{
  "APP_ENV": "staging",
  "APP_DEBUG": false
}

SecretProviderClass配置:

apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: test-provider
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: mysecret
        objectType: secretsmanager
        jmesPath:
          - path: APP_ENV
            objectAlias: APP_ENV
          - path: APP_DEBUG
            objectAlias: APP_DEBUG

Pod配置:

apiVersion: v1
kind: Pod
metadata:
  name: secret-pod
spec:
  restartPolicy: Never
  serviceAccountName: my-account
  terminationGracePeriodSeconds: 2
  containers:
    - name: dotfile-test-container
      image: registry.k8s.io/busybox
      volumeMounts:
        - name: secret-volume
          readOnly: true
          mountPath: "/mnt/secret-volume"
  volumes:
    - name: secret-volume
      csi:
        driver: secrets-store.csi.k8s.io
        readOnly: true
        volumeAttributes:
          secretProviderClass: test-provider

排查步骤

1. 检查ServiceAccount权限

Pod使用的my-account ServiceAccount必须具备访问Secrets Manager中mysecret的权限:

  • 确认ServiceAccount关联的IAM角色(IRSA)存在,且已绑定包含以下权限的IAM策略:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "secretsmanager:GetSecretValue",
            "secretsmanager:DescribeSecret"
          ],
          "Resource": "arn:aws:secretsmanager:<region>:<account-id>:secret:mysecret-*"
        }
      ]
    }
    
    注意:Secrets Manager的ARN后缀可能包含随机字符,使用通配符mysecret-*避免匹配错误。
  • 验证IRSA的信任策略是否允许EKS OIDC提供商扮演该角色,信任策略需包含类似内容:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Federated": "arn:aws:iam::<account-id>:oidc-provider/oidc.eks.<region>.amazonaws.com/id/<OIDC-ID>"
          },
          "Action": "sts:AssumeRoleWithWebIdentity",
          "Condition": {
            "StringEquals": {
              "oidc.eks.<region>.amazonaws.com/id/<OIDC-ID>:sub": "system:serviceaccount:<namespace>:my-account"
            }
          }
        }
      ]
    }
    

2. 确认密钥区域与集群区域一致

报错提示Failed to fetch secret from all regions,说明CSI驱动可能在错误的区域查找密钥:

  • 检查Secrets Manager中mysecret所在的区域,确保与EKS集群区域相同。
  • 如果密钥和集群不在同一区域,需在SecretProviderClass的parameters中指定密钥区域:
    parameters:
      objects: |
        - objectName: mysecret
          objectType: secretsmanager
          objectRegion: <secret-region>
          jmesPath:
            - path: APP_ENV
              objectAlias: APP_ENV
            - path: APP_DEBUG
              objectAlias: APP_DEBUG
    

3. 验证密钥名称匹配

  • 确认SecretProviderClass中objectName的mysecret与Secrets Manager中的密钥名称完全一致(区分大小写)。
  • 检查密钥是否有别名,若使用别名,需确保别名正确,或直接使用密钥的ARN作为objectName。

4. 检查CSI驱动和Provider版本兼容性

  • 确认已部署的Secrets Store CSI Driver和AWS Provider版本兼容,建议使用官方推荐的对应版本组合。
  • 验证AWS Provider DaemonSet是否正常运行:
    kubectl get pods -n kube-system -l app=secrets-store-csi-driver-provider-aws
    
    确保所有Pod处于Running状态。

5. 查看Provider Pod日志获取详细错误

  • 找到对应节点上的AWS Provider Pod:
    kubectl get pods -n kube-system -o wide | grep secrets-store-csi-driver-provider-aws
    
  • 查看该Pod的日志,获取更详细的错误信息:
    kubectl logs <provider-pod-name> -n kube-system
    
    日志中可能包含权限拒绝、密钥不存在等具体原因。

6. 验证网络连通性

  • 确保EKS节点能够访问AWS Secrets Manager服务,检查节点的安全组和NACL是否允许出站访问Secrets Manager的HTTPS 443端口。
  • 如果使用私有集群,需确认已配置VPC接口端点用于Secrets Manager,且节点路由表指向该端点。

内容的提问来源于stack exchange,提问作者Martin Melka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 02:20:39