Integration Connectors용 VPC 서비스 제어 설정

VPC 서비스 제어를 사용하면 Integration Connectors Google Cloud 서비스 주위에 보안 경계를 정의할 수 있습니다. 서비스 주위의 보안 경계를 사용하면 VPC 서비스 제어 내의 데이터를 제한하고 데이터 무단 반출 위험을 완화할 수 있습니다. VPC 서비스 제어에 대해 익숙하지 않은 경우 다음 정보를 살펴보는 것이 좋습니다.

이 문서에서는 VPC 서비스 제어 경계를 사용하여 Integration Connectors 서비스(connectors.googleapis.com)에 대한 액세스를 제한하는 방법을 설명합니다. 경계를 설정한 후 connectors.googleapis.com 서비스에 액세스할 수 있는 다른 Google Cloud 서비스나 사용자를 결정하는 정책을 구성할 수 있습니다.

고려사항

  • 연결이 Google Cloud 리소스에 연결되면 VPC 서비스 제어 경계 내에서 해당 리소스에 액세스할 수 있어야 합니다.
  • 공개 엔드포인트에 대한 기존 연결이 있는 경우 VPC 서비스 제어 경계를 설정하기 전에 이러한 연결이 PSC(Private Service Connect) 연결을 사용하여 백엔드 시스템을 연결하는지 확인합니다. PSC 연결이 없으면 VPC 서비스 제어 경계를 설정한 후에 공개 엔드포인트에 대한 기존 연결이 실패합니다.
  • 연결이 Google Cloud 리소스가 아닌 리소스에 연결되는 경우 연결 대상은 PSC 연결이어야 합니다. PSC 연결 없이 생성된 연결은 실패합니다.
  • Google Cloud 프로젝트의 VPC 서비스 제어 경계를 설정하는 경우 프로젝트에서 이벤트 구독 기능을 사용할 수 없습니다.

시작하기 전에

VPC 서비스 제어 경계를 구성하는 데 필요한 권한이 있는지 확인합니다. VPC 서비스 제어를 구성하는 데 필요한 IAM 역할 목록을 보려면 VPC 서비스 제어 문서의 IAM으로 액세스 제어를 참조하세요.

VPC 서비스 제어 경계 만들기

VPC 서비스 제어 경계를 만들기 위해 Google Cloud console, gcloud 명령어 또는 accessPolicies.servicePerimeters.create API를 사용할 수 있습니다. 자세한 내용은 서비스 경계 만들기를 참조하세요.

다음 단계에서는 gcloud 명령어를 사용하여 사용자 액세스가 사용 설정된 VPC 서비스 제어 경계를 만드는 방법을 보여줍니다.

  1. 경계에 액세스할 수 있는 사용자의 세부정보가 있는 access.yaml 파일을 만듭니다. 예를 들면 다음과 같습니다.
    - members:
        - user:USER_EMAIL
  2. 다음 명령어를 사용하여 조직의 액세스 정책 ID를 가져옵니다.
  3. gcloud access-context-manager policies list --organization=ORGANIZATION_ID

    이 명령어는 조직의 모든 정책을 나열합니다. 목록에서 VPC 서비스 제어 경계를 만들 정책을 선택합니다.

    Google Cloud 콘솔을 사용하여 조직의 리소스 ID를 볼 수 있습니다. 자세한 내용은 조직 리소스 ID 가져오기를 참조하세요.

  4. 사용자의 액세스 수준을 만듭니다.
    gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
    --title "CUSTOM_TITLE" \
    --basic-level-spec access.yaml \
    --policy=POLICY_ID

    이 명령어에서 POLICY_ID는 이전 단계에서 가져온 값입니다.

  5. Google Cloud 프로젝트의 전역 설정에서 vpcsc 속성 값을 true로 설정합니다.
    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"vpcsc": true}' \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/settings

    이 명령어는 작업 ID를 반환하고 완료하는 데 다소 시간이 걸릴 수 있는 장기 실행 작업(LRO)을 시작합니다. LRO가 완료될 때까지 기다립니다. 다음 명령어를 사용하여 작업 진행 상황을 추적할 수 있습니다.

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID
  6. VPC 서비스 제어 경계를 만들고 사용자에게 액세스 권한을 제공합니다.
    gcloud access-context-manager perimeters create PERIMETER_NAME \
    --title="PERIMETER_TITLE" \
    --resources=projects/PROJECT_ID \
    --restricted-services=connectors.googleapis.com \
    --access_levels=ACCESS_LEVEL_NAME

    이 명령어가 완료되는 데 다소 시간이 걸리며 이때 새 터미널에서 다른 태스크를 실행할 수 있습니다.

    액세스 수준을 업데이트하고 connectors.googleapis.com 서비스를 기존 경계에 추가하려면 다음 명령어를 실행합니다.
    gcloud access-context-manager perimeters update PERIMETER_NAME \
    --add-restricted-services="connectors.googleapis.com" \
    --add-access-levels=ACCESS_LEVEL_NAME \
    --policy=POLICY_ID

경계 검증

경계를 검증하려면 gcloud access-context-manager perimeters describe PERIMETER_NAME 명령어를 사용합니다. 예를 들면 다음과 같습니다.

gcloud access-context-manager perimeters describe PERIMETER_NAME

자세한 내용은 서비스 경계 관리를 참조하세요.

VPC 서비스 제어 경계에서 프로젝트를 삭제합니다.

VPC 서비스 제어 경계에서 Google Cloud 프로젝트를 삭제하려면 다음 단계를 수행합니다.

  1. Google Cloud 프로젝트의 전역 설정에서 vpcsc 속성 값을 false로 설정합니다.
    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"vpcsc": false}' \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/settings

    이 명령어는 작업 ID를 반환하고 완료하는 데 다소 시간이 걸릴 수 있는 장기 실행 작업(LRO)을 시작합니다. LRO가 완료될 때까지 기다립니다. 다음 명령어를 사용하여 작업 진행 상황을 추적할 수 있습니다.

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID
  2. VPC 서비스 제어 경계에서 프로젝트를 삭제합니다.
    gcloud access-context-manager perimeters update accessPolicies/POLICY_ID/servicePerimeters/PERIMETER_NAME

다음 단계

VPC 서비스 제어에서 데이터를 보호하는 방법 알아보기