이 페이지에서는 서비스 경계를 만드는 방법을 설명합니다.
시작하기 전에
- 서비스 경계 구성에 대해 알아보기 
- 서비스 경계의 VPC 네트워크 관리에 대해 알아보기 
- VPC 서비스 제어 권한 부여에 대해 알아보기 
- 경계를 만들 때 보호된 서비스에 대한 외부 액세스를 구성하려면 경계를 만들기 전에 하나 이상의 액세스 수준을 만듭니다. 
서비스 경계 만들기
이 섹션에서는 서비스 경계를 만들고 프로젝트 또는 VPC 네트워크를 경계에 추가하고 서비스를 보호하는 방법을 설명합니다.
서비스 경계를 만들 때 선택적으로 경계 외부에서 보호된 서비스에 액세스하도록 허용하고 경계 내부의 다른 서비스 및 사용자가 액세스할 수 있는 서비스를 지정할 수 있습니다. 원하는 경우 경계를 만든 후에 이러한 설정을 구성할 수 있습니다.
서비스 경계를 만들거나 기존 서비스 경계를 업데이트한 후 변경사항이 전파되고 적용되는 데까지 최대 30분이 걸릴 수 있습니다. 이 시간 동안 경계에서 Error 403: Request is prohibited by organization's policy. 오류 메시지와 함께 요청을 차단할 수 있습니다.
콘솔
- Google Cloud 콘솔 탐색 메뉴에서 보안을 클릭한 다음 VPC 서비스 제어를 클릭합니다. 
- 메시지가 표시되면 조직, 폴더 또는 프로젝트를 선택합니다. 
- 기존 액세스 정책을 선택하거나 새 액세스 정책을 만듭니다. 액세스 정책 범위에 경계에 추가하려는 모든 프로젝트와 VPC 네트워크가 포함되어 있는지 확인합니다. 
- VPC 서비스 제어 페이지에서 경계 시행 모드를 선택합니다. 기본적으로 시행 경계가 선택됩니다. 테스트 실행 경계를 만들려면 테스트 실행 모드를 클릭합니다. - 시행 경계는 보호된 서비스에 대한 액세스를 적극적으로 차단합니다. 테스트 실행 경계는 서비스가 보호된 것처럼 경계의 위반사항을 로깅하지만 해당 서비스에 대한 액세스를 차단하지 않습니다. 시행 경계 및 테스트 실행 모드에 대한 자세한 내용은 서비스 경계를 참조하세요. 
- 새 경계를 클릭합니다. 
- 서비스 경계 만들기 페이지의 제목 필드에 경계에 대한 이름을 입력합니다. - 경계 이름은 최대 50자이고 문자로 시작되어야 하며 ASCII 라틴 문자(a~z, A~Z), 숫자 (0~9) 또는 밑줄( - _)만 포함할 수 있습니다. 경계 이름은 대소문자를 구분하며 액세스 정책 내에서 고유해야 합니다.
- 선택사항: 설명 필드에 경계에 대한 설명을 입력합니다. 
- 경계 유형에서 일반을 선택합니다. 
- 시행 모드에서 경계 시행 모드를 선택합니다. 사용 가능한 옵션은 테스트 실행 및 시행입니다. 
- 계속을 클릭합니다. 
- 경계 내에서 보호하려는 프로젝트 또는 VPC 네트워크를 추가하려면 다음을 수행합니다. - 경계에 프로젝트를 추가하려면 프로젝트 추가를 클릭합니다. - 프로젝트 추가 창에서 보호할 프로젝트를 선택합니다. 
- 선택한 프로젝트 추가를 클릭합니다. 추가된 프로젝트는 프로젝트 섹션에 나타납니다. 
 
- 경계에 VPC 네트워크를 추가하려면 네트워크 추가를 클릭합니다. - 프로젝트 목록에서 VPC 네트워크가 포함된 프로젝트를 클릭합니다. 
- VPC 네트워크 추가 창에서 보호할 VPC 네트워크를 선택합니다. 
- 선택한 네트워크 추가를 클릭합니다. 추가된 네트워크가 VPC 네트워크 섹션에 표시됩니다. 
 
- 계속을 클릭합니다. 
 
- 경계 내에서 보호하려는 서비스를 선택하려면 다음을 수행합니다. - 제한된 서비스 창에서 서비스 추가를 클릭합니다. 
- 서비스 추가 창에서 보호할 서비스를 선택합니다. 
- 선택한 서비스 추가를 클릭합니다. 
- 계속을 클릭합니다. 
 
- 선택사항: 경계 내의 네트워크 엔드포인트에서 액세스할 수 있는 서비스를 정의하려면 VPC 액세스 가능 서비스 창에서 사용 가능한 옵션 중 하나를 선택합니다. - 모든 서비스: 이 옵션을 선택하면 모든 Google Cloud 서비스가 허용됩니다. 
- 서비스 없음: 이 옵션은 어떠한 Google Cloud 서비스도 허용하지 않습니다. 
- 모든 제한된 서비스: 이 옵션을 선택하면 이 경계에서 보호한 Google Cloud 서비스만 허용됩니다. 
- 선택한 서비스: 이 옵션을 사용하면 선택한 Google Cloud 서비스만 허용됩니다. - 서비스 추가를 클릭합니다. 
- 서비스 추가 창에서 허용하려는 서비스를 선택합니다. 
- 선택한 서비스 추가를 클릭합니다. 
- 경계에서 보호하는 모든 제한된 서비스를 선택한 서비스에 추가로 포함하려면 모든 제한된 서비스 포함 전환을 켜짐 위치로 클릭합니다. 
- 계속을 클릭합니다. 
 
 - 경계가 생성된 후에 액세스 가능한 서비스를 추가할 수도 있습니다. - 자세한 내용은 VPC 액세스 가능 서비스를 참조하세요. 
- 선택사항: 액세스 수준을 사용하여 경계 외부에서 보호된 리소스에 액세스하도록 허용하려면 다음을 수행합니다. - 액세스 수준 창에서 액세스 수준 추가를 클릭합니다. - 경계가 생성된 후에 액세스 수준을 추가할 수도 있습니다. 
- 서비스 경계에 적용하려는 액세스 수준에 해당하는 체크박스를 선택합니다. 
- 선택한 액세스 수준 추가를 클릭합니다. 
- 계속을 클릭합니다. 
 
- 경계 외부의 API 클라이언트에서 경계 내 리소스에 액세스하도록 허용하려면 다음을 수행합니다. - 인그레스 규칙 창에서 인그레스 규칙 추가를 클릭합니다. 
- 제목 필드에 인그레스 규칙의 제목을 입력합니다. 
- From 섹션에서 액세스해야 하는 경계 외부의 소스를 지정합니다. 프로젝트, 액세스 수준, VPC 네트워크를 소스로 지정할 수 있습니다. 
- To 섹션에서 소스가 액세스할 수 있는 경계 내의 리소스를 지정합니다. 
- 계속을 클릭합니다. 
 - 인그레스 규칙 속성 목록은 인그레스 규칙 참조를 확인하세요. 
- 경계 내 API 클라이언트나 리소스와 경계 외부의 리소스가 관련된 액세스를 허용하려면 다음을 수행합니다. - 이그레스 규칙 창에서 이그레스 규칙 추가를 클릭합니다. 
- 제목 필드에 이그레스 규칙의 제목을 입력합니다. 
- From 섹션에서 액세스해야 하는 경계 내의 소스를 지정합니다. 
- To 섹션에서 소스가 액세스할 수 있는 경계 외부의 리소스를 지정합니다. 
 - 이그레스 규칙 속성 목록은 이그레스 규칙 참조를 확인하세요. 
- 만들기를 클릭합니다. 
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-project 및 example-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 리소스에 대하여 perimeterType에 PERIMETER_TYPE_REGULAR를 지정하세요.
테스트 실행 모드
제안된 경계는 spec와 useExplicitDryRunSpec을 true로 설정해야 합니다.
응답 본문
호출이 성공하면 호출의 응답 본문에 POST 작업에 대한 세부정보를 제공하는 Operation 리소스가 포함됩니다.
다음 단계
- 테스트 실행 모드를 사용하여 서비스 경계의 영향을 테스트하는 방법 알아보기
- 기존 서비스 경계 관리 방법 알아보기
- 일반적인 VPC 서비스 제어 문제 해결 방법 알아보기
- 이 codelab을 완료하여 VPC 서비스 제어를 사용하여 프로젝트와 해당 서비스를 보호하는 방법을 알아보세요.
- 위반 대시보드를 설정하고 보는 방법 알아보기