

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 安装适用于 Amazon EKS 的 ASCP
<a name="ascp-eks-installation"></a>

本节介绍如何安装适用于 Amazon EKS 的 AWS 密钥和配置提供程序。使用 ASCP，您可以将 Secrets Manager 中的密钥和来自的参数 AWS Systems Manager 作为文件挂载到 Amazon EKS Pods 中。

## 先决条件
<a name="prerequisites"></a>
+ Amazon EKS 集群
  + 容器组身份版本 1.24 或更高版本
  + IRSA 版本 1.17 或更高版本
+ 已 AWS CLI 安装并配置的
+ 已为 Amazon EKS 集群安装并配置 kubectl
+ Helm（版本 3.0 或更高版本）

## 安装和配置 ASCP
<a name="integrating_csi_driver_install"></a>

ASCP 在 s [ecrets-store-csi-provider-](https://github.com/aws/secrets-store-csi-driver-provider-aws) aws 存储库 GitHub 中可用。回购还包含用于创建和装载密钥的 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
   ```

   您应该看到正在运行的容器组（pod），其名称如下：`csi-secrets-store-secrets-store-csi-driver-xxx`。

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>

有关将 ASCP 与 Amazon EKS 结合使用的更多信息，请参阅以下资源：
+ [将容器组身份与 Amazon EKS 结合使用](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [AWS 秘密商店 CSI 驱动程序开启 GitHub](https://github.com/aws/secrets-store-csi-driver-provider-aws)