인그레스 규칙을 사용한 컨텍스트 인식 액세스

컨텍스트 인식 액세스 인그레스 규칙을 설정하면 네트워크 원본(IP 주소 또는 VPC 네트워크), ID 유형(서비스 계정 또는 사용자), ID, 기기 데이터와 같은 클라이언트 속성을 기반으로 리소스에 액세스할 수 있습니다. 액세스는 인그레스 규칙으로 정의됩니다.

인그레스 규칙과 이그레스 규칙에 대한 개요는 인그레스 및 이그레스 규칙을 참조하세요.

인그레스 및 이그레스 규칙 정책을 적용하는 방법은 인그레스 및 이그레스 정책 구성을 참조하세요.

컨텍스트 인식 액세스 사용 사례의 구성 예시

이 섹션에서는 컨텍스트 인식 액세스의 다음과 같은 예시를 제공합니다.

  1. 인간 사용자가 인터넷에서 BigQuery에 액세스하고 지정된 IP 범위의 특정 서비스 계정에만 액세스할 수 있도록 허용
  2. 직원이 인터넷과 특정 서비스 계정을 통해 신뢰할 수 있는 기기에서 BigQuery를 쿼리하여 Cloud Storage 버킷에 데이터(소스 데이터)를 안전하게 로드할 수 있도록 허용

인간 사용자가 인터넷에서 BigQuery에 액세스하고 지정된 IP 범위의 특정 서비스 계정에만 액세스할 수 있도록 허용

인식된 사용자 및 네트워크에서 인그레스

gcloud로 경계를 나열하여 찾은 다음과 같은 경계를 정의했다고 가정하겠습니다.

name: accessPolicies/222/servicePerimeters/Example
status:
  resources:
  - projects/111
  restrictedServices:
  - bigquery.googleapis.com
  - storage.googleapis.com
  vpcAccessibleServices:
    enableRestriction: true
    allowedServices:
    - RESTRICTED_SERVICES
title: Example

또한 CorpDatacenters라는 이름의 액세스 수준이 정의되었다고 가정합니다. 이 예시의 CorpDatacenters는 서비스 계정이 액세스할 수 있는 기업 데이터 센터의 허용된 IP 범위입니다.

다음은 (액세스 수준에서 정의된) 특정 IP 집합으로 제한된 모든 인간 사용자 및 특정 서비스 계정 집합을 허용하는 방향성 정책입니다.

echo """
- ingressFrom:
    identities:
    - serviceAccount:my-sa@my-project.iam.gserviceaccount.com
    sources:
    - accessLevel: accessPolicies/222/accessLevels/CorpDatacenters
  ingressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: \"*\"
    resources:
    - \"*\"
- ingressFrom:
    identityType: ANY_USER_ACCOUNT
    sources:
    - accessLevel: \"*\"
  ingressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: \"*\"
    resources:
    - \"*\"
""" > ingress.yaml

다음 명령어를 실행하여 인그레스 규칙을 적용합니다.

gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml

직원이 BigQuery를 쿼리하고 Cloud Storage 버킷에 데이터를 비공개로 로드할 수 있도록 허용

인식된 기기 및 네트워크에서 인그레스

gcloud로 경계를 나열하여 찾은 다음과 같은 경계를 정의했다고 가정하겠습니다.

name: accessPolicies/222/servicePerimeters/Example
status:
  resources:
  - projects/111
  restrictedServices:
  - bigquery.googleapis.com
  - storage.googleapis.com
  vpcAccessibleServices:
    enableRestriction: true
    allowedServices:
    - RESTRICTED_SERVICES
title: Example

다음은 (액세스 수준을 사용하여) 인간 사용자가 신뢰할 수 있는 기기에서 BigQuery 뷰에 액세스할 수 있도록 허용하고 특정 서비스 계정만 승인된 VPC 네트워크에서 Cloud Storage에 액세스할 수 있도록 허용하는 방향성 정책입니다.

echo """
- ingressFrom:
    identities:
    - serviceAccount:my-sa@my-project.iam.gserviceaccount.com
    sources:
    - resource: projects/111
  ingressTo:
    operations:
    - serviceName: storage.googleapis.com
      methodSelectors:
      - method: google.storage.Write
      - method: google.storage.objects.create
    resources:
    - \"*\"

- ingressFrom:
    identityType: ANY_SERVICE_ACCOUNT
    sources:
      - resource: //compute.googleapis.com/projects/my-network-project/global/networks/top-tier-vpc-network
  ingressTo:
    operations:
    - serviceName: storage.googleapis.com
      methodSelectors:
      - method: google.storage.Write
      - method: google.storage.objects.create
    resources:
    - \"*\"

- ingressFrom:
    identityType: ANY_USER_ACCOUNT
    sources:
    - accessLevel: accessPolicies/222/accessLevels/TrustedDevices
  ingressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - permission: bigquery.tables.getData
    resources:
    - \"*\"
""" > ingress.yaml

다음 명령어를 실행하여 인그레스 규칙을 적용합니다.

gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml

서비스 경계에서 VPC 네트워크를 사용할 때의 VPC 네트워크 제한사항에 대한 자세한 내용은 VPC 네트워크 제한사항을 참조하세요.