이 페이지에서는 Secret Manager와 함께 PostgreSQL용 AlloyDB를 사용하여 민감한 액세스 정보를 저장하는 방법을 설명합니다.
민감한 정보를 안전하게 처리하는 것은 안전한 개발 워크플로를 만드는 데 필수적인 부분입니다. AlloyDB의 경우 Secret Manager에서 만드는 민감한 정보를 보안 비밀로 저장하는 것이 좋습니다. 보안 비밀에는 기밀 시스템에 액세스하는 데 사용할 수 있는 API 키, 비밀번호, 민감한 정보, 사용자 인증 정보가 포함됩니다.
개요
Secret Manager는 편의성을 제공하고 보안을 향상시킵니다. 또한 보안 비밀에 버전 관리를 적용하고 팀에서 공유할 수 있습니다. 팀과 보안 비밀을 공유하는 방법에 대한 자세한 내용은 IAM으로 액세스 제어를 참고하세요.
사용자 이름 및 비밀번호
Secret Manager를 사용하여 AlloyDB 사용자 계정의 사용자 이름과 비밀번호를 보안 비밀로 저장하면 민감한 정보를 안전하고 안정적으로 관리할 수 있습니다.
먼저 AlloyDB에서 사용자를 만듭니다. 이 경우 사용자 이름과 비밀번호를 제공해야 합니다. AlloyDB에서 사용자를 만드는 방법에 대한 자세한 내용은 기본 제공 인증으로 PostgreSQL 사용자 관리를 참고하세요.
사용자를 만든 후 Secret Manager에 보안 비밀을 만들어 사용자 이름과 비밀번호를 저장하면 민감한 정보의 손실을 방지할 수 있습니다. Secret Manager에서 보안 비밀을 만들고 액세스하는 방법에 관한 자세한 내용은 보안 비밀 만들기를 참고하세요.
리전 간 복제본 시나리오
기본 AlloyDB 클러스터에 장애가 발생하면 보조 클러스터를 승격할 수 있습니다. 보조 클러스터가 기본 클러스터가 된 후에는 이 승격이 반영되도록 인스턴스 연결 이름을 업데이트해야 합니다. 인스턴스 이름이 보안 비밀에 저장된 경우 보안 비밀을 새 기본 클러스터의 이름으로 업데이트해야 합니다. 자세한 내용은 보안 비밀 수정을 참고하세요.
장애 조치에 Secret Manager를 사용하는 한 가지 방법은 기본 클러스터의 이름을 보안 비밀에 저장한 후 Secret Manager를 폴링하는 스크립트에 AlloyDB Auth Proxy 호출을 래핑하는 것입니다.
인스턴스 연결 이름 값이 언제 업데이트되는지 감지하려면 AlloyDB 인증 프록시를 사용한 다음 새 값으로 다시 시작하세요.
#!/bin/bash
SECRET_ID="my-secret-id" # TODO(developer): replace this value
REFRESH_INTERVAL=5
PORT=5432 # TODO(developer): change this port as needed
# Get the latest version of the secret and start the proxy
INSTANCE=$(gcloud secrets versions access "latest" --secret="$SECRET_ID")
alloydb-auth-proxy $INSTANCE --port=$PORT &
PID=$!
# Every 5s, get the latest version of the secret. If it's changed, restart the
# proxy with the new value.
while true; do
sleep $REFRESH_INTERVAL
NEW=$(gcloud secrets versions access "latest" --secret="$SECRET_ID")
if [ "$INSTANCE" != "$NEW" ]; then
INSTANCE=$NEW
kill $PID
wait $PID
alloydb-auth-proxy $INSTANCE --port=$PORT &
PID=$!
fi
done
기본 복제본의 인스턴스 연결 이름이 포함된 보안 비밀을 만들고 액세스하는 방법에 대한 자세한 내용은 Secret Manager를 사용하여 보안 비밀 만들기 및 액세스를 참고하세요. AlloyDB 인증 프록시 사용에 대한 자세한 내용은 AlloyDB 인증 프록시를 사용하여 연결을 참고하세요.
다음 단계
- Secret Manager를 개발 환경과 통합하는 방법은 모든 Secret Manager 코드 샘플 페이지에서 제공되는 다양한 샘플을 참고하세요.