AWS Secrets Manager를 사용하여 애플리케이션 보안 암호 관리 - Amazon EKS

이 페이지 개선에 도움 주기

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

AWS Secrets Manager를 사용하여 애플리케이션 보안 암호 관리

AWS Secrets Manager를 사용하면 전체 수명 주기 동안 자격 증명, API 키 및 기타 보안 암호에 손쉽게 액세스하고 이를 관리 및 교체할 수 있습니다. Secrets Manager를 사용하면 AWS, 서드 파티 서비스 및 온프레미스에 있는 리소스에 액세스하는 데 사용되는 보안 암호를 보안하고 관리할 수 있습니다. 자세한 내용은 AWS Secrets Manager 사용 설명서를 참조하세요.

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

Argo CD에서 AWS Secrets Manager 사용

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"}'
  2. 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으로 업데이트하세요.

  3. Secrets Manager에서 자격 증명을 사용하도록 Argo CD를 구성하세요. Secrets Manager의 보안 암호를 Argo CD에서 참조할 수 있는 Kubernetes 보안 암호와 동기화하는 방법에 대한 자세한 내용은 Argo CD 설명서의 Secret Management를 참조하세요.

  4. 보안 암호 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를 사용하여 리포지토리 액세스를 구성하는 방법에 대한 자세한 내용은 리포지토리 액세스 구성 섹션을 참조하세요.