Private Service Connect로 비공개 인스턴스 만들기

이 페이지에서는 Cloud Data Fusion에서 Private Service Connect를 구성하는 방법을 설명합니다.

Cloud Data Fusion의 Private Service Connect 정보

Cloud Data Fusion 인스턴스는 온프레미스, Google Cloud, 기타 클라우드 제공업체에 있는 리소스에 연결해야 합니다. Cloud Data Fusion과 내부 IP 주소를 사용할 때 외부 리소스에 대한 연결은 Google Cloud 프로젝트의 가상 프라이빗 클라우드(VPC) 네트워크를 통해 설정됩니다. 네트워크 트래픽은 공개 인터넷을 통해 전달되지 않습니다. VPC 피어링을 사용해서 VPC 네트워크에 대한 액세스 권한을 Cloud Data Fusion에 제공할 때는 대규모 네트워크를 사용할 때 특히 명백한 한계가 있습니다.

Cloud Data Fusion은 VPC 피어링을 사용하지 않고 Private Service Connect 인터페이스를 사용해서 VPC에 연결합니다. Private Service Connect 인터페이스는 Cloud Data Fusion이 소비자 VPC 네트워크에 대해 비공개 및 보안 연결을 시작할 수 있게 해주는 일종의 Private Service Connect입니다. 이러한 연결은 VPC 피어링과 같은 유연성 및 쉬운 액세스뿐만 아니라 Private Service Connect가 제공하는 명시적인 승인 및 소비자 측면의 제어까지 가능하게 해줍니다.

다음은 Private Service Connect 인터페이스가 Cloud Data Fusion에 배포되는 방식을 보여주는 다이어그램입니다.

Private Service Connect 인터페이스 배포.

그림 1. Private Service Connect 인터페이스 배포

그림 1 설명:

  • Cloud Data Fusion을 실행하는 가상 머신(VM)은 Google 소유의 테넌트 프로젝트에 호스팅됩니다. 소비자 VPC의 리소스에 액세스하기 위해 Cloud Data Fusion VM은 소비자 서브넷에서 Private Service Connect 네트워크 인터페이스가 할당한 IP 주소를 사용합니다. 이 서브넷은 Cloud Data Fusion에 사용되는 네트워크 연결에 추가됩니다.

  • Private Service Connect 인터페이스에서 시작되는 IP 패킷은 동일한 서브넷의 VM에서 시작되는 것과 비슷하게 취급됩니다. 이 구성을 사용하면 Cloud Data Fusion이 프록시 없이도 소비자 VPC 또는 피어 VPC의 리소스에 직접 액세스할 수 있습니다.

  • 온프레미스 리소스에는 상호 연결을 통해 도달할 수 있지만 인터넷 리소스는 소비자 VPC에 Cloud NAT가 사용 설정되었을 때 액세스할 수 있습니다.

  • Private Service Connect에서 인그레스 또는 이그레스를 관리하기 위해서는 방화벽 규칙을 구현할 수 있습니다.

주요 이점

다음은 Private Service Connect에서 Cloud Data Fusion을 사용할 때의 주요 이점에 대한 설명입니다.

  • IP 공간 제어 향상. Cloud Data Fusion이 네트워크 연결을 위해 사용하는 IP 주소를 제어합니다. Cloud Data Fusion에 할당되는 IP 주소의 서브넷을 선택합니다. Cloud Data Fusion의 모든 트래픽에는 구성된 서브넷의 소스 IP 주소가 포함됩니다.

    Private Service Connect를 사용하면 소비자 VPC에서 IP 주소를 예약할 필요가 없습니다. VPC 피어링을 위해서는 Cloud Data Fusion 인스턴스당 /22 CIDR 블록(1024 IP 주소)이 필요합니다.

  • 보안 및 격리 향상. 네트워크 연결을 구성하여 네트워크에 액세스할 수 있는 서비스를 제어합니다.

  • 간소화된 Cloud Data Fusion 인스턴스 설정. 고객 VPC당 한 번만 네트워크 연결을 만듭니다. 인터넷, 피어 VPC 또는 온프레미스 리소스에 연결하기 위해 프록시 VM을 사용할 필요가 없습니다.

주요 개념

이 섹션에서는 Cloud Data Fusion의 Private Service Connect와 관련된 개념을 설명합니다.

네트워크 연결

네트워크 연결은 VPC의 리소스에 액세스하기 위해 Cloud Data Fusion이 비공개 방식으로 네트워크 연결을 사용 및 설정하도록 승인하는 데 사용되는 리전별 리소스입니다. 자세한 내용은 네트워크 연결 정보를 참조하세요.

공유 VPC

다음은 공유 VPC의 Private Service Connect 인터페이스 사용 사례입니다.

  • 네트워크 또는 인프라팀이 호스트 프로젝트의 서브넷을 소유합니다. 이들은 애플리케이션 팀이 자신의 서비스 프로젝트에서 해당 서브넷을 사용하도록 허용합니다.

  • 애플리케이션팀은 서비스 프로젝트의 네트워크 연결을 소유합니다. 네트워크 연결은 네트워크 연결에 링크된 서브넷에 연결할 수 있는 Cloud Data Fusion 테넌트 프로젝트를 정의합니다.

서비스 프로젝트에서 네트워크 연결을 만들 수 있습니다. 네트워크 연결에 사용되는 서브넷은 호스트 프로젝트에만 있을 수 있습니다.

다음 다이어그램은 이 사용 사례를 보여줍니다.

공유 VPC에서 Private Service Connect 인터페이스의 사용 사례

그림 2. 공유 VPC에서 Private Service Connect 인터페이스의 사용 사례

그림 2 설명:

  • 네트워크 연결은 서비스 프로젝트에 있습니다. 네트워크 연결은 호스트 프로젝트에서 공유 VPC에 속하는 서브넷을 사용합니다.

  • Cloud Data Fusion 인스턴스는 서비스 프로젝트에 있으며, 비공개 연결을 설정하기 위해 서비스 프로젝트의 네트워크 연결을 사용합니다.

  • Cloud Data Fusion 인스턴스에는 공유 VPC의 서브넷에서 IP 주소가 할당됩니다.

시작하기 전에

  • Private Service Connect는 Cloud Data Fusion 버전 6.10.0 이상에서만 사용할 수 있습니다.

  • 새 Cloud Data Fusion 인스턴스를 만들 때만 Private Service Connect를 사용 설정할 수 있습니다. Private Service Connect를 사용하도록 기존 인스턴스를 마이그레이션할 수는 없습니다.

가격 책정

Private Service Connect를 통한 데이터 인그레스 및 이그레스는 비용이 부과됩니다. 자세한 내용은 Private Service Connect 가격 책정을 참조하세요.

필수 역할 및 권한

Cloud Data Fusion 인스턴스 및 네트워크 연결을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 Identity and Access Management(IAM) 역할을 부여해 달라고 요청하세요.

Cloud Data Fusion이 네트워크 구성을 검증하는 데 필요한 권한을 얻으려면 관리자에게 Cloud Data Fusion 서비스 에이전트(service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com 형식)에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 네트워크 연결과 관련된 VPC의 경우: Compute 네트워크 뷰어(roles/compute.networkViewer)

  • Cloud Data Fusion이 네트워크 연결 목록의 프로듀서 수락 목록에 테넌트 프로젝트를 추가하는 경우:

    • compute.networkAttachments.get
    • compute.networkAttachments.update
    • compute.networkAttachments.list

    이러한 권한이 포함된 가장 제한적인 역할은 Compute 네트워크 관리자(roles/compute.networkAdmin) 역할입니다. 이러한 권한은 Cloud Data Fusion API 서비스 에이전트(roles/datafusion.serviceAgent) 역할의 일부이며 Cloud Data Fusion 서비스 에이전트에 자동으로 부여됩니다. 따라서 서비스 에이전트 역할 부여가 명시적으로 삭제되지 않은 한 추가 작업이 필요하지 않습니다.

역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

커스텀 역할 또는 기타 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

Cloud Data Fusion에서 액세스 제어 옵션에 대한 자세한 내용은 IAM으로 액세스 제어를 참조하세요.

VPC 또는 공유 VPC 네트워크 만들기

VPC 네트워크 또는 공유 VPC 네트워크를 만들었는지 확인합니다.

Private Service Connect 구성

Cloud Data Fusion에서 Private Service Connect를 구성하려면 먼저 네트워크 연결을 만들고 Private Service Connect로 Cloud Data Fusion 인스턴스를 만들어야 합니다.

네트워크 연결 만들기

네트워크 연결은 서브네트워크 집합을 제공합니다. 네트워크 연결을 만들려면 다음 단계를 수행합니다.

콘솔

  1. Google Cloud 콘솔에서 네트워크 연결 페이지로 이동합니다.

    네트워크 연결로 이동

  2. 네트워크 연결 만들기를 클릭합니다.

  3. 이름 필드에 네트워크 연결 이름을 입력합니다.

  4. 네트워크 목록에서 VPC 또는 공유 VPC 네트워크를 선택합니다.

  5. 리전 목록에서 Google Cloud 리전을 선택합니다. 이 리전은 Cloud Data Fusion 인스턴스와 동일해야 합니다.

  6. 서브네트워크 목록에서 서브네트워크 범위를 선택합니다.

  7. 연결 환경설정에서 선택한 프로젝트의 연결 수락을 선택합니다.

    Cloud Data Fusion은 Cloud Data Fusion 인스턴스를 만들 때 수락된 프로젝트 목록에 Cloud Data Fusion 테넌트 프로젝트를 자동으로 추가합니다.

  8. 수락된 프로젝트 또는 거부된 프로젝트를 추가하지 마세요.

  9. 네트워크 연결 만들기를 클릭합니다.

    네트워크 연결 만들기

gcloud

  1. 서브네트워크를 하나 이상 만듭니다. 예를 들면 다음과 같습니다.

    gcloud compute networks subnets create subnet-1 --network=network-0 --range=10.10.1.0/24 --region=REGION
    

    네트워크 연결은 이후 단계에서 이러한 서브네트워크를 사용합니다.

  2. connection-preference 속성을 ACCEPT_MANUAL로 설정하여 Cloud Data Fusion 인스턴스와 동일한 리전에 네트워크 연결 리소스를 만듭니다.

    gcloud compute network-attachments create NAME
    --region=REGION
    --connection-preference=ACCEPT_MANUAL
    --subnets=SUBNET
    

    다음을 바꿉니다.

    • NAME: 네트워크 연결의 이름
    • REGION: Google Cloud 리전의 이름. 이 리전은 Cloud Data Fusion 인스턴스와 동일해야 합니다.
    • SUBNET: 서브넷의 이름

    이 명령어 출력은 다음 형식의 네트워크 연결 URL입니다.

    projects/PROJECT/locations/REGION/network-attachments/NETWORK_ATTACHMENT_ID.

    Cloud Data Fusion에서 연결에 필요하므로 이 URL을 기록해 둡니다.

REST API

  1. 서브넷을 만듭니다.

  2. 네트워크 연결을 만듭니다.

    alias authtoken="gcloud auth print-access-token"
    NETWORK_ATTACHMENT_NAME=NETWORK_ATTACHMENT_NAME
    REGION=REGION
    SUBNET=SUBNET
    PROJECT_ID=PROJECT_ID
    
    read -r -d '' BODY << EOM
    {
      "name": "$NETWORK_ATTACHMENT_NAME",
      "description": "Network attachment for private Cloud Data Fusion",
      "connectionPreference": "ACCEPT_MANUAL",
      "subnetworks": [
        "projects/$PROJECT_ID/regions/$REGION/subnetworks/$SUBNET"
      ]
    }
    EOM
    
    curl -H "Authorization: Bearer $(authtoken)" \
    -H "Content-Type: application/json" \
    -X POST   -d "$BODY" "https://compute.googleapis.com/compute/v1/projects/$PROJECT_ID/regions/$REGION/networkAttachments"
    

    다음을 바꿉니다.

    • NETWORK_ATTACHMENT_NAME: 네트워크 연결의 이름
    • REGION: Google Cloud 리전의 이름. 이 리전은 Cloud Data Fusion 인스턴스와 동일해야 합니다.
    • SUBNET: 서브넷의 이름
    • PROJECT_ID: 프로젝트의 ID

Cloud Data Fusion 인스턴스 만들기

Cloud Data Fusion은 테넌트 프로젝트의 리소스에 대해 /25 CIDR 블록(128개 IP)을 사용합니다. 이를 연결할 수 없는 또는 예약된 범위라고 부릅니다. VPC에서 동일한 IP 주소를 사용할 수 있지만 Cloud Data Fusion VM은 이 범위를 사용하는 리소스에 연결할 수 없습니다.

대부분의 경우에는 연결할 수 없는 CIDR 블록이 기본적으로 비RFC 1918 범위(240.0.0.0/8)에 있기 때문에 문제가 되지 않습니다. 연결할 수 없는 범위를 제어하려면 고급 구성을 참조하세요.

Private Service Connect를 사용 설정하여 Cloud Data Fusion 인스턴스를 만들려면 다음 단계를 수행합니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud Data Fusion 인스턴스 페이지로 이동하고 인스턴스 만들기를 클릭합니다.

    인스턴스 만들기

  2. 인스턴스 이름 필드에 새 인스턴스의 이름을 입력합니다.

  3. 설명 필드에 인스턴스에 대한 설명을 입력합니다.

  4. 리전 목록에서 인스턴스를 만들려는 Google Cloud 리전을 선택합니다.

  5. 버전 목록에서 6.10 이상을 선택합니다.

  6. 버전을 선택합니다. 여러 다른 버전의 가격 책정에 대한 자세한 내용은 Cloud Data Fusion 가격 책정 개요를 참조하세요.

  7. 고급 옵션을 확장하고 다음을 수행합니다.

    1. 비공개 IP 사용 설정을 선택합니다.

    2. 연결 유형으로 Private Service Connect를 선택합니다.

    3. 네트워크 연결 섹션에서 네트워크 연결 만들기에서 만든 네트워크 연결을 선택합니다.

  8. 만들기를 클릭합니다. 인스턴스 생성 프로세스가 완료되는 데 최대 30분이 걸립니다.

    Private Service Connect를 사용하여 Cloud Data Fusion 인스턴스 만들기

REST API

다음 명령어를 실행합니다.

alias authtoken="gcloud auth print-access-token"

EDITION=EDITION
PROJECT_ID=PROJECT_ID
REGION=REGION
CDF_ID=INSTANCE_ID
NETWORK_ATTACHMENT_ID=NETWORK_ATTACHMENT_ID

read -r -d '' BODY << EOM
{
  "description": "PSC enabled instance",
  "version": "6.10",
  "type": "$EDITION",
  "privateInstance": "true",
  "networkConfig": {
    "connectionType": "PRIVATE_SERVICE_CONNECT_INTERFACES",
    "privateServiceConnectConfig": {
      "networkAttachment": "$NETWORK_ATTACHMENT_ID"
    }
  }
}
EOM

curl -H "Authorization: Bearer $(authtoken)" \
-H "Content-Type: application/json" \
-X POST   -d "$BODY" "https://datafusion.googleapis.com/v1/projects/$PROJECT_ID/locations/$REGION/instances/?instanceId=$CDF_ID"

다음을 바꿉니다.

  • EDITION: Cloud Data Fusion 버전(BASIC, DEVELOPER, ENTERPRISE)
  • PROJECT_ID: 프로젝트의 ID
  • REGION: Google Cloud 리전의 이름. 이 리전은 Cloud Data Fusion 인스턴스와 동일해야 합니다.
  • INSTANCE_ID: 인스턴스의 ID
  • NETWORK_ATTACHMENT_ID: 네트워크 연결의 ID

고급 구성

서브넷 공유를 사용 설정하려면 여러 Cloud Data Fusion 인스턴스에 동일한 네트워크 연결을 제공할 수 있습니다. 반면에 특정 Cloud Data Fusion 인스턴스에 대해 전용 서브넷을 지정하려면 Cloud Data Fusion 인스턴스에 사용되는 특정 네트워크 연결을 제공해야 합니다.

권장: 모든 Cloud Data Fusion 인스턴스에 동일한 방화벽 정책을 적용하려면 동일한 네트워크 연결을 사용합니다.

Cloud Data Fusion이 연결할 수 없는 /25 CIDR 블록을 제어하려면 인스턴스를 만들 때 unreachableCidrBlock 속성을 지정합니다. 예를 들면 다음과 같습니다.

alias authtoken="gcloud auth print-access-token"

EDITION=EDITION
PROJECT_ID=PROJECT_ID
REGION=REGION
CDF_ID=INSTANCE_ID
NETWORK_ATTACHMENT_ID=NETWORK_ATTACHMENT_ID
UNREACHABLE_RANGE=UNREACHABLE_RANGE

read -r -d '' BODY << EOM
{
  "description": "PSC enabled instance",
  "version": "6.10",
  "type": "$EDITION",
  "privateInstance": "true",
  "networkConfig": {
    "connectionType": "PRIVATE_SERVICE_CONNECT_INTERFACES",
    "unreachableCidrBlock": "$UNREACHABLE_RANGE"
    "privateServiceConnectConfig": {
      "networkAttachment": "projects/$PROJECT_ID/regions/$REGION/networkAttachments/$NETWORK_ATTACHMENT_ID"
    }
  }
}
EOM

curl -H "Authorization: Bearer $(authtoken)" \
-H "Content-Type: application/json" \
-X POST -d "$BODY" "https://datafusion.googleapis.com/v1/projects/$PROJECT_ID/locations/$REGION/instances/?instanceId=$CDF_ID"

다음을 바꿉니다.

  • EDITION: Cloud Data Fusion 버전(BASIC, DEVELOPER, ENTERPRISE)
  • PROJECT_ID: 프로젝트의 ID
  • REGION: Google Cloud 리전의 이름. 이 리전은 Cloud Data Fusion 인스턴스와 동일해야 합니다.
  • INSTANCE_ID: 인스턴스의 ID
  • NETWORK_ATTACHMENT_ID: 네트워크 연결의 ID
  • UNREACHABLE_RANGE: 연결할 수 없는 범위(예: 10.0.0.0/25)

보안

이 섹션에서는 Cloud Data Fusion과 소비자 간의 보안을 설명합니다.

Cloud Data Fusion 소비자 보안

Private Service Connect 인터페이스는 VPC 내에서 Cloud Data Fusion이 액세스할 수 있는 대상을 제어하기 위한 이그레스 방화벽 규칙을 지원합니다. 자세한 내용은 프로듀서-소비자 인그레스 제한을 참조하세요.

Cloud Data Fusion 소비자 보안

Private Service Connect 인터페이스를 사용하는 Cloud Data Fusion VM은 VPC에서 시작되고 응답 패킷이 아닌 트래픽을 차단합니다.