跳至內容

如何對 Amazon EKS 叢集中的 IAM 角色問題進行疑難排解?

2 分的閱讀內容
0

我想管理 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集的 AWS Identity and Access Management (IAM) 角色,以減少與權限相關的問題。

簡短描述

如果您沒有存取 Amazon EKS 叢集的正確權限,則可能會收到下列其中一個錯誤:

  • "Your current IAM principal doesn't have access to Kubernetes objects on this cluster"
  • "You must be logged in to the server (Unauthorized)"
  • "You must be logged in to the server (the server has asked for the client to provide credentials)"

這些錯誤可能是由以下其中一個原因所導致的:

  • 您或您的用戶端 (AWS Command Line Interface (AWS CLI) 或應用程式) 未透過 EKS 叢集進行驗證。
  • 您的 AWS 存取金鑰或私密金鑰無效。
  • 您的叢集端點 URL 不正確。
  • 您沒有正確設定 kubeconfig 檔案。

若要對此問題進行疑難排解,請完成下列任務。

解決方法

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

檢查您的憑證和組態檔案

檢查您的 AWS 憑證,以確定您的憑證有效並具有存取 Amazon EKS 叢集所需的權限。如果您執行 kubectl 命令並收到上述其中一個錯誤,則表示您未正確設定 kubectl

若要檢查您的憑證,請執行 get-caller-identity AWS CLI 命令:

aws sts get-caller-identity

如果您對叢集使用 kubeconfig 組態檔案,請檢查您的檔案組態。如果設定不正確,請使用 update-kubeconfig 命令更新檔案:

aws eks update-kubeconfig

如需詳細資訊,請參閱透過建立 kubeconfig 檔案將 kubectl 連線到 Amazon EKS 叢集

檢查您的 Amazon EKS 叢集驗證方法

使用組態對應的 Amazon EKS 叢集

對於使用組態對應進行驗證的 Amazon EKS 叢集,請將 CLI 設定為使用相同的 IAM 身分來存取叢集並編輯對應。如果沒有可以存取 Amazon EKS 叢集的身分,請擔任叢集建立者角色。然後,編輯組態對應。如需詳細資訊,請參閱在 Amazon EKS 中建立叢集後,如何向其他 IAM 使用者和角色提供叢集存取權?

如果您沒有看到 IAM 身分列在清單中,或您錯誤設定了 IAM 身分,請更新組態對應的 IAM 主體。如需詳細資訊,請參閱將 IAM 主體新增至您的 Amazon EKS 叢集

使用 API 驗證的 Amazon EKS 叢集

對於使用 Amazon EKS API 進行驗證的 Amazon EKS 叢集,您必須為 IAM 身分建立存取項目,以提供正確的權限。

若要驗證 IAM 身分是否存在存取項目,請執行 list-access-entries 命令:

aws eks list-access-entries --cluster-name Your_cluster_name

**注意:**將 Your_cluster_name 替換為您叢集的名稱。

如果沒有 IAM 身分的存取項目,請建立存取項目。另外,請確定 Amazon EKS 叢集具有正確的存取政策。如需詳細資訊,請參閱將存取政策與存取項目建立關聯

**注意:**存取項目方法不會取代 Amazon EKS 中的角色型授權控制 (RBAC)。您可以在叢集中使用包含 RBAC 的 Amazon EKS 存取項目,授予更具體的組態。如需詳細資訊,請參閱深入了解簡化的 Amazon EKS 存取管理控制

相關資訊

在 Amazon EKS 上開始使用 Amazon EMR

使用 Application Load Balancer 路由應用程式和 HTTP 流量

使用 Network Load Balancer 路由 TCP 和 UDP 流量

對 Amazon EKS 叢集與節點的問題進行疑難排解

AWS 官方已更新 5 個月前