跳至内容

如何对我的 Amazon EKS 集群中的访问条目问题进行故障排除?

2 分钟阅读
0

我在我的 Amazon Elastic Kubernetes Service (Amazon EKS) 集群中使用访问条目时收到错误消息或遇到问题。

解决方案

**先决条件:**您的 Amazon EKS 集群在 Kubernetes 版本 1.23 或更高版本上运行。

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。

身份验证模式错误

修改集群的身份验证模式时,您会收到以下错误消息:

  • “An error occurred (InvalidParameterException) when calling the UpdateClusterConfig operation: Unsupported authentication mode update from API_AND_CONFIG_MAP to CONFIG_MAP.”
  • “An error occurred (InvalidParameterException) when calling the UpdateClusterConfig operation: Unsupported authentication mode update from API to CONFIG_MAP.”
  • “An error occurred (InvalidParameterException) when calling the UpdateClusterConfig operation: Unsupported authentication mode update from API to API_AND_CONFIG_MAP.”

设置身份验证模式时,无法撤消操作。例如,将模式更改为 API 后,无法返回到 CONFIG_MAP 或 API_AND_CONFIG_MAP。有关详细信息,请参阅 A deep dive into simplified Amazon EKS access management controls(深入了解简化的 Amazon EKS 访问管理控制)。

为防止身份验证模式错误,请使用访问条目而不是 aws-auth ConfigMap。

AccessDeniedException 错误

当 AWS Identity and Access Management (IAM) 主体没有足够的权限使用访问条目时,您会收到一条错误消息。错误消息与以下内容类似:

“An error occurred (AccessDeniedException) when calling the CreateAccessEntry operation: User: [principalARN] is not authorized to perform: eks:CreateAccessEntry on resource: arn:aws:eks:us-east-1:000000000:cluster/your-eks-cluster.”

要解决此问题,请在提出请求的 IAM 主体的 IAM 策略中添加以下权限:

CONFIG_MAP to API_AND_CONFIG_MAP 迁移或更新问题

当您将访问条目从 CONFIG_MAP 迁移或更新到 API_AND_CONFIG_MAP 时,会出现以下通知:

“The mapping of the node IAM role defined in the existing ConfigMap/AWS-Auth was automatically added as an access entry.However, in aws-auth, this role is defined as two system:nodes/system:bootstrappers group, but at the access entry side it only has system:nodes/.”

没有必须进行故障排除的错误,因为默认情况下,迁移过程会将您的节点 IAM 角色映射到 system:nodes 组。

迁移访问条目后,您不再需要 system:bootstrappers 组授予的 aws-auth ConfigMap 或 IAM 访问条目配置。您的节点可以使用 system:nodes 组授予的权限执行所有操作。system:nodes 组确认 CONFIG_MAP 到 API_AND_CONFIG_MAP 的迁移已从访问条目中移除了不必要的组。

类型错误

当您未将 IAM 角色设置为访问条目的目标 IAM 主体时,会出现以下错误:

“AccessEntry principalArn must be IAM role when using types [EC2_LINUX, EC2_WINDOWS, FARGATE_LINUX].”

要解决此问题,请使用以下访问条目类型之一:

  • EC2_LINUX
  • EC2_WINDOWS
  • FARGATE_LINUX

有关访问条目类型的详细信息,请参阅创建访问条目。

用户名错误

如果您在创建访问条目时提供的用户名不正确,则会收到以下错误消息:

“The username must not begin with [eks:, aws:, system:, amazon:, iam:].”

如果您指定自己的用户名,则不能使用以下前缀作为用户名开头:

  • eks:
  • aws:
  • system:
  • amazon:
  • iam:

要解决此问题,请确保您的用户名符合访问条目的用户名要求。有关用户名要求的详细信息,请参阅创建访问条目。

**注意:**为防止潜在错误,最佳做法是让 Amazon EKS 自动为您生成用户名。

权限错误

您会遇到权限错误,因为 Amazon EKS 未确认集群上的 Kubernetes 基于角色的访问控制 (RBAC) 对象包含您指定的组名。Amazon EKS 不会验证您指定的组名是否存在于集群的绑定中。

要解决此问题,请执行以下操作:

  • 验证您的 aws-auth ConfigMap 或 IAM 访问条目是否成功创建您在 Kubernetes RoleBinding 或 ClusterRoleBinding 中指定为主题的组。
  • 检查访问条目中引用 Kubernetes 组的拼写和格式是否正确。

服务关联角色错误

如果您在创建访问条目时指定了服务关联角色,则会收到以下错误消息:

“The caller is not allowed to modify access entries with a principalArn value of a Service Linked Role.”

访问条目不支持服务关联角色。因此,当主体 Amazon 资源名称 (ARN) 为服务关联角色时,您无法创建访问条目。您可以通过服务关联角色的 ARN 来识别他们。例如,arn:aws:iam::*:role/aws-service-role/* ARN 用于服务关联角色。

要授予服务关联角色访问集群的权限,请使用 CONFIG_MAP 或 API_AND_CONFIG_MAP 身份验证模式在 aws-auth ConfigMap 中指定服务关联角色。

相关信息

向 IAM 用户授予使用 ConfigMap 访问 Kubernetes 的权限

AWS 官方已更新 1 年前