feat: 시크릿 관리를 External Secrets + AWS Secrets Manager로 전환 (#55)#56
Merged
Conversation
- terraform/external-secrets.tf: ESO용 IRSA 역할(dgu-cap/* 시크릿 읽기 최소권한) + External Secrets Operator Helm 설치(차트 0.10.7 고정)
- k8s overlays/eks/secretstore: ClusterSecretStore(aws-secretsmanager) — IRSA SA(jwt)로 Secrets Manager 인증
- k8s overlays/eks/{backend,ai}: ExternalSecret로 dgu-cap/backend, dgu-cap/ai에서 추출해 backend-secret/ai-secret 생성
- k8s/apps/secretstore.yaml: ClusterSecretStore용 ArgoCD App (sync-wave -1로 ExternalSecret보다 선행)
- README: ESO 운영 가이드 추가, 기존 SealedSecrets는 (구) 표기
로컬(kind)은 Secrets Manager 미접근으로 기존 수동 방식 유지(eks overlay 전용).
실제 시크릿 등록은 운영자가 Secrets Manager에 직접 수행.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
closes #55
개요
K8s 시크릿(
backend-secret,ai-secret)을 External Secrets Operator(ESO) + AWS Secrets Manager로 GitOps화한다. 비밀값은 git에 남지 않고 Secrets Manager에만 보관, ESO는 IRSA로 읽기 권한만 갖는다. (기존: 평문 secret.yaml은 gitignore되어 ArgoCD가 시크릿을 못 만들어 Pod 기동 실패하던 문제 해결)변경
terraform
external-secrets.tf신규secretsmanager:GetSecretValue/DescribeSecret/ListSecretVersionIds를dgu-cap/*로 최소권한 스코프0.10.7고정,installCRDs, 컨트롤러 SA에 role-arn 주입)k8s (eks overlay 전용)
overlays/eks/secretstore/—ClusterSecretStore(aws-secretsmanager), IRSA SA(jwt)로 인증overlays/eks/backend/externalsecret.yaml,overlays/eks/ai/externalsecret.yaml—dgu-cap/backend,dgu-cap/ai에서dataFrom.extract로 추출 →backend-secret/ai-secret생성kustomization.yaml에 ExternalSecret 추가apps/secretstore.yaml— ClusterSecretStore용 ArgoCD App (sync-wave: -1로 ExternalSecret보다 선행)문서
README.md— ESO 운영 가이드 추가, Secrets Manager 등록 예시, 기존 SealedSecrets는 (구) 표기배포 후 운영자 작업 (필수)
ESO는 시크릿을 읽기만 한다. 값 등록은 직접:
키 이름이 그대로 Pod 환경변수가 된다. 회전은
put-secret-value→ ESO가 1h 내 자동 반영.비고 / 범위
kubectl create secret유지(ExternalSecret은 eks overlay에만).sealed-secrets설치는 본 PR에서 제거하지 않음(후속 정리).terraform fmt통과, 매니페스트 YAML 검증 완료. (로컬에 kustomize/kubectl 없어kustomize build실검증은 클러스터 환경에서 권장)🤖 Generated with Claude Code