Looker(Google Cloud 핵심 서비스)의 비공개 IP 연결 만들기

비공개 IP 연결을 사용하면 인터넷을 통하지 않거나 외부 IP 주소를 사용하지 않고도 서비스에 연결할 수 있습니다. 비공개 IP를 통한 연결은 인터넷을 통과하지 않으므로 일반적으로 지연 시간이 짧고 공격 벡터가 제한됩니다. 비공개 IP 연결을 사용하면 Looker(Google Cloud 핵심 서비스) 인스턴스가 가상 프라이빗 클라우드(VPC)의 다른 리소스와 통신할 수 있지만 공개 인터넷에서 인바운드 통신을 할 수 없습니다.

비공개 IP 연결은 일부 Looker(Google Cloud 핵심 서비스) 기능과 호환되지 않습니다. 자세한 내용은 기능 호환성 표를 참조하세요.

Looker(Google Cloud 핵심 서비스)는 다음 기준을 충족하는 인스턴스에 대해 비공개 IP를 지원합니다.

비공개 IP 인스턴스를 설정하려면 다음 IAM 권한이 있어야 합니다.

시작하기 전에

  1. 할당된 IP 주소 범위를 만들고 비공개 연결을 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 네트워크 관리자(roles/compute.networkAdmin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

    이 사전 정의된 역할에는 할당된 IP 주소 범위를 만들고 비공개 연결을 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

    필수 권한

    할당된 IP 주소 범위를 만들고 비공개 연결을 관리하려면 다음 권한이 필요합니다.

    • 네트워크 드롭다운에서 사용 가능한 네트워크 확인:
      • compute.addresses.list
      • compute.globalAddresses.list
    • 새 VPC 네트워크 만들기:
      • compute.addresses.create
      • compute.globalAddresses.create
      • serviceusage.services.enable
    • 비공개 IP 범위를 할당하고 비공개 서비스 액세스 연결 설정: compute.networks.addPeering

    커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

    Terraform 또는 Google Cloud CLI를 사용하여 비공개 IP 인스턴스를 만들고 이미 설정된 비공개 네트워크를 사용하는 경우에는 이러한 권한이 필요하지 않습니다.

  2. Google Cloud 콘솔에서 프로젝트에 대해 Compute Engine API를 사용 설정합니다. API를 사용 설정할 때 API가 사용 설정되었는지 확인하기 위해 콘솔 페이지를 새로고침해야 할 수 있습니다.

    API 사용 설정

VPC 네트워크 만들기 및 구성

비공개 IP 연결을 만들려면 먼저 가상 프라이빗 클라우드(VPC) 네트워크를 만들고 구성해야 합니다.

  1. 프로젝트에서 VPC 네트워크를 만듭니다. 또는 새 VPC 네트워크를 만드는 대신 공유 VPC를 사용하는 경우 공유 VPC에 대해 이 섹션의 나머지 단계도 완료하는 것과 더불어 다음 섹션인 공유 VPC에서 인스턴스 만들기 섹션의 단계를 완료하세요.
  2. Looker(Google Cloud 핵심 서비스)에 대한 비공개 연결을 위해 VPC에서 IPv4 IP 범위(CIDR 블록)를 할당합니다.
    • 범위를 할당하기 전에 제약조건을 고려하세요.
    • IP 주소 범위 크기를 설정할 때 최소 크기는 /22 블록이라는 점에 유의하세요.
    • Looker(Google Cloud 핵심 서비스)는 내부적으로(즉, 조직 내에서) 사용되기 위해 할당되는 IP 주소를 지정하는 RFC 1918 내의 모든 IPv4 범위를 지원하며 인터넷에서 라우팅되지 않습니다. 구체적으로 다음과 같습니다.
      • 10.0.0.0/8
      • 172.16.0.0/12
      • 192.168.0.0/16
    • 클래스 E IPv4 범위(240.0.0.0/4)는 RFC 5735RFC 1112에 명시된 대로 나중에 사용하도록 예약되어 있으며 Looker(Google Cloud 핵심 서비스)에서 지원되지 않습니다.
    Looker(Google Cloud 핵심 서비스) 인스턴스가 VPC에서 처음 생성되면 Looker가 프록시 전용 서브넷을 만듭니다. 동일한 VPC의 모든 후속 비공개 IP Looker(Google Cloud 핵심 서비스) 인스턴스는 동일한 서브넷을 사용합니다.
  3. 지정된 할당에 대해 이전 단계에서 할당된 IP 범위를 사용하여 VPC 네트워크에 비공개 서비스 액세스 연결을 추가합니다.
  4. VPC 네트워크가 생성되면 Google Cloud 프로젝트의 Looker 인스턴스 만들기 페이지로 돌아갑니다. VPC 네트워크가 인식되도록 페이지를 새로고침해야 할 수 있습니다.

위의 단계를 완료하면 Looker(Google Cloud 핵심 서비스) 인스턴스 만들기 문서 페이지의 시작하기 전에 섹션부터 시작하여 안내에 따라 인스턴스를 만들 수 있습니다.

공유 VPC에서 인스턴스 만들기

공유 VPC에서 Looker(Google Cloud 핵심 서비스) 인스턴스를 만드는 경우 공유 VPC의 호스트 프로젝트에서 다음 절차를 완료하세요.

  1. Google Cloud 콘솔의 공유 VPC 호스트 프로젝트에서 Looker API를 사용 설정합니다. API를 사용 설정할 때는 API가 사용 설정되었는지 확인하기 위해 콘솔 페이지를 새로고침해야 할 수 있습니다.

    API 사용 설정

  2. gcloud services identity create 명령어를 사용하여 공유 VPC의 호스트 프로젝트에서 서비스 계정을 만듭니다.

    gcloud beta services identity create --service=looker.googleapis.com --project=SHARED_HOST_PROJECT_ID
    

    SHARED_HOST_PROJECT_ID를 공유 VPC의 호스트 프로젝트로 바꿉니다.

  3. 호스트 프로젝트의 서비스 계정에 compute.globalAddresses.get IAM 권한을 부여합니다.

서비스 계정을 만들고 IAM 권한을 부여한 후, 서비스 계정 및 권한이 적용될 때까지 몇 분 정도 기다립니다.

또한 공유 VPC에서 IPv4 IP 범위를 할당하고 이전 VPC 네트워크 만들기 및 구성에 설명된 대로 비공개 서비스 액세스 연결을 공유 VPC에 추가합니다.

인스턴스 생성 중 네트워크 구성

인스턴스를 만드는 동안 비공개 IP를 구성하려면 다음 옵션 중 하나를 선택합니다.

콘솔

인스턴스를 만드는 동안 비공개 IP만 선택하거나 비공개 IP공개 IP를 모두 선택한 경우 다음을 사용하여 구성을 완료합니다.

  1. 필수 API 사용 설정 팝업이 표시되면 Google Cloud 프로젝트에 추가 API를 사용 설정해야 합니다. 비공개 네트워크 연결에 필요한 API를 사용 설정하려면 모두 사용을 클릭합니다.
  2. 네트워크 드롭다운에서 VPC 네트워크를 선택합니다. 비공개 IP 네트워크에는 서비스가 내부 IP 주소를 사용하여 독점적으로 통신할 수 있도록 하는 비공개 서비스 액세스 연결이 필요합니다. 비공개 IP 연결 설정에 대한 자세한 내용은 비공개 서비스 액세스 구성 문서 페이지를 참조하세요. VPC 네트워크를 만들 때 비공개 서비스 연결을 설정하지 않은 경우 비공개 서비스 액세스 연결 필요 메시지에서 연결 설정을 클릭할 수 있습니다. 그러면 IP 범위를 할당하고 연결을 만들 수 있는 측면 패널이 열립니다.
  3. 할당된 IP 범위에서 Google이 Looker(Google Cloud 핵심 서비스) 인스턴스의 서브네트워크를 프로비저닝할 VPC 내의 IP 주소 범위를 선택할 수 있습니다. 서브네트워크는 VPC 네트워크의 다른 리소스에서 사용할 수 없는 IP 범위를 예약합니다. Looker(Google Cloud 핵심 서비스) 인스턴스를 만든 후에는 이 IP 범위를 수정할 수 없습니다. IP 범위 할당에는 다음 옵션이 포함됩니다.
    • Google에서 자동으로 VPC를 할당하여 VPC의 서브네트워크를 프로비저닝하도록 하려면 자동으로 할당된 IP 범위 사용을 선택합니다.
    • 비공개 서비스 액세스 설정 중에 정의된 IP 범위를 선택합니다.
  4. 인스턴스 생성을 완료하고 만들기를 클릭하여 인스턴스를 만듭니다

gcloud

  gcloud looker instances create INSTANCE_NAME \
  --project=PROJECT_ID \
  --oauth-client-id=OAUTH_CLIENT_ID \
  --oauth-client-secret=OAUTH_CLIENT_SECRET \
  --region=REGION \
  --edition=EDITION \
  --consumer-network=CONSUMER_NETWORK --private-ip-enabled --reserved-range=RESERVED_RANGE
  [--no-public-ip-enabled]
  [--public-ip-enabled]

다음을 바꿉니다.

  • INSTANCE_NAME: Looker(Google Cloud 핵심 서비스) 인스턴스의 이름입니다. 인스턴스 URL과 연결되어 있지 않습니다.
  • PROJECT_ID: Looker(Google Cloud 핵심 서비스) 인스턴스를 만드는 Google Cloud 프로젝트의 이름입니다.
  • OAUTH_CLIENT_IDOAUTH_CLIENT_SECRET: OAuth 클라이언트를 설정할 때 만든 OAuth 클라이언트 ID 및 OAuth 암호입니다. 인스턴스가 생성되면 OAuth 클라이언트의 승인된 리디렉션 URI 섹션에 인스턴스의 URL을 입력합니다.
  • REGION: Looker(Google Cloud 핵심 서비스) 인스턴스가 호스팅되는 리전입니다. 구독 계약의 리전에 해당하는 리전을 선택하세요. 사용 가능한 리전은 Looker(Google Cloud 핵심 서비스) 위치 문서 페이지에 나열되어 있습니다.
  • EDITION: 인스턴스의 버전입니다. 가능한 값은 core-standard-annual, core-enterprise-annual 또는 core-embed-annual입니다. 인스턴스를 만든 후에는 버전을 변경할 수 없습니다. 버전을 변경하려면 가져오기 및 내보내기를 사용하여 Looker(Google Cloud 핵심 서비스) 인스턴스 데이터를 다른 버전으로 구성된 새 인스턴스로 이동할 수 있습니다.
  • CONSUMER_NETWORK: VPC 네트워크 또는 공유 VPC입니다. 비공개 IP 인스턴스를 만드는 경우 설정해야 합니다.
  • RESERVED_RANGE: Google에서 Looker(Google Cloud 핵심 서비스) 인스턴스의 서브네트워크를 프로비저닝할 VPC 내의 IP 주소 범위입니다. 비공개 IP 인스턴스를 만드는 경우 설정해야 합니다.

다음 플래그를 포함할 수 있습니다.

  • --private-ip-enabled는 비공개 IP를 사용 설정합니다.
  • --public-ip-enabled는 공개 IP를 사용 설정합니다.
  • --no-public-ip-enabled는 공개 IP를 사용 중지합니다.

인스턴스 생성 후 인스턴스 구성

비공개 IP에만 사용 설정된 인스턴스를 만들면 인스턴스 URL이 수신되지 않습니다. 인스턴스에 액세스하려면 다음 두 가지 작업을 모두 수행해야 합니다.

또한 다음을 수행하여 비공개 IP 인스턴스를 추가로 구성할 수 있습니다.

  • VPC 서비스 제어를 사용하는 경우 기본 경로를 삭제합니다.
  • 이메일 도메인 허용 목록을 만들어 이메일 전송을 외부 도메인으로 제한합니다.
  • 비공개 IP 인스턴스를 구성하여 인터넷 또는 외부 리소스와의 통신을 허용하거나 제한합니다.

다음 단계