PostgreSQL용 AlloyDB에 연결
BigQuery 관리자는 AlloyDB 데이터 액세스를 위한 연결을 만들 수 있습니다. 이 연결을 통해 데이터 분석가는 AlloyDB에서 데이터를 쿼리할 수 있습니다.
AlloyDB에 연결하려면 다음 단계를 수행해야 합니다.
시작하기 전에
- BigQuery Connection API 사용 설정하기
-
AlloyDB 연결을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 BigQuery 연결 관리자 (
roles/bigquery.connectionAdmin
) 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
AlloyDB 연결 만들기
AlloyDB에 연결할 때 연결을 사용하여 데이터베이스 사용자 인증 정보를 처리하는 것이 좋습니다. 연결은 암호화되어 BigQuery 연결 서비스에 안전하게 저장됩니다. 사용자 인증 정보가 소스의 다른 데이터에 대해서도 유효하면 같은 연결을 다시 사용할 수 있습니다. 예를 들어 하나의 연결을 사용하여 AlloyDB 인스턴스의 동일한 데이터베이스를 여러 번 쿼리할 수 있습니다.
다음 옵션 중 하나를 선택하여 AlloyDB 연결을 만듭니다.
콘솔
BigQuery 페이지로 이동합니다.
탐색기 창에서
데이터 추가를 클릭합니다.데이터 추가 대화상자에서 외부 데이터 소스에 연결을 클릭합니다.
외부 데이터 소스 대화상자에서 다음 정보를 입력합니다.
- 연결 유형에서 AlloyDB를 선택합니다.
- 연결 ID에는 연결 리소스의 식별자를 입력합니다. 문자, 숫자, 밑줄을 사용할 수 있습니다. 예를 들면
bq_alloydb_connection
입니다. - 데이터 위치에서 외부 데이터 소스 리전과 호환되는 BigQuery 위치(또는 리전)를 선택합니다.
- 선택사항: 별칭에 사용자 친화적인 연결 이름(예:
My connection resource
)을 입력합니다. 사용자 친화적인 이름으로 나중에 수정해야 하는 경우 연결 리소스를 식별하는 데 도움이 되는 모든 값을 사용할 수 있습니다. - 선택사항: 설명에 이 연결 리소스에 대한 설명을 입력합니다.
- 선택사항: 암호화 고객 관리 암호화 키(CMEK)를 사용하여 사용자 인증 정보를 암호화하려면 고객 관리 암호화 키(CMEK)를 선택한 다음 고객 관리 키를 선택합니다. 그렇지 않으면 사용자 인증 정보가 기본 Google 소유 키 및 Google 관리 키로 보호됩니다.
- 데이터베이스 이름에 데이터베이스 이름을 입력합니다.
- 데이터베이스 사용자 이름에 데이터베이스의 사용자 이름을 입력합니다.
- 데이터베이스 비밀번호에 데이터베이스의 비밀번호를 입력합니다.
- 선택사항: 비밀번호를 보려면 비밀번호 표시를 클릭합니다.
AlloyDB 인스턴스의 경우 //alloydb.googleapis.com 프리픽스로 AlloyDB 기본 또는 읽기 인스턴스의 연결 URI를 입력합니다.
- 샘플 URI:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- 샘플 URI:
연결 만들기를 클릭합니다.
연결로 이동을 클릭합니다.
연결 정보 창에서 올바른 IAM 권한을 부여하기 위해 다음 단계에서 사용할 서비스 계정 ID를 복사합니다.
bq
다음 플래그와 함께 bq mk
명령어를 입력합니다.
bq mk \
--connection \
--location=LOCATION \
--project_id=PROJECT_ID \
--connector_configuration '{
"connector_id": "google-alloydb",
"asset": {
"database": "DATABASE",
"google_cloud_resource": "RESOURCE_PATH"
},
"authentication": {
"username_password": {
"username": "USERNAME",
"password": {
"plaintext": "PASSWORD"
}
}
}
}' \
CONNECTION_ID
다음을 바꿉니다.
LOCATION
: AlloyDB의 데이터와 결합할 BigQuery 데이터 세트의 리전을 지정합니다. 이 연결을 사용하는 쿼리는 이 리전에서 실행되어야 합니다.PROJECT_ID
: Google Cloud 프로젝트 ID를 입력합니다.DATABASE
: 데이터베이스 이름을 입력합니다.RESOURCE_PATH
: AlloyDB 기본 또는 읽기 인스턴스의 연결 URI를 //alloydb.googleapis.com 프리픽스로 입력합니다.- 샘플 URI:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- 샘플 URI:
USERNAME
: 데이터베이스 사용자의 이름을 입력합니다.PASSWORD
: 데이터베이스 사용자의 비밀번호를 입력합니다.CONNECTION_ID
: 이 연결을 식별하기 위한 연결 ID를 입력합니다.
API
BigQuery 연결 API 내에서 ConnectionService
내에서 CreateConnection
를 호출하여 연결을 인스턴스화할 수 있습니다. 자세한 내용은 클라이언트 라이브러리 페이지를 참조하세요.
서비스 계정에 액세스 권한 부여
프로젝트 내에서 첫 번째 연결을 만들면 서비스 계정이 자동으로 생성됩니다. 서비스 계정의 이름은 BigQuery Connection Service 에이전트입니다. 서비스 계정 ID의 형식은 다음과 같습니다.
service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
AlloyDB에 연결하려면 BigQuery가 사용자를 대신하여 데이터에 액세스할 수 있도록 새 연결 액세스 권한을 AlloyDB에 부여해야 합니다. 이 서비스 계정에는 다음 권한이 있어야 합니다.
alloydb.instances.connect
연결과 관련된 서비스 계정에 이 권한이 이미 할당된 AlloyDB 클라이언트 IAM 역할을 부여할 수 있습니다. 서비스 계정에 이미 필요한 권한이 있으면 이 단계를 생략할 수 있습니다.
콘솔
IAM 및 관리자 페이지로 이동합니다.
액세스 권한 부여를 클릭합니다.
주 구성원 추가 대화상자가 열립니다.
새 주 구성원 필드에 서비스 계정 이름 BigQuery Connection Service 에이전트 또는 연결 정보에서 가져온 서비스 계정 ID를 입력합니다.
역할 선택 필드에서 AlloyDB를 선택한 후 AlloyDB 클라이언트를 선택합니다.
저장을 클릭합니다.
gcloud
gcloud projects add-iam-policy-binding
명령어를 사용합니다.
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/alloydb.client
다음 값을 제공합니다.
PROJECT_ID
: Google Cloud 프로젝트 IDSERVICE_ACCOUNT_ID
:service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
의 프로젝트 번호를 바꾸고 사용합니다.
사용자와 연결 공유
데이터를 쿼리하고 연결을 관리할 수 있도록 사용자에게 다음 역할을 부여할 수 있습니다.
roles/bigquery.connectionUser
: 사용자가 연결을 사용하여 외부 데이터 소스에 연결하고 쿼리를 실행할 수 있습니다.roles/bigquery.connectionAdmin
: 사용자가 연결을 관리할 수 있습니다.
BigQuery의 IAM 역할과 권한에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.
다음 옵션 중 하나를 선택합니다.
콘솔
BigQuery 페이지로 이동합니다.
이러한 연결은 프로젝트의 외부 연결 그룹에 나열됩니다.
탐색기 창에서 프로젝트 이름 > 외부 연결 > 연결을 클릭합니다.
세부정보 창에서 공유를 클릭하여 연결을 공유합니다. 다음 작업을 수행합니다.
연결 권한 대화상자에서 주 구성원을 추가하거나 수정하여 다른 주 구성원과 연결을 공유합니다.
저장을 클릭합니다.
bq
다음 set-iam-policy
명령어를 사용하세요.
bq set-iam-policy RESOURCE FILE_NAME
다음을 바꿉니다.
RESOURCE
:project_id.region.connection_id
또는region.connection_id
형식으로 리소스 이름을 입력합니다.FILE_NAME
: IAM 정책이 포함된 파일 이름을 JSON 형식으로 입력합니다.
set-iam-policy 명령어에 대한 자세한 내용은 IAM으로 리소스 액세스 제어를 참조하세요.
API
BigQuery 연결 REST API 참조 섹션의 projects.locations.connections.setIAM
메서드를 사용하고 policy
리소스의 인스턴스를 지정합니다.
다음 단계
- 다양한 연결 유형 알아보기
- 연결 관리 알아보기
- 통합 쿼리 알아보기
- AlloyDB 데이터 쿼리 방법 알아보기