

 **協助改進此頁面** 

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 疑難排解 IAM
<a name="security-iam-troubleshoot"></a>

本主題涵蓋一些搭配 Amazon EKS 使用 IAM 時可能遇到的常見錯誤，並提供解決方法。

## AccessDeniedException
<a name="iam-error"></a>

如果您在呼叫 AWS API 操作`AccessDeniedException`時收到 ，則您使用的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)憑證沒有發出該呼叫所需的許可。

```
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 身分型政策範例](security-iam-id-based-policy-examples.md)。

如需關於 IAM 的一般資訊，請參閱《IAM 使用者指南》的[使用政策控制存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html)。

## 在**運算**索引標籤或**資源**索引標籤上看不到**節點**，且您在 中收到錯誤 AWS 管理主控台
<a name="security-iam-troubleshoot-cannot-view-nodes-or-workloads"></a>

您可能會看到內容為 `Your current user or role does not have access to Kubernetes objects on this EKS cluster` 的主控台錯誤訊息。請確定您 AWS 管理主控台 搭配 使用 的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)使用者具有必要的許可。如需詳細資訊，請參閱[所需的許可](view-kubernetes-resources.md#view-kubernetes-resources-permissions)。

## aws-auth `ConfigMap` 不會授予對叢集的存取權限
<a name="security-iam-troubleshoot-configmap"></a>

[AWS IAM Authenticator](https://github.com/kubernetes-sigs/aws-iam-authenticator) 不允許在 `ConfigMap` 中使用角色 ARN 的路徑。因此，在您指定 `rolearn` 之前，請移除該路徑。例如，請將 ` arn:aws: iam::111122223333:role/team/developers/eks-admin ` 變更為 ` arn:aws: iam::111122223333:role/eks-admin `。

## 我未獲得執行 iam:PassRole 的授權
<a name="security-iam-troubleshoot-passrole"></a>

如果您收到錯誤，告知您無權執行 `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 資源
<a name="security-iam-troubleshoot-cross-account-access"></a>

您可以建立一個角色，讓其他帳戶中的使用者或您組織外部的人員存取您的資源。您可以指定要允許哪些信任物件取得該角色。針對支援基於資源的政策或存取控制清單 (ACL) 的服務，您可以使用那些政策來授予人員存取您的資源的許可。

若要進一步了解，請參閱以下內容：
+ 若要了解 Amazon EKS 是否支援這些功能，請參閱 [Amazon EKS 如何搭配 IAM 運作](security-iam-service-with-iam.md)。
+ 若要了解如何在您擁有的 AWS 帳戶中提供資源的存取權，請參閱《[IAM 使用者指南》中的為您擁有的另一個 AWS 帳戶中的 IAM 使用者提供存取權](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)。 **
+ 若要了解如何將資源的存取權提供給第三方 AWS 帳戶，請參閱《*IAM 使用者指南*》中的[將存取權提供給第三方擁有 AWS 的帳戶](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)。
+ 如需了解如何透過聯合身分提供存取權，請參閱《*IAM 使用者指南*》中的[將存取權提供給在外部進行身分驗證的使用者 (聯合身分)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。
+ 如需了解使用角色和資源型政策進行跨帳戶存取之間的差異，請參閱《*IAM 使用者指南*》中的 [IAM 中的跨帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## Pod 容器會接收到下列錯誤：`An error occurred (SignatureDoesNotMatch) when calling the GetCallerIdentity operation: Credential should be scoped to a valid region`
<a name="security-iam-troubleshoot-wrong-sts-endpoint"></a>

如果您的應用程式明確向 AWS STS 全域端點 (`https://sts.amazonaws.com`) 提出請求，且您的 Kubernetes 服務帳戶設定為使用區域端點，則您的容器會收到此錯誤。您可以使用下列其中一種選項來解決此問題：
+ 更新您的應用程式程式碼，以移除對 AWS STS 全域端點的明確呼叫。
+ 更新應用程式的程式碼以明確呼叫區域端點，例如 `https://sts.us-west-2.amazonaws.com`。您的應用程式應內建備援，以便在 AWS 區域中的服務故障時挑選不同的 AWS 區域。如需詳細資訊，請參閱《IAM 使用者指南[AWS 》中的在 區域中管理 AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)。
+ 將服務帳戶設定為使用全域端點。叢集預設會使用區域端點。如需詳細資訊，請參閱[為服務帳戶設定 AWS Security Token Service 端點](configure-sts-endpoint.md)。