활성 시크릿 수정하기

활성 시크릿 수정하기

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)