

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# AWS Secrets Manager를 사용하여 애플리케이션 보안 암호 관리
<a name="integration-secrets-manager"></a>

 [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/)를 사용하면 전체 수명 주기 동안 자격 증명, API 키 및 기타 보안 암호에 손쉽게 액세스하고 이를 관리 및 교체할 수 있습니다. Secrets Manager를 사용하면 AWS, 서드 파티 서비스 및 온프레미스에 있는 리소스에 액세스하는 데 사용되는 보안 암호를 보안하고 관리할 수 있습니다. 자세한 내용은 [AWS Secrets Manager 사용 설명서](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)를 참조하세요.

EKS Capability for Argo CD를 사용하는 경우 Secrets Manager는 Argo CD 구성 및 리소스에서 민감한 데이터를 하드 코딩하지 않고도 Git 리포지토리 자격 증명을 안전하게 저장하고 검색하는 방법을 제공합니다. 이 통합은 Git 리포지토리에서 애플리케이션을 동기화하기 위해 Argo CD가 사용하는 프라이빗 리포지토리 액세스 토큰 및 SSH 키를 관리하는 데 특히 유용합니다.

## Argo CD에서 AWS Secrets Manager 사용
<a name="integration-secrets-manager-use"></a>

Argo CD의 EKS 기능을 사용하는 경우 Git 리포지토리 자격 증명을 Secrets Manager에 저장하고 이를 검색하도록 Argo CD를 구성할 수 있습니다. 이 접근 방식은 자격 증명을 Argo CD 구성에 직접 저장하거나 수명이 긴 개인 액세스 토큰을 사용하는 방법보다 더 안전합니다.

 **사전 조건**: 
+ Argo CD 기능이 활성화된 Amazon EKS 클러스터
+ AWS Secrets Manager에 저장된 Git 리포지토리 자격 증명
+ Argo CD가 Secrets Manager에 액세스하도록 구성된 IAM 권한

 **리포지토리 자격 증명에 대해 Secrets Manager를 사용하도록 Argo CD를 구성하는 방법** 

1. Secrets Manager에 Git 자격 증명을 저장하세요. 예를 들어 GitHub 개인 액세스 토큰을 저장하려면 다음을 수행하세요.

   ```
   aws secretsmanager create-secret \
     --name argocd/github-token \
     --secret-string '{"username":"git","password":"ghp_xxxxxxxxxxxx"}'
   ```

1. Argo CD 기능 역할에 보안 암호를 검색할 권한이 있는지 확인하세요.

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "secretsmanager:GetSecretValue",
           "secretsmanager:DescribeSecret"
         ],
         "Resource": "arn:aws:secretsmanager:region:account-id:secret:argocd/github-token*"
       },
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt"
         ],
         "Resource": "arn:aws:kms:region:account-id:key/*",
         "Condition": {
           "StringLike": {
             "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:region:account-id:secret:argocd/*",
             "kms:ViaService": "secretsmanager.*.amazonaws.com"
           }
         }
       }
     ]
   }
   ```
**참고**  
Secrets Manager는 AWS KMS를 사용하여 모든 보안 암호를 암호화하기 때문에 KMS 복호화 권한이 필요합니다. 조건은 `argocd/` 접두사가 있는 보안 암호로만 복호화를 제한합니다. Secrets Manager에 대해 기본 AWS 관리형 키를 사용하는 경우 이 권한으로 충분합니다. 고객 관리형 KMS 키의 경우 `Resource` 필드를 특정 키 ARN으로 업데이트하세요.

1. Secrets Manager에서 자격 증명을 사용하도록 Argo CD를 구성하세요. Secrets Manager의 보안 암호를 Argo CD에서 참조할 수 있는 Kubernetes 보안 암호와 동기화하는 방법에 대한 자세한 내용은 Argo CD 설명서의 [Secret Management](https://argo-cd.readthedocs.io/en/stable/operator-manual/secret-management/)를 참조하세요.

1. 보안 암호 ARN을 참조하는 Argo CD 리포지토리 구성을 생성하세요.

   ```
   apiVersion: v1
   kind: Secret
   metadata:
     name: private-repo
     namespace: argocd
     labels:
       argocd.argoproj.io/secret-type: repository
   stringData:
     type: git
     url: https://github.com/org/repo
     secretArn: arn:aws:secretsmanager:region:account-id:secret:argocd/github-token
   ```

Argo CD를 사용하여 리포지토리 액세스를 구성하는 방법에 대한 자세한 내용은 [리포지토리 액세스 구성](argocd-configure-repositories.md) 섹션을 참조하세요.