이 페이지에서는 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 인증 프록시 호출을 래핑하는 것입니다.
인스턴스 연결 이름 값이 업데이트되는 시점을 감지하려면 다음과 같이 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 코드 샘플 페이지에서 제공되는 다양한 샘플을 참조하세요.