協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
疑難排解 IAM
本主題涵蓋一些搭配 Amazon EKS 使用 IAM 時可能遇到的常見錯誤,並提供解決方法。
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 EKS DescribeCluster API 操作的許可。若要將 Amazon EKS 管理員許可提供給 IAM 主體,請參閱 Amazon EKS 身分型政策範例。
如需關於 IAM 的一般資訊,請參閱《IAM 使用者指南》的使用政策控制存取。
您無法在運算標籤上看見節點,或是在資源標籤上看見任何內容,並收到 AWS 管理主控台 錯誤
您可能會看到內容為 Your current user or role does not have access to Kubernetes objects on this EKS cluster 的主控台錯誤訊息。請確定您與 AWS 管理主控台 搭配使用的 IAM 主體使用者具有必要的許可。如需詳細資訊,請參閱 所需的許可。
aws-auth ConfigMap 不會授予對叢集的存取權限
AWS IAM AuthenticatorConfigMap 中使用角色 ARN 的路徑。因此,在您指定 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 資源
您可以建立一個角色,讓其他帳戶中的使用者或您組織外部的人員存取您的資源。您可以指定要允許哪些信任物件取得該角色。針對支援基於資源的政策或存取控制清單 (ACL) 的服務,您可以使用那些政策來授予人員存取您的資源的許可。
若要進一步了解,請參閱以下內容:
-
若要了解 Amazon EKS 是否支援這些功能,請參閱 Amazon EKS 如何搭配 IAM 運作。
-
若要了解如何對您擁有的所有 AWS 帳戶提供資源的存取權,請參閱《IAM 使用者指南》中的對您所擁有的另一個 AWS 帳戶中的 IAM 使用者提供存取權。
-
若要了解如何將資源的存取權提供給第三方 AWS 帳戶,請參閱 IAM 使用者指南中的將存取權提供給第三方擁有的 AWS 帳戶。
-
若要了解如何透過聯合身分提供存取權,請參閱 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 區域中管理 AWS STS。 -
將服務帳戶設定為使用全域端點。叢集預設會使用區域端點。如需詳細資訊,請參閱 為服務帳戶設定 AWS Security Token Service 端點。