PostgreSQL용 AlloyDB에 연결

BigQuery 관리자는 AlloyDB 데이터 액세스를 위한 연결을 만들 수 있습니다. 이 연결을 통해 데이터 분석가는 AlloyDB에서 데이터를 쿼리할 수 있습니다.

AlloyDB에 연결하려면 다음 단계를 실행해야 합니다.

  1. AlloyDB 연결을 만듭니다.

  2. 서비스 계정에 액세스 권한을 부여합니다.

시작하기 전에

  1. BigQuery Connection API 사용 설정하기

    API 사용 설정하기

  2. AlloyDB 연결을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 BigQuery 연결 관리자 (roles/bigquery.connectionAdmin) 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

    커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

AlloyDB 연결 만들기

AlloyDB에 연결할 때 연결을 사용하여 데이터베이스 사용자 인증 정보를 처리하는 것이 좋습니다. 연결은 암호화되어 BigQuery 연결 서비스에 안전하게 저장됩니다. 사용자 인증 정보가 소스의 다른 데이터에 대해서도 유효하면 같은 연결을 다시 사용할 수 있습니다. 예를 들어 하나의 연결을 사용하여 AlloyDB 인스턴스에서 동일한 데이터베이스를 여러 번 쿼리할 수 있습니다.

다음 옵션 중 하나를 선택하여 AlloyDB 연결을 만듭니다.

콘솔

  1. BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 탐색기 창에서 추가를 클릭합니다.

  3. 추가 대화상자에서 외부 데이터 소스에 연결을 클릭합니다.

  4. 외부 데이터 소스 대화상자에서 다음 정보를 입력합니다.

    • 연결 유형에서 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
  5. 연결 만들기를 클릭합니다.

  6. 연결로 이동을 클릭합니다.

  7. 연결 정보 창에서 올바른 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
  • USERNAME: 데이터베이스 사용자의 이름을 입력합니다.
  • PASSWORD: 데이터베이스 사용자의 비밀번호를 입력합니다.
  • CONNECTION_ID: 이 연결을 식별할 연결 ID를 입력합니다.

API

BigQuery 연결 API 내에서 ConnectionService 내에서 CreateConnection를 호출하여 연결을 인스턴스화할 수 있습니다. 자세한 내용은 클라이언트 라이브러리 페이지를 참조하세요.

서비스 계정에 액세스 권한 부여

프로젝트 내에서 첫 번째 연결을 만들면 서비스 계정이 자동으로 생성됩니다. 서비스 계정의 이름은 BigQuery Connection Service Agent입니다. 서비스 계정 ID의 형식은 다음과 같습니다.

service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com

AlloyDB에 연결하려면 BigQuery가 사용자를 대신하여 데이터에 액세스할 수 있도록 새 연결에 AlloyDB에 대한 액세스 권한을 부여해야 합니다. 이 서비스 계정에는 다음 권한이 있어야 합니다.

  • alloydb.instances.connect

이미 이 권한이 할당된 AlloyDB 클라이언트 IAM 역할을 연결된 서비스 계정에 부여할 수 있습니다. 서비스 계정에 이미 필요한 권한이 있으면 이 단계를 생략할 수 있습니다.

콘솔

  1. IAM 및 관리자 페이지로 이동합니다.

    IAM 및 관리자로 이동

  2. 액세스 권한 부여를 클릭합니다.

    주 구성원 추가 대화상자가 열립니다.

  3. 새 주 구성원 필드에 서비스 계정 이름 BigQuery Connection Service 에이전트 또는 연결 정보에서 가져온 서비스 계정 ID를 입력합니다.

  4. 역할 선택 필드에서 AlloyDB를 선택한 후 AlloyDB 클라이언트를 선택합니다.

  5. 저장을 클릭합니다.

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 프로젝트 ID
  • SERVICE_ACCOUNT_ID: service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com에서 프로젝트 번호를 대체하고 사용합니다.

사용자와 연결 공유

데이터를 쿼리하고 연결을 관리할 수 있도록 사용자에게 다음 역할을 부여할 수 있습니다.

  • roles/bigquery.connectionUser: 사용자가 연결을 사용하여 외부 데이터 소스에 연결하고 쿼리를 실행할 수 있습니다.

  • roles/bigquery.connectionAdmin: 사용자가 연결을 관리할 수 있습니다.

BigQuery의 IAM 역할과 권한에 대한 자세한 내용은 사전 정의된 역할 및 권한을 참조하세요.

다음 옵션 중 하나를 선택합니다.

콘솔

  1. BigQuery 페이지로 이동합니다.

    BigQuery로 이동

    이러한 연결은 프로젝트의 외부 연결 그룹에 나열됩니다.

  2. 탐색기 창에서 프로젝트 이름 > 외부 연결 > 연결을 클릭합니다.

  3. 세부정보 창에서 공유를 클릭하여 연결을 공유합니다. 다음 작업을 수행합니다.

    1. 연결 권한 대화상자에서 주 구성원을 추가하거나 수정하여 다른 주 구성원과 연결을 공유합니다.

    2. 저장을 클릭합니다.

bq

다음 set-iam-policy 명령어를 사용하세요.

  bq set-iam-policy RESOURCE FILE_NAME

다음을 바꿉니다.

  • RESOURCE: project_id.region.connection_id 또는 region.connection_id 형식으로 리소스 이름을 입력합니다.
  • FILE_NAME: JSON 형식의 IAM 정책이 포함된 파일 이름을 입력합니다.

set-iam-policy 명령어에 대한 자세한 내용은 IAM으로 리소스 액세스 제어를 참고하세요.

API

BigQuery 연결 REST API 참조 섹션의 projects.locations.connections.setIAM 메서드를 사용하고 policy 리소스의 인스턴스를 지정합니다.

다음 단계