VPC 서비스 제어 경계 내 비공개 엔드포인트에서 보호된 리소스에 액세스 허용

공유 VPC 아키텍처에서 호스트 프로젝트의 네트워크는 서비스 프로젝트와 공유됩니다. 최근까지는 이러한 프로젝트를 서로 다른 경계로 분리할 수 없었습니다. 비공개 IP 주소 기반 인그레스 및 이그레스 규칙이 도입됨에 따라 이제 호스트 프로젝트와 서비스 프로젝트를 별도의 경계에 배치하면서 이러한 규칙을 통해 제어된 액세스를 유지할 수 있습니다.

참조 아키텍처

서비스 정책에서 사용되는 속성은 다음과 같습니다.

  • VPC 서비스 제어 경계
  • Access Context Manager 비공개 IP 주소
  • 인그레스 및 이그레스 규칙

네트워킹 구성요소에서 이 아키텍처는 Private Service Connect 엔드포인트를 사용하여 Google API에 액세스합니다.

VPC 서비스 제어를 사용하여 서비스 경계를 만드는 아키텍처 다이어그램

이 참조 아키텍처에서는 인그레스 및 이그레스 규칙과 비공개 IP 주소가 다음 서비스 경계 및 프로젝트의 Compute Engine 인스턴스와 Vertex AI API 간의 액세스를 제어하는 데 사용됩니다.

경계 경계 내 프로젝트
aiml-host-perimeter aiml-host-project
high-trust-svc-perimeter ph-fm-svc-project-1
low-trust-svc-perimeter ph-fm-svc-project-2, ph-fm-svc-project-3

각 서비스 프로젝트의 자체 Compute Engine 인스턴스에서 Vertex AI API에 대한 액세스는 VPC 서비스 제어 인그레스 및 이그레스 규칙에 의해 제어됩니다. 이러한 규칙은 비공개 IP 주소로 구성된 Access Context Manager 액세스 수준을 사용하여 각 서비스 프로젝트와 공유된 서브넷이 각 경계에 액세스하도록 허용합니다.

선택사항: 조직의 공개 트래픽에 대한 액세스 수준 만들기

최종 사용자가Google Cloud 콘솔을 통해 Vertex AI에 액세스해야 하는 경우 이 섹션의 안내에 따라 VPC 서비스 제어에서 사용할 액세스 수준을 만듭니다. 그러나 비공개 소스 (예: 온프레미스용 비공개 Google 액세스가 있는 온프레미스 또는 Cloud Workstations)에서 API에 엄격하게 프로그래매틱 방식으로 액세스하는 경우에는 액세스 수준이 필요하지 않습니다.

이 참조 아키텍처에서는 조직 직원 트래픽이Google Cloud 콘솔에 액세스할 수 있도록 CIDR 범위 corp-public-block을 사용합니다.

Access Context Manager를 사용하면 Google Cloud 조직 관리자가 Google Cloud의 리소스에 대한 세분화된 속성 기반 액세스 제어를 정의할 수 있습니다.

액세스 수준에서는 요청 처리에 대한 요구사항을 설명합니다. 예를 들면 다음과 같습니다.

  • 기기 유형 및 운영체제(Chrome Enterprise Premium 라이선스 필요)
  • IP 주소
  • 위치정보
  • 사용자 ID

조직에서 Access Context Manager를 처음 사용하는 경우 관리자는 액세스 수준 및 서비스 경계의 컨테이너인 액세스 정책을 정의해야 합니다. 방법은 다음과 같습니다.

  1. Google Cloud 콘솔 상단에 있는 프로젝트 선택기에서 모두 탭을 클릭한 후 조직을 선택합니다.
  2. 기본 액세스 수준 만들기 페이지의 안내에 따라 기본 액세스 수준을 만듭니다. 다음 옵션을 지정합니다.
    1. 조건 만들기에서 기본 모드를 선택합니다.
    2. 액세스 수준 제목 필드에 corp-public-block을 입력합니다.
    3. 조건 섹션의 조건 충족 시 반환할 값 옵션에서 TRUE를 선택합니다.
    4. IP 서브네트워크에서 공개 IP를 선택합니다.
    5. IP 주소 범위의 경우 VPC 서비스 제어 경계에 대한 액세스가 필요한 외부 CIDR 범위를 지정합니다.

VPC 서비스 제어 서비스 경계 빌드

서비스 경계를 만들 때 경계 외부에서 보호된 서비스에 대한 액세스를 허용하는 한 가지 방법은 액세스 수준을 만드는 것입니다(예: IP 주소 사용). 이 참조 아키텍처에 다음과 같이 인그레스 및 이그레스 규칙을 사용하여 Vertex AI API 및 Compute Engine API 통신에 대한 액세스를 제어하는 서비스 경계가 여러 개 생성됩니다.

  • 서비스 프로젝트 ph-fm-svc-project-1에 속한 컴퓨팅 리소스의 서브넷은 aiml-host-project에서 ph-fm-svc-project-1의 Vertex AI API 및 Compute Engine API에 액세스할 수 있습니다.
  • 서비스 프로젝트 ph-fm-svc-project-2ph-fm-svc-project-3에 속한 컴퓨팅 리소스의 서브넷은 aiml-host-project에서 프로젝트 ph-fm-svc-project-2 및 프로젝트 ph-fm-svc-project-3의 Vertex AI API 및 Compute Engine API에 액세스할 수 있습니다.

각 서비스 프로젝트는 호스트 프로젝트의 Compute Engine API에 액세스할 수 있습니다. 이는 특정 서비스 프로젝트에서 컴퓨팅 리소스가 생성될 때 호스트 프로젝트와 서비스 프로젝트 간에 양방향 흐름이 발생하기 때문입니다.

이 참조 아키텍처에는 인그레스 및 이그레스 규칙을 사용하여 호스트 프로젝트 경계와 각 서비스 프로젝트 경계 간에 필요한 흐름을 허용하는 각 서브넷의 액세스 수준이 생성됩니다.

gce-subnet-1 액세스 수준 만들기

  1. Google Cloud 콘솔 상단에 있는 프로젝트 선택기에서 모두 탭을 클릭한 후 조직을 선택합니다.
  2. 기본 액세스 수준 만들기 페이지의 안내에 따라 기본 액세스 수준을 만듭니다. 다음 옵션을 지정합니다.
    1. 조건 만들기에서 기본 모드를 선택합니다.
    2. 액세스 수준 제목 필드에 gce-subnet-1을 입력합니다.
    3. 조건 섹션의 조건 충족 시 반환할 값 옵션에서 TRUE를 선택합니다.
    4. IP 서브네트워크에서 비공개 IP를 선택합니다.
    5. VPC 네트워크를 선택하고 프로젝트를 식별한 후 VPC 이름을 선택합니다.
    6. IP 서브네트워크에서 호스트 프로젝트가 ph-fm-svc-project-1과 공유한 서브넷을 나타내는 CIDR 범위를 선택합니다.

gce-subnet-2 액세스 수준 만들기

  1. Google Cloud 콘솔 상단에 있는 프로젝트 선택기에서 모두 탭을 클릭한 후 조직을 선택합니다.
  2. 기본 액세스 수준 만들기 페이지의 안내에 따라 기본 액세스 수준을 만듭니다. 다음 옵션을 지정합니다.
    1. 조건 만들기에서 기본 모드를 선택합니다.
    2. 액세스 수준 제목 필드에 gce-subnet-2을 입력합니다.
    3. 조건 섹션의 조건 충족 시 반환할 값 옵션에서 TRUE를 선택합니다.
    4. IP 서브네트워크에서 비공개 IP를 선택합니다.
    5. VPC 네트워크를 선택하고 프로젝트를 식별한 후 VPC 이름을 선택합니다.
    6. IP 서브네트워크에서 호스트 프로젝트가 ph-fm-svc-project-2와 공유한 서브넷을 나타내는 CIDR 범위를 선택합니다.

gce-subnet-3 액세스 수준 만들기

  1. Google Cloud 콘솔 상단에 있는 프로젝트 선택기에서 모두 탭을 클릭한 후 조직을 선택합니다.
  2. 기본 액세스 수준 만들기 페이지의 안내에 따라 기본 액세스 수준을 만듭니다. 다음 옵션을 지정합니다.
    1. 조건 만들기에서 기본 모드를 선택합니다.
    2. 액세스 수준 제목 필드에 gce-subnet-3을 입력합니다.
    3. 조건 섹션의 조건 충족 시 반환할 값 옵션에서 TRUE를 선택합니다.
    4. IP 서브네트워크에서 비공개 IP를 선택합니다.
    5. VPC 네트워크를 선택하고 프로젝트를 식별한 후 VPC 이름을 선택합니다.
    6. IP 서브네트워크에서 호스트 프로젝트가 ph-fm-svc-project-3과 공유한 서브넷을 나타내는 CIDR 범위를 선택합니다.

aiml-host-perimeter 구성 단계

새 경계의 구성 유형 선택

이 섹션에서는 테스트 실행 모드에서 VPC 서비스 제어(aiml-host-perimeter) 서비스 경계를 만듭니다. 테스트 실행 모드에서는 경계가 시행된 것처럼 위반사항을 로깅하지만 제한된 서비스에 대한 액세스를 차단하지 않습니다. 시행 모드로 전환하기 전에 테스트 실행 모드를 사용하는 것이 좋습니다.

  1. Google Cloud 콘솔 탐색 메뉴에서 보안을 클릭한 후 VPC 서비스 제어를 클릭합니다.

    보안으로 이동

  2. 메시지가 표시되면 조직, 폴더, 프로젝트를 선택합니다.

  3. VPC 서비스 제어 페이지에서 테스트 실행 모드를 클릭합니다.

  4. 새 경계를 클릭합니다.

  5. 새 VPC 서비스 경계 탭의 경계 이름 상자에 경계 이름을 입력합니다(예: aiml-host-perimeter).

    경계 이름은 최대 50자(영문 기준)이고 문자로 시작해야 하며 ASCII 라틴 문자(a-z, A-Z), 숫자(0-9), 밑줄 (_)만 포함할 수 있습니다. 경계 이름은 대소문자를 구분하며 액세스 정책 내에서 고유해야 합니다.

  6. 경계 기본 설정을 수락합니다.

보호할 리소스 선택

  1. 보호할 리소스를 클릭합니다.
  2. 경계 내에서 보호하려는 프로젝트나 VPC 네트워크를 추가하려면 다음을 수행합니다.
    1. 리소스 추가를 클릭합니다.
    2. 프로젝트를 경계에 추가하려면 리소스 추가 창에서 프로젝트 추가를 클릭합니다.
      1. 추가할 프로젝트를 선택합니다(이 경우 aiml-host-project).
      2. 선택한 리소스 추가를 클릭합니다. 추가된 프로젝트는 프로젝트 섹션에 표시됩니다.

제한된 서비스 선택

이 참조 아키텍처에서는 제한된 API 범위가 제한되어 Vertex AI에 필요한 API만 사용 설정됩니다. 하지만 권장사항으로, 경계를 만들 때는 모든 서비스를 제한하여 Google Cloud 서비스에서 데이터 무단 반출 위험을 완화하는 것이 좋습니다.

경계 내에서 보호할 서비스를 선택하려면 다음 단계를 따르세요.

  1. 제한된 서비스를 클릭합니다.
  2. 제한된 서비스 창에서 서비스 추가를 클릭합니다.
  3. 제한할 서비스 지정 대화상자에서 Compute Engine API를 선택합니다.
  4. Compute Engine API 추가를 클릭합니다.

선택사항: VPC 액세스 가능 서비스 선택

VPC 액세스 가능 서비스 설정은 서비스 경계 내 네트워크 엔드포인트에서 액세스할 수 있는 서비스 집합을 제한합니다. 이 참조 아키텍처에서는 기본 설정인 모든 서비스를 유지합니다.

선택사항: 액세스 수준 선택

이전 섹션에서 기업 CIDR 액세스 수준을 만든 경우 다음 단계를 수행하여 경계 외부에서 보호된 리소스에 액세스하도록 허용합니다.

  1. 액세스 수준을 클릭합니다.
  2. 액세스 수준 선택 상자를 클릭합니다.

    경계가 생성된 후에 액세스 수준을 추가할 수도 있습니다.

  3. 액세스 수준에 해당하는 체크박스를 선택합니다. (이 참조 아키텍처에서는 corp-public-block입니다.)

인그레스 정책 구성

호스트 프로젝트는 서비스 프로젝트와 공유되는 서브넷이 포함된 VPC 네트워크를 소유하므로 특정 서비스 프로젝트에서 컴퓨팅 리소스가 생성될 때 호스트 프로젝트와 서비스 프로젝트 간에 양방향 통신이 발생합니다. 이 섹션에서는 세 가지 서비스 프로젝트 모두에서 이러한 흐름을 위해 호스트 프로젝트의 컴퓨팅 리소스에 액세스하도록 허용하는 인그레스 규칙을 구성합니다.

  1. 왼쪽 메뉴에서 인그레스 정책을 클릭합니다.
  2. 규칙 추가를 클릭합니다.
  3. 인그레스 규칙 창에서 다음을 수행합니다.
    1. FROM 속성에서 API 클라이언트의 다음 FROM 속성을 선택합니다.
      1. ID: 모든 ID
      2. 소스: 프로젝트(ph-fm-svc-project-1, ph-fm-svc-project-2, ph-fm-svc-project-3)
    2. TO 속성에서 Google Cloud서비스 및 리소스의 다음 TO 속성을 선택합니다.
      1. 프로젝트: 모든 프로젝트
      2. 서비스: 선택한 서비스
      3. 선택된 서비스: Compute Engine API
      4. 메서드: 모든 메서드

이그레스 정책 구성

이 섹션에서는 두 가지 이그레스 규칙을 구성합니다.

첫 번째 이그레스 규칙

호스트 프로젝트가 ph-fm-svc-project-1과 공유된 서브넷을 소유하므로 이 서브넷이 호스트 프로젝트 경계에서 ph-fm-svc-project-1 경계에 액세스하도록 허용하려면 이그레스 규칙이 필요합니다. 기업 액세스 수준을 사용하면 최종 사용자가 구성된 액세스 수준을 사용하여 서비스 프로젝트에 컴퓨팅 리소스를 만들 때 컴퓨팅 인스턴스 생성에 필요한 양방향 통신을 사용 설정할 수 있습니다.

  1. 왼쪽 메뉴에서 이그레스 정책을 클릭합니다.
  2. 규칙 추가를 클릭합니다.
  3. 이그레스 규칙 창에서 다음을 수행합니다.
    1. FROM 속성에서 API 클라이언트의 다음 FROM 속성을 선택합니다.
      1. ID: 모든 ID
      2. 액세스 수준 이그레스 소스 사용 설정을 선택합니다.
      3. 액세스 수준 corp-public-blockgce-subnet-1
    2. TO 속성에서 Google Cloud서비스 및 리소스의 다음 TO 속성을 선택합니다.
      1. 프로젝트: 선택한 프로젝트
      2. 프로젝트 추가: ph-fm-svc-project-1
      3. 서비스: 모든 서비스

두 번째 이그레스 규칙

호스트 프로젝트는 ph-fm-svc-project-2ph-fm-svc-project-3과 공유된 서브넷을 소유하므로 이러한 서브넷이 호스트 프로젝트 경계에서 서비스 프로젝트 경계에 액세스하도록 허용하려면 이그레스 규칙이 필요합니다. 기업 액세스 수준을 사용하면 최종 사용자가 구성된 액세스 수준을 사용하여 서비스 프로젝트에 컴퓨팅 리소스를 만들 때 컴퓨팅 인스턴스 생성에 필요한 양방향 통신을 사용 설정할 수 있습니다.

  1. 왼쪽 메뉴에서 이그레스 정책을 클릭합니다.
  2. 규칙 추가를 클릭합니다.
  3. 이그레스 규칙 창에서 다음을 수행합니다.
    1. FROM 속성에서 API 클라이언트의 다음 FROM 속성을 선택합니다.
      1. ID: 모든 ID
      2. 액세스 수준 이그레스 소스 사용 설정을 선택합니다.
      3. 액세스 수준 corp-public-block, gce-subnet-2, gce-subnet-3
    2. TO 속성에서 Google Cloud서비스 및 리소스의 다음 TO 속성을 선택합니다.
      1. 프로젝트: 선택한 프로젝트
      2. 프로젝트 추가: ph-fm-svc-project-2, ph-fm-svc-project-3
      3. 서비스: 모든 서비스

경계 만들기

위 구성 단계를 완료한 후 경계 만들기를 클릭하여 경계를 만듭니다.

high-trust-svc-perimeter 구성 단계

새 경계의 구성 유형 선택

  1. Google Cloud 콘솔 탐색 메뉴에서 보안을 클릭한 후 VPC 서비스 제어를 클릭합니다.

    보안으로 이동

  2. 메시지가 표시되면 조직, 폴더, 프로젝트를 선택합니다.

  3. VPC 서비스 제어 페이지에서 테스트 실행 모드를 클릭합니다.

  4. 새 경계를 클릭합니다.

  5. 새 VPC 서비스 경계 탭의 경계 이름 상자에 경계 이름을 입력합니다(예: high-trust-svc-perimeter).

    경계 이름은 최대 50자(영문 기준)이고 문자로 시작해야 하며 ASCII 라틴 문자(a-z, A-Z), 숫자(0-9), 밑줄 (_)만 포함할 수 있습니다. 경계 이름은 대소문자를 구분하며 액세스 정책 내에서 고유해야 합니다.

  6. 경계 기본 설정을 수락합니다.

보호할 리소스 선택

  1. 보호할 리소스를 클릭합니다.
  2. 경계 내에서 보호하려는 프로젝트나 VPC 네트워크를 추가하려면 다음을 수행합니다.
    1. 리소스 추가를 클릭합니다.
    2. 프로젝트를 경계에 추가하려면 리소스 추가 창에서 프로젝트 추가를 클릭합니다.
      1. 추가할 프로젝트를 선택합니다(이 경우 ph-fm-svc-project-1).
      2. 선택한 리소스 추가를 클릭합니다. 추가된 프로젝트는 프로젝트 섹션에 표시됩니다.

제한된 서비스 선택

이 참조 아키텍처에서는 제한된 API의 범위가 제한되어 Gemini에 필요한 API만 사용 설정됩니다. 하지만 권장사항으로, 경계를 만들 때는 모든 서비스를 제한하여 Google Cloud 서비스에서 데이터 무단 반출 위험을 완화하는 것이 좋습니다.

경계 내에서 보호할 서비스를 선택하려면 다음 단계를 따르세요.

  1. 제한된 서비스를 클릭합니다.
  2. 제한된 서비스 창에서 서비스 추가를 클릭합니다.
  3. 제한할 서비스 지정 대화상자에서 Compute Engine API를 선택합니다.
  4. Compute Engine API 추가를 클릭합니다.
  5. 제한된 서비스 창에서 서비스 추가를 클릭합니다.
  6. 제한할 서비스 지정 대화상자에서 Vertex AI API를 선택합니다.
  7. Vertex AI API 추가를 클릭합니다.

선택사항: VPC 액세스 가능 서비스 선택

VPC 액세스 가능 서비스 설정은 서비스 경계 내 네트워크 엔드포인트에서 액세스할 수 있는 서비스 집합을 제한합니다. 이 참조 아키텍처에서는 기본 설정인 모든 서비스를 유지합니다.

선택사항: 액세스 수준 선택

이전 섹션에서 기업 CIDR 액세스 수준을 만든 경우 다음 단계를 수행하여 경계 외부에서 보호된 리소스에 액세스하도록 허용합니다.

  1. 액세스 수준을 클릭합니다.
  2. 액세스 수준 선택 상자를 클릭합니다.

    경계가 생성된 후에 액세스 수준을 추가할 수도 있습니다.

  3. 액세스 수준에 해당하는 체크박스를 선택합니다. (이 참조 아키텍처에서는 corp-public-block입니다.)

인그레스 정책 구성

호스트 프로젝트가 ph-fm-svc-project-1과 공유하는 서브넷을 소유하므로 서브넷이 호스트 프로젝트에서 ph-fm-svc-project-1 경계에 액세스하도록 허용하려면 인그레스 규칙이 필요합니다. 이렇게 하면 ph-fm-svc-project-1 컴퓨팅 인스턴스가 ph-fm-svc-project-1 내 관리형 서비스에 액세스할 수 있습니다.

  1. 왼쪽 메뉴에서 인그레스 정책을 클릭합니다.
  2. 규칙 추가를 클릭합니다.
  3. 인그레스 규칙 창에서 다음을 수행합니다.
    1. FROM 속성에서 API 클라이언트의 다음 FROM 속성을 선택합니다.
      1. ID: 모든 ID
      2. 소스: 액세스 수준
      3. 액세스 수준: gce-subnet-1
    2. TO 속성에서 Google Cloud서비스 및 리소스의 다음 TO 속성을 선택합니다.
      1. 프로젝트: 모든 프로젝트
      2. 서비스: 모든 서비스

이그레스 정책 구성

호스트 프로젝트가 ph-fm-svc-project-1과 공유하는 서브넷을 소유하므로 서비스 프로젝트에 컴퓨팅 리소스가 생성될 때 서비스 프로젝트와 호스트 프로젝트 간에 발생하는 양방향 통신을 허용하려면 이그레스 규칙이 필요합니다.

  1. 왼쪽 메뉴에서 이그레스 정책을 클릭합니다.
  2. 규칙 추가를 클릭합니다.
  3. 이그레스 규칙 창에서 다음을 수행합니다.
    1. FROM 속성에서 API 클라이언트의 다음 FROM 속성을 선택합니다.
      1. ID: 모든 ID
    2. TO 속성에서 Google Cloud서비스 및 리소스의 다음 TO 속성을 선택합니다.
      1. 프로젝트: 선택한 프로젝트
      2. 프로젝트 추가: aiml-host-project
      3. 서비스: 선택한 서비스
      4. 선택된 서비스: Compute Engine API
      5. 메서드: 모든 메서드

경계 만들기

위 구성 단계를 완료한 후 경계 만들기를 클릭하여 경계를 만듭니다.

low-trust-svc-perimeter 구성 단계

새 경계의 구성 유형 선택

  1. Google Cloud 콘솔 탐색 메뉴에서 보안을 클릭한 후 VPC 서비스 제어를 클릭합니다.

    보안으로 이동

  2. 메시지가 표시되면 조직, 폴더, 프로젝트를 선택합니다.

  3. VPC 서비스 제어 페이지에서 테스트 실행 모드를 클릭합니다.

  4. 새 경계를 클릭합니다.

  5. 새 VPC 서비스 경계 탭의 경계 이름 상자에 경계 이름을 입력합니다(예: low-trust-svc-perimeter).

    경계 이름은 최대 50자(영문 기준)이고 문자로 시작해야 하며 ASCII 라틴 문자(a-z, A-Z), 숫자(0-9), 밑줄 (_)만 포함할 수 있습니다. 경계 이름은 대소문자를 구분하며 액세스 정책 내에서 고유해야 합니다.

  6. 경계 기본 설정을 수락합니다.

보호할 리소스 선택

  1. 보호할 리소스를 클릭합니다.
  2. 경계 내에서 보호하려는 프로젝트나 VPC 네트워크를 추가하려면 다음을 수행합니다.
    1. 리소스 추가를 클릭합니다.
    2. 프로젝트를 경계에 추가하려면 리소스 추가 창에서 프로젝트 추가를 클릭합니다.
      1. 추가할 프로젝트를 선택합니다. 이 참조 아키텍처의 경우 다음을 선택합니다.
        • ph-fm-svc-project-2
        • ph-fm-svc-project-3
      2. 선택한 리소스 추가를 클릭합니다. 추가된 프로젝트는 프로젝트 섹션에 표시됩니다.

제한된 서비스 선택

이 참조 아키텍처에서는 제한된 API의 범위가 제한되어 Gemini에 필요한 API만 사용 설정됩니다. 하지만 권장사항으로, 경계를 만들 때는 모든 서비스를 제한하여 Google Cloud 서비스에서 데이터 무단 반출 위험을 완화하는 것이 좋습니다.

경계 내에서 보호할 서비스를 선택하려면 다음 단계를 따르세요.

  1. 제한된 서비스를 클릭합니다.
  2. 제한된 서비스 창에서 서비스 추가를 클릭합니다.
  3. 제한할 서비스 지정 대화상자에서 Compute Engine API를 선택합니다.
  4. Compute Engine API 추가를 클릭합니다.
  5. 제한된 서비스 창에서 서비스 추가를 클릭합니다.
  6. 제한할 서비스 지정 대화상자에서 Vertex AI API를 선택합니다.
  7. Vertex AI API 추가를 클릭합니다.

선택사항: VPC 액세스 가능 서비스 선택

VPC 액세스 가능 서비스 설정은 서비스 경계 내 네트워크 엔드포인트에서 액세스할 수 있는 서비스 집합을 제한합니다. 이 참조 아키텍처에서는 기본 설정인 모든 서비스를 유지합니다.

선택사항: 액세스 수준 선택

이전 섹션에서 기업 CIDR 액세스 수준을 만든 경우 다음 단계를 수행하여 경계 외부에서 보호된 리소스에 액세스하도록 허용합니다.

  1. 액세스 수준을 클릭합니다.
  2. 액세스 수준 선택 상자를 클릭합니다.

    경계가 생성된 후에 액세스 수준을 추가할 수도 있습니다.

  3. 액세스 수준에 해당하는 체크박스를 선택합니다. (이 참조 아키텍처에서는 corp-public-block입니다.)

인그레스 정책 구성

호스트 프로젝트는 ph-fm-svc-project-2ph-fm-svc-project-3과 공유하는 서브넷을 소유하므로 이러한 서브넷에 호스트 프로젝트의 서비스 프로젝트 경계에 대한 액세스 권한을 부여하려면 인그레스 규칙이 필요합니다. 이렇게 하면 이러한 서비스 프로젝트의 컴퓨팅 인스턴스가 ph-fm-svc-project-2ph-fm-svc-project-3 내 관리형 서비스에 액세스할 수 있습니다.

  1. 왼쪽 메뉴에서 인그레스 정책을 클릭합니다.
  2. 규칙 추가를 클릭합니다.
  3. 인그레스 규칙 창에서 다음을 수행합니다.
    1. FROM 속성에서 API 클라이언트의 다음 FROM 속성을 선택합니다.
      1. ID: 모든 ID
      2. 소스: 액세스 수준
      3. 액세스 수준: gce-subnet-2, gce-subnet-3
    2. TO 속성에서 Google Cloud서비스 및 리소스의 다음 TO 속성을 선택합니다.
      1. 프로젝트: 모든 프로젝트
      2. 서비스: 모든 서비스

이그레스 정책 구성

호스트 프로젝트가 ph-fm-svc-project-2ph-fm-svc-project-3과 공유하는 서브넷을 소유하므로 서비스 프로젝트에 컴퓨팅 리소스가 생성될 때 서비스 프로젝트와 호스트 프로젝트 간에 발생하는 양방향 통신을 허용하려면 이그레스 규칙이 필요합니다.

  1. 왼쪽 메뉴에서 이그레스 정책을 클릭합니다.
  2. 규칙 추가를 클릭합니다.
  3. 이그레스 규칙 창에서 다음을 수행합니다.
    1. FROM 속성에서 API 클라이언트의 다음 FROM 속성을 선택합니다.
      1. ID: 모든 ID
    2. TO 속성에서 Google Cloud서비스 및 리소스의 다음 TO 속성을 선택합니다.
      1. 프로젝트: 선택한 프로젝트
      2. 프로젝트 추가: aiml-host-project
      3. 서비스: 선택한 서비스
      4. 선택된 서비스: Compute Engine API
      5. 메서드: 모든 메서드

경계 만들기

위 구성 단계를 완료한 후 경계 만들기를 클릭하여 경계를 만듭니다.

네트워크 구성

Private Service Connect 엔드포인트를 사용하여 Google API에 액세스

비공개 Google 액세스 또는 Google API용 공개 도메인 이름의 대안으로 Private Service Connect를 사용하여 Google API에 액세스할 수 있습니다. 이 경우 프로듀서는 Google입니다.

Private Service Connect를 사용하면 다음을 수행할 수 있습니다.

  • 다양한 사용 사례에 대해 Google API에 액세스할 수 있도록 내부 IP 주소를 하나 이상 만들 수 있습니다.
  • Google API에 액세스할 때 온프레미스 트래픽을 특정 IP 주소와 리전으로 전달할 수 있습니다.
  • Google API를 확인하는 데 사용할 커스텀 엔드포인트 DNS 이름을 만들 수 있습니다.

참조 아키텍처에서는 IP 주소가 192.168.10.2restricted라는 Private Service Connect Google API 엔드포인트가 대상 VPC 서비스 제어와 함께 배포되며 이는 VPC 서비스 제어 경계에 구성된 제한된 서비스에 액세스할 수 있도록 가상 IP(VIP)로 사용됩니다. Private Service Connect 엔드포인트는 호스트 프로젝트인 aiml-host-project에 배포됩니다.

Compute Engine 인스턴스에서 Gemini Pro에 액세스

Private Service Connect 엔드포인트를 만들면 서비스 디렉터리에서 p.googleapis.com 비공개 영역에 DNS 레코드를 만듭니다. 레코드는 엔드포인트 IP 주소를 가리키며 Vertex AI API에 액세스하는 데 사용되는 정규화된 도메인 이름(LOCATION-aiplatform-restricted.p.googleapis.com)과 동일한 SERVICE-ENDPOINT.p.googleapis.com 형식을 사용합니다.

네트워크 구성 유효성 검사

서비스 프로젝트에 배포된 Compute Engine 인스턴스에서 다음 절차를 수행하여 Vertex AI API를 업데이트해 정규화된 커스텀 도메인 이름을 사용하고 유효성 검사를 수행합니다.

  1. 다음과 같이 Python 환경 변수를 초기화합니다.

    PROJECT_ID="ph-fm-svc-project-1"
    LOCATION_ID="us-central1"
    API_ENDPOINT="us-central1-aiplatform-restricted.p.googleapis.com"
    MODEL_ID="gemini-2.0-flash-exp"
    GENERATE_CONTENT_API="streamGenerateContent"
    
  2. 텍스트 편집기를 사용하여 다음 JSON이 포함된 request.json 파일을 만듭니다.

    {
      "contents": [
        {
          "role": "user",
          "parts": [
            {
              "text": "what weight more 1kg feathers vs 1kg stones"
            }
          ]
        }
      ],
      "generationConfig": {
        "temperature": 1,
        "maxOutputTokens": 8192,
        "topP": 0.95,
        "seed": 0
      },
      "safetySettings": [
        {
          "category": "HARM_CATEGORY_HATE_SPEECH",
          "threshold": "OFF"
        },
        {
          "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
          "threshold": "OFF"
        },
        {
          "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
          "threshold": "OFF"
        },
        {
          "category": "HARM_CATEGORY_HARASSMENT",
          "threshold": "OFF"
        }
      ]
    }
    
  3. Vertex AI Gemini API에 다음 cURL 요청을 보냅니다.

    curl \
    -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://${API_ENDPOINT}/v1/projects/${PROJECT_ID}/locations/${LOCATION_ID}/publishers/google/models/${MODEL_ID}:${GENERATE_CONTENT_API}" -d '@request.json'
    

테스트 실행 모드에서 경계 검증

이 참조 아키텍처에서 서비스 경계는 테스트 실행 모드로 구성되므로 시행하지 않고도 액세스 정책의 효과를 테스트할 수 있습니다. 즉, 정책이 활성화된 경우 환경에 미치는 영향을 확인할 수 있지만 합법적인 트래픽이 중단될 위험은 없습니다.

테스트 실행 모드에서 경계를 검증하는 방법을 알아보려면 VPC 서비스 제어 테스트 실행 로깅 동영상 YouTube 동영상을 시청하세요.

테스트 실행 모드에서 경계를 검증한 후 시행 모드로 전환합니다.