協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] 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 作業的權限。若IAM要向主體提供 Amazon EKS 管理員許可,請參閱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
的主控台錯誤訊息。請確定您使用的IAM主要使用者具 AWS Management Console 有必要的權限。如需詳細資訊,請參閱所需的許可。
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 服務 允許您將現有角色傳遞給該服務,而不是建立新的服務角色或服務連結角色。如需執行此作業,您必須擁有將角色傳遞至該服務的許可。
當名為的使用IAM者marymajor
嘗試使用主控台在 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 帳戶,請參閱《IAM使用指南》中的提供第三方 AWS 帳戶 擁有的存取權。
-
若要瞭解如何透過聯合身分識別提供存取權,請參閱使用指南中的提供對外部驗證使用IAM者的存取權 (身分聯合)。
-
若要瞭解針對跨帳號存取使用角色與以資源為基礎的政策之間的差異,請參閱《使用IAM者指南》IAM中的〈跨帳號資源存取〉。
Pod 容器會接收到下列錯誤:An error occurred (SignatureDoesNotMatch) when calling
the GetCallerIdentity operation: Credential should be scoped to a valid
region
如果您的應用程式明確向全域端點 (https://sts.amazonaws
) 發出要求,且您的Kubernetes服務帳戶設定為使用區 AWS STS 域端點,則您的容器會收到此錯誤。您可以使用下列其中一種選項來解決此問題:
-
更新您的應用程式程式碼,以移除對 AWS STS 全域端點的明確呼叫。
-
更新應用程式的程式碼以明確呼叫區域端點,例如
https://sts.us-west-2.amazonaws.com
。應用程式應具有內建備援,以便在該 AWS 區域的服務發生故障時選擇不同的 AWS 區域 。若要取得更多資訊,請參閱 AWS STS 《使用指南》 AWS 區域中的IAM〈管理〉。 -
將服務帳戶設定為使用全域端點。
1.22
版以前的所有版本依預設使用全域端點,但版本1.22
和更新版本的叢集依預設使用區域端點。如需詳細資訊,請參閱設定服務帳戶的 AWS Security Token Service 端點。