서비스 경계 만들기

이 페이지에서는 서비스 경계를 만드는 방법을 설명합니다.

시작하기 전에

서비스 경계 만들기

이 섹션에서는 서비스 경계를 만들고 프로젝트 또는 VPC 네트워크를 경계에 추가하고 서비스를 보호하는 방법을 설명합니다.

서비스 경계를 만들 때 선택적으로 경계 외부에서 보호된 서비스에 액세스하도록 허용하고 경계 내부의 다른 서비스 및 사용자가 액세스할 수 있는 서비스를 지정할 수 있습니다. 원하는 경우 경계를 만든 후에 이러한 설정을 구성할 수 있습니다.

서비스 경계를 만들거나 기존 서비스 경계를 업데이트한 후 변경사항이 전파되고 적용되는 데까지 최대 30분이 걸릴 수 있습니다. 이 시간 동안 경계에서 Error 403: Request is prohibited by organization's policy. 오류 메시지와 함께 요청을 차단할 수 있습니다.

콘솔

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

    VPC 서비스 제어로 이동

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

  3. VPC 서비스 제어 페이지에서 경계 모드를 선택합니다. 기본적으로 시행 경계가 선택됩니다. 테스트 실행 경계를 만들려면 테스트 실행 모드를 클릭합니다.

    시행 경계는 보호된 서비스에 대한 액세스를 적극적으로 차단합니다. 테스트 실행 경계는 서비스가 보호된 것처럼 경계의 위반사항을 로깅하지만 해당 서비스에 대한 액세스를 차단하지 않습니다. 시행 경계 및 테스트 실행 모드에 대한 자세한 내용은 서비스 경계를 참조하세요.

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

  5. 새 VPC 서비스 경계 페이지의 경계 이름 상자에 경계의 이름을 입력합니다.

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

  6. 경계 내에서 보호하려는 프로젝트 또는 VPC 네트워크를 추가하려면 다음을 수행합니다.

    1. 리소스 추가를 클릭합니다.

    2. 경계에 프로젝트를 추가하려면 리소스 추가 창에서 프로젝트 추가를 클릭합니다.

      1. 프로젝트를 선택하려면 프로젝트 추가 대화상자에서 해당 프로젝트의 체크박스를 선택합니다.

      2. 선택한 리소스 추가를 클릭합니다. 추가된 프로젝트는 프로젝트 섹션에 나타납니다.

    3. 경계에 VPC 네트워크를 추가하려면 리소스 추가 창에서 VPC 네트워크 추가를 클릭합니다.

      1. 프로젝트 목록에서 VPC 네트워크가 포함된 프로젝트를 클릭합니다.
      2. VPC 네트워크를 추가하려면 리소스 추가 대화상자에서 해당 VPC 네트워크의 체크박스를 선택합니다.
      3. 선택한 리소스 추가를 클릭합니다. 추가된 네트워크가 VPC 네트워크 섹션에 표시됩니다.
  7. 경계 내에서 보호하려는 서비스를 선택하려면 다음을 수행합니다.

    1. 제한된 서비스를 클릭합니다.

    2. 제한된 서비스 창에서 서비스 추가를 클릭합니다.

    3. 경계 내에서 서비스를 보호하려면 제한할 서비스 지정 대화상자에서 해당 서비스의 체크박스를 선택합니다.

    4. n 서비스 추가를 클릭합니다. 여기에서 n은 이전 단계에서 선택한 서비스 수입니다.

  8. 선택사항: 경계 내에서 액세스할 수 있는 서비스를 정의하려면 다음을 수행합니다.

    1. VPC 액세스 가능 서비스를 클릭합니다.

    2. VPC 액세스 가능 서비스 창에서 선택된 서비스를 선택합니다.

      경계에서 보호하는 모든 제한된 서비스를 빠르게 액세스 가능한 서비스 목록에 포함하려면 모든 제한된 서비스 포함을 선택합니다. 이 옵션을 사용하면 제한된 서비스 이외에 별도의 서비스를 포함할 수 있습니다.

    3. VPC 액세스 가능 서비스 추가를 클릭합니다.

      경계가 생성된 후에 액세스 가능한 서비스를 추가할 수도 있습니다.

    4. 액세스 가능한 서비스 지정 페이지에서 경계 내에서 액세스할 서비스를 선택합니다.

    5. n 서비스 추가를 클릭합니다. 여기에서 n은 이전 단계에서 선택한 서비스 수입니다.

  9. 선택사항: 액세스 수준을 사용하여 경계 외부에서 보호된 리소스에 액세스하도록 허용하려면 다음을 수행합니다.

    1. 액세스 수준을 클릭합니다.

    2. 인그레스 정책: 액세스 수준 창에서 액세스 수준 선택 체크박스를 클릭합니다.

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

    3. 서비스 경계에 적용하려는 액세스 수준에 해당하는 체크박스를 선택합니다.

  10. 경계 외부의 API 클라이언트에서 경계 내 리소스에 액세스하도록 허용하려면 다음을 수행합니다.

    1. 인그레스 정책을 클릭합니다.

    2. 인그레스 규칙 창에서 규칙 추가를 클릭합니다.

    3. API 클라이언트의 From 속성에서 액세스해야 하는 경계 외부의 소스를 지정합니다. 프로젝트, 액세스 수준, VPC 네트워크를 소스로 지정할 수 있습니다.

    4. 소스가 Google Cloud 리소스/서비스의 To 속성에서 액세스할 수 있는 경계 내의 리소스를 지정합니다.

      인그레스 규칙 속성 목록은 인그레스 규칙 참조를 확인하세요.

  11. 경계 내 API 클라이언트나 리소스와 경계 외부의 리소스가 관련된 액세스를 허용하려면 다음을 수행합니다.

    1. 이그레스 정책을 클릭합니다.

    2. 이그레스 규칙 창에서 규칙 추가를 클릭합니다.

    3. 필수 API 클라이언트의 From 속성과 원하는 Google Cloud 리소스/서비스의 To 속성을 지정합니다.

      이그레스 규칙 속성 목록은 이그레스 규칙 참조를 확인하세요.

  12. 경계 만들기를 클릭합니다.

gcloud

시행 경계에서 새 경계를 만들려면 gcloud access-context-manager perimeters create 명령어를 사용합니다.

gcloud access-context-manager perimeters create NAME \
  --title=TITLE \
  --resources=RESOURCES \
  --restricted-services=RESTRICTED-SERVICES \
  --ingress-policies=INGRESS-FILENAME.yaml \
  --egress-policies=EGRESS-FILENAME.yaml \
  [--access-levels=LEVELS] \
  [--enable-vpc-accessible-services] \
  [--vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

테스트 실행 모드에서 새 경계를 만들려면 gcloud access-context-manager perimeters dry-run create 명령어를 사용합니다.

gcloud access-context-manager perimeters dry-run create NAME \
  --perimeter-title=TITLE \
  --perimeter-type=TYPE \
  --perimeter-resources=RESOURCES \
  --perimeter-restricted-services=RESTRICTED-SERVICES \
  --perimeter-ingress-policies=INGRESS-FILENAME.yaml \
  --perimeter-egress-policies=EGRESS-FILENAME.yaml \
  [--perimeter-access-levels=LEVELS] \
  [--perimeter-enable-vpc-accessible-services] \
  [--perimeter-vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

다음을 바꿉니다.

  • NAME은 경계의 이름입니다.

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

  • TITLE은 사람이 읽을 수 있는 경계의 제목입니다.

  • TYPE은 경계 유형입니다. 예를 들어 '일반' 경계나 '브리지' 경계입니다.

  • RESOURCES는 하나 이상의 프로젝트 번호 또는 VPC 네트워크 이름의 쉼표로 구분된 목록입니다. 예를 들면 projects/12345 또는 //compute.googleapis.com/projects/my-project/global/networks/vpc1입니다. 프로젝트 및 VPC 네트워크만 허용됩니다. 프로젝트 형식: projects/project_number. VPC 형식: //compute.googleapis.com/projects/project-id/global/networks/network_name. 프로젝트를 지정하면 프로젝트 번호만 지원됩니다. 프로젝트 이름 또는 ID는 사용할 수 없습니다.

  • RESTRICTED-SERVICES는 쉼표로 구분된 하나 이상의 서비스 목록입니다. 예를 들면 storage.googleapis.com 또는 storage.googleapis.com,bigquery.googleapis.com입니다.

  • INGRESS-FILENAME은 소스, ID, 프로젝트, 서비스 속성의 값이 포함된 JSON 또는 YAML 파일입니다. 인그레스 규칙 속성 목록은 인그레스 규칙 참조를 확인하세요.

  • EGRESS-FILENAME은 ID, 프로젝트, 서비스 속성의 값이 포함된 JSON 또는 YAML 파일입니다. 이그레스 규칙 속성 목록은 이그레스 규칙 참조를 확인하세요.

  • POLICY_NAME은 조직의 액세스 정책의 숫자 이름입니다. 예를 들면 330193482019입니다. 기본 액세스 정책을 설정하지 않은 경우 정책 이름만 포함해야 합니다.

추가 옵션:

  • 경계를 만들 때 액세스 수준을 추가하려는 경우에만 --access-levels 또는 --perimeter-access-levels가 필요합니다. LEVELS는 서비스 경계에 적용할 하나 이상의 액세스 수준 목록입니다.

    경계를 만든 후 액세스 수준을 추가할 수도 있습니다.

  • --enable-vpc-accessible-services--vpc-allowed-services 또는 --perimeter-enable-vpc-accessible-services--perimeter-vpc-allowed-services는 경계를 만들 때 VPC 액세스 가능한 서비스를 추가하려는 경우에만 필요합니다. ACCESSIBLE-SERVICES는 경계 의 네트워크에 액세스를 허용하려는 하나 이상의 서비스가 쉼표로 구분된 목록입니다. 이 목록에 포함되지 않은 모든 서비스에 대한 액세스가 차단됩니다.

    경계를 구성할 때 서비스를 보호하는 경우에만 서비스에 액세스 할 수 있습니다.

    경계로 보호되는 모든 서비스를 빠르게 포함하려면 ACCESSIBLE-SERVICES의 목록에 RESTRICTED-SERVICES를 지정합니다. 예를 들면 --perimeter-vpc-allowed-services=RESTRICTED-SERVICES입니다.

    경계를 만든 후 VPC 액세스 가능 서비스를 정의할 수도 있습니다.

예를 들어 다음 명령어는 example-projectexample-project2 프로젝트가 포함된 ProdPerimeter라는 새 테스트 실행 모드 경계를 만들고 Cloud Storage 및 BigQuery API를 제한합니다.

gcloud access-context-manager perimeters \
  dry-run create ProdPerimeter --perimeter-title="Production Perimeter" \
  --perimeter-type="regular" \
  --perimeter-resources=projects/12345,projects/67890 \
  --perimeter-restricted-services=storage.googleapis.com,bigquery.googleapis.com \
  --perimeter-ingress-policies=ingress.yaml \
  --perimeter-egress-policies=egress.yaml \
  --policy=330193482019

API

서비스 경계를 만들려면 accessPolicies.servicePerimeters.create를 호출하세요.

 POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters

각 항목의 의미는 다음과 같습니다.

  • POLICY_NAME은 조직의 액세스 정책의 숫자 이름입니다. 예를 들면 330193482019입니다.

요청 본문

요청 본문에는 서비스 경계를 정의하는 ServicePerimeter 리소스가 있어야 합니다.

ServicePerimeter 리소스에 대하여 perimeterTypePERIMETER_TYPE_REGULAR를 지정하세요.

테스트 실행 모드

제안된 경계는 specuseExplicitDryRunSpec을 true로 설정해야 합니다.

응답 본문

호출이 성공하면 호출의 응답 본문에 POST 작업에 대한 세부정보를 제공하는 Operation 리소스가 포함됩니다.

다음 단계