

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

# 安裝適用於 Amazon EKS 的 ASCP
<a name="ascp-eks-installation"></a>

本節說明如何安裝 Amazon EKS 的 AWS Secrets and Configuration Provider。使用 ASCP，您可以從 Secrets Manager 將秘密掛載，並從 將參數掛載 AWS Systems Manager 為 Amazon EKS Pod 中的檔案。

## 先決條件
<a name="prerequisites"></a>
+ Amazon EKS 叢集
  + 適用於 Pod 身分識別的 1.24 版或更新版本
  + 適用於 IRSA 的 1.17 版或更新版本
+  AWS CLI 已安裝和設定的
+ 已為 Amazon EKS 叢集安裝和設定 kubectl
+ Helm (3.0 版或更新版本)

## 安裝和設定 ASCP
<a name="integrating_csi_driver_install"></a>

您可在 [secrets-store-csi-provider-aws](https://github.com/aws/secrets-store-csi-driver-provider-aws) 儲存庫中的 GitHub 取得 ASCP。儲存庫還包含用於建立和掛載秘密的範例 YAML 檔案。

在安裝期間，您可以將 ASCP 設定為使用 FIPS 端點。如需端點清單，請參閱 [AWS Secrets Manager 端點](asm_access.md#endpoints)。

**安裝 ASCP 做為 EKS 附加元件**

1. 安裝 `eksctl`([安裝指示](https://docs.aws.amazon.com/eks/latest/eksctl/installation.html))

1. 執行下列命令，以[預設組態](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/charts/secrets-store-csi-driver-provider-aws/values.yaml)安裝 附加元件：

   ```
   eksctl create addon --cluster <your_cluster> --name aws-secrets-store-csi-driver-provider
   ```

   如果您想要設定附加元件，請改為執行下列安裝命令：

   ```
   aws eks create-addon --cluster-name <your_cluster> --addon-name aws-secrets-store-csi-driver-provider --configuration-values 'file://path/to/config.yaml'
   ```

   組態檔案可以是 YAML 或 JSON 檔案。若要查看附加元件的組態結構描述：

   1. 執行下列命令，並記下 附加元件的最新版本：

      ```
      aws eks describe-addon-versions --addon-name aws-secrets-store-csi-driver-provider
      ```

   1. 執行下列命令以查看附加元件的組態結構描述，`<version>`將 取代為上一個步驟的 版本：

      ```
      aws eks describe-addon-configuration --addon-name aws-secrets-store-csi-driver-provider --addon-version <version>
      ```

**使用 Helm 安裝 ASCP**

1. 為確認儲存庫指向最新圖表，請使用 `helm repo update.`

1. 安裝圖表。以下是 `helm install`命令的範例：

   ```
   helm install -n kube-system secrets-provider-aws aws-secrets-manager/secrets-store-csi-driver-provider-aws
   ```

   1. 若要使用 FIPS 端點，請新增下列旗標：`--set useFipsEndpoint=true`

   1. 若要設定限流，請新增下列旗標：`--set-json 'k8sThrottlingParams={"qps": "{{number of queries per second}}", "burst": "{{number of queries per second}}"}'`

   1. 如果您的叢集已安裝 Secrets Store CSI 驅動程式，請新增下列旗標：`--set secrets-store-csi-driver.install=false`。這將略過安裝 Secrets Store CSI 驅動程式做為相依性。

**使用儲存庫中的 YAML 進行安裝**
+ 使用下列命令。

  ```
  helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts
  helm install -n kube-system csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver
  kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/deployment/aws-provider-installer.yaml
  ```

## 驗證安裝
<a name="verify-ascp-installations"></a>

若要驗證 EKS 叢集、Secrets Store CSI 驅動程式和 ASCP 外掛程式的安裝，請遵循下列步驟：

1. 驗證 EKS 叢集：

   ```
   eksctl get cluster --name {{clusterName}}
   ```

   此命令應傳回叢集的相關資訊。

1. 驗證 Secrets Store CSI 驅動程式的安裝：

   ```
   kubectl get pods -n kube-system -l app=secrets-store-csi-driver
   ```

   您應該會看到名稱類似於 `csi-secrets-store-secrets-store-csi-driver-xxx` 的 Pod 正在執行。

1. 驗證 ASCP 外掛程式的安裝：

------
#### [ YAML installation ]

   ```
   $ kubectl get pods -n kube-system -l app=csi-secrets-store-provider-aws
   ```

   輸出範例：

   ```
   NAME                                     READY   STATUS    RESTARTS   AGE
   csi-secrets-store-provider-aws-12345      1/1     Running   0          2m
   ```

------
#### [ Helm installation ]

   ```
   $  kubectl get pods -n kube-system -l app=secrets-store-csi-driver-provider-aws
   ```

   輸出範例：

   ```
   NAME                                              READY   STATUS    RESTARTS   AGE
   secrets-provider-aws-secrets-store-csi-driver-provider-67890       1/1     Running   0          2m
   ```

------

   您應該會看到處於 `Running` 狀態的 Pod。

執行這些命令之後，如果一切皆正確設定，您應該會看到所有元件都在執行，而且沒有任何錯誤。如果您遇到任何問題，您可能需要檢查有問題之特定 Pod 的日誌，以進行疑難排解。

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

1. 若要檢查 ASCP 提供者的日誌，請執行：

   ```
   kubectl logs -n kube-system -l app=csi-secrets-store-provider-aws
   ```

1. 檢查`kube-system`命名空間中所有 Pod 的狀態：

   ```
   kubectl -n kube-system get pods
   ```

   ```
   kubectl -n kube-system logs pod/{{PODID}}
   ```

   與 CSI 驅動程式和 ASCP 相關的所有 Pod 都應該處於「執行中」狀態。

1. 檢查 CSI 驅動程式版本：

   ```
   kubectl get csidriver secrets-store.csi.k8s.io -o yaml
   ```

   此命令應傳回已安裝 CSI 驅動程式的相關資訊。

## 其他資源
<a name="additional-resources"></a>

如需有關如何搭配 Amazon EKS 使用 ASCP 的詳細資訊，請參閱下列資源：
+ [搭配 Amazon EKS 使用 Pod 身分識別](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [GitHub 上的AWS Secrets Store CSI 驅動程式](https://github.com/aws/secrets-store-csi-driver-provider-aws)