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

AWS CodeBuild执行eks update-kubeconfig时AssumeRole权限错误求助

AWS CodeBuild中EKS配置权限问题排查与解决

关于STS临时会话ARN的说明

  • arn:aws:sts::12345:assumed-role/CodeBuild-API-Build-service-role/AWSCodeBuild-99c25416-7046-416e-b5d9-4bff1f4992f3 是AWS生成的临时会话ARN:
    • CodeBuild-API-Build-service-role 是你给CodeBuild项目配置的服务角色
    • AWSCodeBuild-99c25416-7046-416e-b5d9-4bff1f4992f3 是该角色被CodeBuild临时调用时生成的唯一会话ID,每次CodeBuild运行都会生成不同的ID,用来标识本次临时身份的会话周期

带--role-arn参数执行报错的原因

你当前的命令是让CodeBuild正在使用的角色(CodeBuild-API-Build-service-role)自己扮演自己,这不符合IAM角色的使用逻辑,且该角色未配置允许自身调用sts:AssumeRole的权限,因此触发AccessDenied错误。

正确逻辑是:无需在aws eks update-kubeconfig中指定--role-arn参数,只需确保CodeBuild使用的服务角色本身拥有访问EKS集群的权限。

解决kubectl认证失败的问题

不带--role-arn执行aws eks update-kubeconfig成功,但kubectl报错未认证,说明CodeBuild的服务角色未被EKS集群授权访问,需完成以下两步配置:

1. 给CodeBuild服务角色添加EKS访问权限

为CodeBuild-API-Build-service-role添加IAM权限策略,至少包含以下内容:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:DescribeCluster",
                "eks:ListClusters"
            ],
            "Resource": "arn:aws:eks:us-west-1:12345:cluster/ticket-api"
        }
    ]
}

2. 将CodeBuild服务角色加入EKS集群的认证配置

编辑EKS集群的aws-auth ConfigMap,把CodeBuild服务角色ARN加入mapRoles,让EKS认可该角色的访问权限:

apiVersion: v1
kind: ConfigMap
metadata:
  name: aws-auth
  namespace: kube-system
data:
  mapRoles: |
    - rolearn: arn:aws:iam::12345:role/service-role/CodeBuild-API-Build-service-role
      username: codebuild-api-build
      groups:
        - system:masters # 可根据需求替换为更严格的权限组,比如system:viewers

操作提示:先通过kubectl get configmap aws-auth -n kube-system -o yaml导出当前配置,修改后再用kubectl apply -f <修改后的文件>提交。

验证配置

修改完成后,在CodeBuild的buildspec.yaml中保留以下命令即可:

aws eks update-kubeconfig --name ticket-api --region us-west-1
kubectl version

重新运行CodeBuild构建,即可正常完成kubeconfig配置与kubectl认证。

内容的提问来源于stack exchange,提问作者tmp dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:03:26