PuppyIP 资源中心
云服务运维 7 分钟 发布于 2026-10-27

AWS Batch EKS Access Entry 怎么启用?先核对集群权限与回退条件

AWS 于 2026 年 10 月 5 日宣布,AWS Batch 在 Amazon EKS 计算环境中支持 access entry 认证。启用前先按集群 authenticationMode 检查所有指向该集群的 Batch 计算环境,并分别准备命名空间策略和节点实例角色。只在一个计算环境中设为 ENABLED,并不保证 access entry 已建立或任务已能运行。

AWS Batch Amazon EKS access entry Kubernetes 权限 云服务运维

服务对象与地域限制

PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。

代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。

本文要点

  • AWS Batch 现可为 EKS 集群管理一个供 Batch 服务关联角色使用的 access entry,适用于 AWS Batch 已提供的各个 AWS Region。
  • 在 API_AND_CONFIG_MAP 模式下,Batch 会对同一账号和 Region 中指向该集群的所有计算环境协调 desiredState;只改一项不足以保证切换。
  • access entry 关联的 AWSBatchClusterPolicy 不会自动授予命名空间内的 Pod 管理权限,仍需单独关联 AWSBatchNamespacePolicy。
  • AWS Batch 启动的节点实例角色需要自己的集群访问权限;它与 Batch 服务关联角色的 access entry 是两条独立权限链。
  • AWS Batch 本身不额外收费,但 EKS 集群和实际运行资源仍按 AWS 当前定价计费。

这项能力改变了什么?

AWS 在 2026 年 10 月 5 日宣布,AWS Batch 现在可通过 Amazon EKS access entry 认证访问 EKS 计算环境。access entry 是由 API 管理的集群访问记录,可作为旧 aws-auth ConfigMap 方式的补充。

你可以在 CreateComputeEnvironment 或 UpdateComputeEnvironment 请求中设置 eksConfiguration.accessEntry.desiredState。满足条件时,AWS Batch 会为其服务关联角色在每个集群创建一个由 Batch 管理的 access entry,并关联 AWSBatchClusterPolicy。

该能力覆盖 AWS Batch 已提供的全部 AWS Region。它不会替你创建或管理 EKS 集群,也不会自动补齐 Kubernetes 命名空间权限或节点角色访问。

先按 EKS 的 authenticationMode 判断行为

在 CONFIG_MAP 模式下,集群不支持 access entry。AWS Batch 可以记录你指定的 desiredState,但不会因此创建或删除 access entry;批处理服务仍通过 aws-auth ConfigMap 认证。

在 API 模式下,access entry 是集群认证路径。ENABLED 会让 AWS Batch 管理该入口,INHERIT_FROM_CLUSTER 在 API-only 集群上也会建立并管理入口;DISABLED 会被拒绝,因为这种模式没有可回退使用的 aws-auth ConfigMap。

在 API_AND_CONFIG_MAP 模式下,AWS Batch 会比较同一 AWS 账号和 Region 中所有指向该集群的 Batch 计算环境。全部设为 ENABLED 才会创建入口;全部设为 DISABLED 才会删除入口。

如果这些计算环境的值不一致,或有环境未记录 desiredState,Batch 会保留现有访问模式,不会仅凭其中一项的 ENABLED 或 DISABLED 切换整个集群。INHERIT_FROM_CLUSTER 在这种模式下不会单独添加或删除入口。

access entry 还不等于任务权限已就绪

调用 CreateComputeEnvironment 或 UpdateComputeEnvironment 的 IAM 身份需要相应的 EKS 权限:eks:DescribeCluster、eks:DescribeAccessEntry、eks:CreateAccessEntry、eks:AssociateAccessPolicy 和 eks:DeleteAccessEntry。

AWSBatchClusterPolicy 是集群级策略。启用 Batch 管理的 access entry 后,你仍需把命名空间范围的 AWSBatchNamespacePolicy 关联到服务关联角色,授权 AWS Batch 在指定 namespace 中创建和管理 Pod。缺少这项关联时,作业可能停留在 RUNNABLE。

节点加入集群使用的是 computeResources.instanceRole 指定的实例角色,它需要单独的集群访问权。API 模式下要为节点角色建立 access entry;API_AND_CONFIG_MAP 模式下,已有有效的 aws-auth 映射也可以满足该角色的认证。

DescribeComputeEnvironments 返回的 accessEntry.status=ACTIVE 只说明 Batch 管理的入口已存在。AWS 文档提醒,策略关联可能尚未完成;因此 ACTIVE 不能单独作为任务权限已可用的证明。

启用前按集群清点,再逐项验证

先按集群 ARN 列出同一账号和 Region 中所有 AWS Batch EKS 计算环境,记录每项的 authenticationMode、desiredState 和目标 namespace。不要只检查准备改动的那一项。

确认集群认证模式允许目标切换,并让执行变更的 IAM 身份具备 AWS Batch 与上述 EKS 操作权限。API_AND_CONFIG_MAP 集群要预先规划如何把所有目标计算环境设为同一状态。

对于每个需要启用的现有计算环境,可使用以下命令更新 access entry 状态;把占位符替换为你自己的计算环境名称,并按集群范围完成一致性变更:aws batch update-compute-environment --compute-environment <compute-environment-name> --eks-configuration 'accessEntry={desiredState=ENABLED}'

随后使用 DescribeComputeEnvironments 检查 desiredState 和 status,再分别核对 AWSBatchNamespacePolicy 与节点实例角色的访问配置。可以在非生产或受控队列中验证任务能否进入预期状态;本文没有在读者环境执行过这些操作。

AWS Batch 定价页称 Batch 服务本身不额外收费;EKS 集群及 EC2 等实际资源仍可能产生费用。EKS 集群价格会随 Kubernetes 版本支持级别变化,部署前应按目标 Region 查看当前价格。

回退或删除计算环境时别留下入口

API_AND_CONFIG_MAP 集群如需回到 aws-auth 方式,先把所有指向该集群的 AWS Batch 计算环境设为 DISABLED,等入口按规则移除后再确认访问链。API-only 集群不接受 DISABLED;不要把它当作可用的回退步骤。

删除一个 AWS Batch 计算环境不会自动删除集群上的 Batch-managed access entry,即使它是最后一个环境。需要清理时,应在删除前对所有目标计算环境执行 DISABLED,并按 AWS 文档确认该集群的其他访问与节点角色配置仍符合预期。

资料来源

常见问题

只把一个 AWS Batch 计算环境设为 ENABLED 就够了吗?

不一定。API_AND_CONFIG_MAP 模式下,Batch 会协调同一账号和 Region 中指向该集群的所有计算环境;只有全部记录为 ENABLED 才会创建入口。

AWSBatchClusterPolicy 已关联,为什么作业仍停在 RUNNABLE?

该策略是集群级访问策略。还需要把 AWSBatchNamespacePolicy 关联到目标 namespace,并为节点实例角色配置独立的集群访问权。

删除最后一个计算环境会清理 access entry 吗?

不会。先对所有指向该集群的计算环境设为 DISABLED,再按 AWS 文档删除环境和清理入口。

启用 AWS Batch EKS access entry 需要单独付费吗?

AWS Batch 定价页称 Batch 服务本身不额外收费;Amazon EKS 集群和实际使用的计算、存储及网络资源可能产生费用,金额取决于资源、Region 和配置。