활성 시크릿 수정하기
활성 시크릿 수정하기
HCP Vault Radar는 코드에 유출된 시크릿을 스캔할 수 있어요.
출처: 문서
본문
인시던트 만들기
유출된 시크릿은 서비스에 대한 무단 접근으로 이어질 수 있어요. 악의적인 활동을 막기 위해 HashiCorp는 사용자가 시크릿을 순환(rotate)하고 Vault에 저장할 것을 권장해요.
- 조직의 응급 시크릿 순환 지침을 따르세요.
- 회사가 이미 HashiCorp Vault를 사용하는지 확인하세요.
Vault KVv2 시크릿 엔진에 시크릿 저장하기
이 예시는 KVv2 시크릿 엔진과 AppRole 인증 방법을 사용해요. 애플리케이션이 이미 Vault의 시크릿에 접근하도록 구성되어 있다면 기존 시크릿 엔진과 인증 방법을 사용하세요.
- 로컬 환경에 다음 환경 변수를 설정하세요.참고: Vault 네임스페이스와 플러그인 마운트 경로를 반드시 알고 있어야 해요.
VAULT_TOKEN
VAULT_ADDR
VAULT_NAMESPACE
- 시크릿을 Vault KV 버전 2 시크릿 엔진에 추가하세요.
$ vault kv put -mount=mount-path my-secret my-secret-value=secret-value
- 시크릿을 읽으세요.
$ vault kv get -mount=mount-path my-secret
- KVv2 시크릿 엔진에 접근을 허용하는 정책을 만드세요.
$ vault policy write my-policy -<<EOF
path "my-secret" {
capabilities = [ "read" ]
}
EOF
AppRole인증 방법을 활성화하세요.참고: Vault가 지원하는 다른 인증 방법에 대해 더 알아보려면 이 문서를 참고하세요.
$ vault auth enable approle
- 역할을 만들고 정책을 연결하세요.
$ vault write auth/approle/role/my-role \
token_policies=my-policy
코드에서 시크릿 제거하기
이제 시크릿이 Vault에서 사용할 수 있으므로 하드코딩된 시크릿을 소스 코드에서 제거하세요. 이 예시는 환경 변수를 사용해 Vault의 시크릿을 저장해요.
- 환경 변수
MY_SECRET을 시크릿으로 채우고 로컬 서버를 시작하세요.
$ export MY_SECRET=$(vault kv get -mount=month-path {SECRET} my-secret-value)
- 애플리케이션을 시작하세요.
$ run-my-app
- 소스에서 시크릿을 제거하고 환경 변수 MY_SECRET에 저장된 시크릿에 대한 참조를 추가하세요.
mySecret = getenv(“MY_SECRET”)``mySecret = os.getenv("MY_SECRET")``System.getProperty("MY_SECRET")
시크릿 폐기
수정 프로세스를 완료하려면 시크릿을 폐기하세요.
- 환경 변수 값이 Vault에서 온 것인지 검증하세요.
- 애플리케이션을 배포하고 테스트하세요.
- 서비스 소유자와 협력해 Vault에 저장된 시크릿을 순환하세요.
- Vault의 시크릿 값을 업데이트하세요.
$ vault kv put -mount=mount-path my-secret my-secret-value=new-value
더 알아보기 (Learn more)
- 시크릿 수정하기 — 수정 권장 사항과 우선순위를 알아봐요.
- 비활성 시크릿 수정 — 비활성 시크릿을 코드에서 제거하는 방법을 알아봐요.
- 시크릿을 Vault에 복사하기 — 유출된 시크릿을 Vault 클러스터로 복사하는 방법을 알아봐요.