協助改善此頁面
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
故障診斷 IAM
本主題涵蓋使用 Amazon 時,您可能會看到的一些常見錯誤,EKSIAM以及如何解決這些錯誤。
AccessDeniedException
如果您在呼叫 AWS API 操作AccessDeniedException
時收到 ,則您正在使用IAM的主要憑證沒有進行該呼叫所需的許可。
An error occurred (AccessDeniedException) when calling the DescribeCluster operation:
User: arn:aws:iam::111122223333
:user/user_name
is not authorized to perform:
eks:DescribeCluster on resource: arn:aws:eks:region
:111122223333
:cluster/my-cluster
在先前的範例訊息中,使用者沒有呼叫 Amazon EKSDescribeCluster
API操作的許可。若要提供 Amazon EKS 管理員許可給IAM委託人,請參閱 Amazon EKS 基於身份的政策示例。
如需 的一般資訊IAM,請參閱 IAM 使用者指南 中的使用政策控制存取權。
您無法在 Compute (運算) 標籤上看見 Nodes (節點),或是在 Resources (資源) 標籤上看見任何內容,並收到 AWS Management Console錯誤。
您可能會看到內容為 Your current user or role does not
have access to Kubernetes objects on this EKS cluster
的主控台錯誤訊息。請確定您使用 AWS Management Console 的主要IAM使用者具有必要的許可。如需詳細資訊,請參閱所需的許可。
aws-auth ConfigMap
不會授予對叢集的存取權限
AWS IAM 驗證器ConfigMap
。因此,在您指定 rolearn
之前,請移除該路徑。例如,請將 arn:aws:iam::
變更為 111122223333
:role/team
/developers
/eks-admin
arn:aws:iam::
。111122223333
:role/eks-admin
我無權執行 iam:PassRole
如果您收到錯誤,表示您無權執行iam:PassRole
動作,則必須更新您的政策,才能將角色傳遞給 Amazon EKS。
有些 AWS 服務 允許您將現有角色傳遞給該服務,而不是建立新的服務角色或服務連結角色。如需執行此作業,您必須擁有將角色傳遞至該服務的許可。
當名為 marymajor
IAM的使用者嘗試使用主控台在 Amazon 中執行動作時,會發生下列錯誤範例EKS。但是,動作請求服務具備服務角色授予的許可。Mary 沒有將角色傳遞至該服務的許可。
User: arn:aws:iam::123456789012:user/
marymajor
is not authorized to perform: iam:PassRole
在這種情況下,Mary 的政策必須更新,允許她執行 iam:PassRole
動作。
如果您需要協助,請聯絡您的 AWS 管理員。您的管理員提供您的簽署憑證。
我想要允許 AWS 帳戶外的人員存取我的 Amazon EKS 資源
您可以建立一個角色,讓其他帳戶中的使用者或您組織外部的人員存取您的資源。您可以指定要允許哪些信任物件取得該角色。對於支援資源型政策或存取控制清單 (ACLs) 的服務,您可以使用這些政策來授予人員對資源的存取權。
如需進一步了解,請參閱以下內容:
-
若要了解 Amazon 是否EKS支援這些功能,請參閱 Amazon 如EKS何與 IAM。
-
若要了解如何 AWS 帳戶 在您擁有的 資源之間提供存取權,請參閱 IAM 使用者指南 中的在您擁有 AWS 帳戶 的另一個資源中為IAM使用者提供存取權。
-
若要了解如何將資源的存取權提供給第三方 AWS 帳戶,請參閱 使用者指南 中的提供存取權給第三方 AWS 帳戶 擁有。 IAM
-
若要了解如何透過身分聯合提供存取權,請參閱 IAM 使用者指南 中的為外部驗證的使用者提供存取權 (身分聯合)。
-
若要了解跨帳戶存取使用角色和資源型政策之間的差異,請參閱 IAM 使用者指南 中的跨帳戶資源存取IAM。
Pod 容器會接收到下列錯誤:An error occurred (SignatureDoesNotMatch) when calling
the GetCallerIdentity operation: Credential should be scoped to a valid
region
如果您的應用程式明確向 AWS STS 全域端點 (https://sts.amazonaws
) 和您的 Kubernetes 服務帳戶設定為使用區域端點。您可以使用下列其中一種選項來解決此問題:
-
更新您的應用程式程式碼,以移除全域 AWS STS 端點的明確呼叫。
-
更新應用程式的程式碼以明確呼叫區域端點,例如
https://sts.us-west-2.amazonaws.com
。應用程式應具有內建備援,以便在該 AWS 區域的服務發生故障時選擇不同的 AWS 區域 。如需詳細資訊,請參閱 IAM 使用者指南中的AWS STS 管理 AWS 區域。 -
將服務帳戶設定為使用全域端點。
1.22
版以前的所有版本依預設使用全域端點,但版本1.22
和更新版本的叢集依預設使用區域端點。如需詳細資訊,請參閱設定服務帳戶的 AWS Security Token Service 端點。