

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# ASCP for Amazon EKS 설치
<a name="ascp-eks-installation"></a>

이 섹션에서는 Amazon EKS용 AWS 보안 암호 및 구성 공급자를 설치하는 방법을 설명합니다. ASCP를 사용하면 Secrets Manager의 보안 암호와의 파라미터를 Amazon EKS 포드의 AWS Systems Manager 파일로 탑재할 수 있습니다.

## 사전 조건
<a name="prerequisites"></a>
+ Amazon EKS 클러스터
  + Pod Identity 버전 1.24 이상
  + IRSA 버전 1.17 이상
+  AWS CLI 설치 및 구성된
+ Amazon EKS 클러스터에 kubectl 설치 및 구성
+ Helm(버전 3.0 이상)

## ASCP 설치 및 구성
<a name="integrating_csi_driver_install"></a>

ASCP는 [secrets-store-csi-provider-aws](https://github.com/aws/secrets-store-csi-driver-provider-aws) 리포지토리의 GitHub에서 제공됩니다. 리포지토리에는 보안 암호를 생성하고 탑재하기 위한 예제 YAML 파일도 포함되어 있습니다.

설치 과정에서, FIPS 엔드포인트를 사용하도록 ASCP를 구성할 수 있습니다. 엔드포인트 목록은 [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 Driver를 종속 항목으로 설치하지 않습니다.

**리포지토리에서 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`와 같이 이름과 함께 실행 중인 포드가 표시될 것입니다.

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` 상태로 표시될 것입니다.

명령을 실행한 후 모든 것이 올바르게 설정되면 오류 없이 실행 중인 모든 구성 요소가 표시됩니다. 문제가 발생하면 문제가 있는 특정 포드의 로그를 확인하여 문제를 해결해야 할 수 있습니다.

## 문제 해결
<a name="troubleshooting"></a>

1. 다음을 실행하여 ASCP 공급자의 로그 확인:

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

1. `kube-system` 네임스페이스에서 모든 포드의 상태를 확인합니다.

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

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

   CSI 드라이버 및 ASCP와 관련된 모든 포드는 'Running' 상태여야 합니다.

1. CSI 드라이버 버전 확인:

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

   이 명령을 사용하면 설치된 CSI 드라이버에 대한 정보가 반환되어야 합니다.

## 추가 리소스
<a name="additional-resources"></a>

Amazon EKS에서 ASCP 사용에 대한 자세한 내용은 다음 리소스를 참조하세요.
+ [Amazon EKS에서 Pod Identity 사용](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)