跳至內容

如何對 Amazon Elastic Kubernetes Service 叢集中的存取項目問題進行疑難排解?

2 分的閱讀內容
0

當我在 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集中使用存取項目時,出現錯誤訊息或遇到問題。

解決方法

**先決條件:**您的 Amazon EKS 叢集執行 Kubernetes 版本 1.23 或更新版本。

**注意:**如果您在執行 AWS Command Line Interface (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_MAPAPI_AND_CONFIG_MAP。如需詳細資訊,請參閱深入了解簡化的 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 到 API_AND_CONFIG_MAP 移轉或更新問題

當您從 CONFIG_MAP 移轉或更新存取項目至 API_AND_CONFIG_MAP 時,會出現以下通知:

「在現有的 ConfigMap/AWS-Auth 中定義的節點 IAM 角色對應已自動新增為存取項目。然而,在 aws-auth 中,該角色定義為兩個 system:nodes/system:bootstrappers 群組,但在存取項目端只有 system:nodes/。」

此處沒有任何錯誤需要進行疑難排解,因為移轉程序會預設將您的節點 IAM 角色對應到 system:nodes 群組。

完成存取項目移轉後,您不再需要 aws-auth ConfigMapsystem:bootstrappers 群組授予的 IAM 存取項目組態。您的節點可透過 system:nodes 群組授予的權限執行所有作業。system:nodes 群組可確認 CONFIG_MAPAPI_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 RoleBindingClusterRoleBinding 中指定為主體的群組。
  • 檢查您在存取項目中參考的 Kubernetes 群組拼寫與格式是否正確。

服務連結角色錯誤

如果您在建立存取項目時指定服務連結角色,那麼您會收到以下錯誤訊息:

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

存取項目不支援服務連結角色。因此,當主體 Amazon Resource Name (ARN) 是服務連結角色時,您無法建立存取項目。您可以透過 ARN 識別服務連結角色。例如,arn:aws:iam::*:role/aws-service-role/* ARN 表示服務連結角色。

若要授予服務連結角色對叢集的存取權,請使用 CONFIG_MAPAPI_AND_CONFIG_MAP 驗證模式,並在 aws-auth ConfigMap 中指定服務連結角色。

相關資訊

使用 ConfigMap 授予 IAM 使用者對 Kubernetes 的存取權

AWS 官方已更新 7 個月前