

• 2026 年 4 月 30 日之後， AWS Systems Manager CloudWatch Dashboard 將不再可用。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板，就像現在一樣。如需詳細資訊，請參閱 [Amazon CloudWatch Dashboard 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

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

# 使用 AWS Secrets and Configuration Provider CSI 搭配服務帳戶 (IRSA) 的 IAM 角色
<a name="integrating_ascp_irsa"></a>

**Topics**
+ [先決條件](#prerequisites)
+ [設定存取控制](#integrating_ascp_irsa_access)
+ [識別要掛載的參數](#integrating_ascp_irsa_mount)
+ [疑難排解](#integrating_ascp_irsa_trouble)

## 先決條件
<a name="prerequisites"></a>
+ Amazon EKS 叢集 (1.17 版或更新版本)
+ 透過 存取 AWS CLI 和 Amazon EKS 叢集 `kubectl`

## 設定存取控制
<a name="integrating_ascp_irsa_access"></a>

ASCP 會擷取 Amazon EKS Pod 身分識別，並將其交換為 IAM 角色。您可以在 IAM 政策中為該 IAM 角色設定許可。ASCP 擔任 IAM 角色時，它可存取您授權的參數。除非您也將其與 IAM 角色建立關聯，否則其他容器無法存取參數。

**授予 Amazon EKS Pod 對 Parameter Store 中參數的存取權**

1. 建立許可政策，針對 Pod 需要存取的參數，授予 `ssm:GetParameters` 和 `ssm:DescribeParameters` 存取該參數的許可。

1. 如果尚未建立，請為叢集建立 IAM OpenID Connect (OIDC) 提供者。如需詳細資訊，請參閱《Amazon EKS 使用者指南》**中的[為您的叢集建立 IAM OIDC 身分提供者](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html)。

1. 建立[服務帳戶的 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)，並將政策連接至該角色。如需詳細資訊，請參閱《Amazon EKS 使用者指南》**中的[建立服務帳戶的 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)。

1. 如果您使用私有 Amazon EKS 叢集，請確定叢集所在的 VPC 具有 AWS STS 端點。如需有關建立端點的資訊，請參閱 *AWS Identity and Access Management User Guide* 中的 [Interface VPC endpoints](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_interface_vpc_endpoints.html)。

## 識別要掛載的參數
<a name="integrating_ascp_irsa_mount"></a>

若要確定 ASCP 在 Amazon EKS 中掛載哪些參數作為檔案系統中的檔案，請建立 [SecretProviderClass](ascp-examples.md#ascp-examples-secretproviderclass) YAML 檔案。`SecretProviderClass` 會列出要掛載的參數，以及將其掛載的檔案名稱。`SecretProviderClass` 必須與其參考的 Amazon EKS Pod 位於同一命名空間。

### 將參數掛載為檔案
<a name="mount-secrets"></a>

下列指示說明如何使用範例 YAML 檔案 [ExampleSecretProviderClass.yaml](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleSecretProviderClass-IRSA.yaml) 和 [ExampleDeployment.yaml](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleDeployment-IRSA.yaml) 將參數掛載為檔案。

**在 Amazon EKS 中掛載參數**

1. 將 `SecretProviderClass` 套用至 Pod：

   ```
   kubectl apply -f ExampleSecretProviderClass.yaml
   ```

1. 部署您的 Pod：

   ```
   kubectl apply -f ExampleDeployment.yaml
   ```

1. ASCP 可掛載檔案。

## 疑難排解
<a name="integrating_ascp_irsa_trouble"></a>

您可以透過描述 Pod 部署來檢視大多數錯誤。

**若要查看容器的錯誤訊息**

1. 使用下列命令取得 Pod 名稱清單。如果不使用預設命名空間，請使用 `-n name-space`。

   ```
   kubectl get pods
   ```

1. 若要描述 Pod，請在下列命令中，針對 *pod-id* 使用您在上一個步驟中從 Pod 找到的 Pod ID。如果不使用預設命名空間，請使用 `-n nameSpace`。

   ```
   kubectl describe pod/pod-id
   ```

**若要查看 ASCP 的錯誤**
+ 若要在提供者記錄中尋找更多資訊，請在下列命令中，針對 *pod-id* 使用 *csi-secrets-store-provider-aws* Pod 的 ID。

  ```
  kubectl -n kube-system get pods
  kubectl -n kube-system logs Pod/pod-id
  ```
+ 

**驗證是否已安裝 `SecretProviderClass` CRD：**

  ```
  kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io
  ```

  此命令應會傳回有關 `SecretProviderClass` 自訂資源定義的資訊。
+ 

**驗證是否已建立 SecretProviderClass 物件。**

  ```
  kubectl get secretproviderclass SecretProviderClassName -o yaml
  ```