Private Service Connect 소비자의 보안 관리

이 페이지에서는 서비스 소비자가 Private Service Connect를 사용하는 소비자 조직 및 VPC 네트워크에 대해 보안을 구성하는 방법을 설명합니다.

관리자는 조직 정책에 따라 Private Service Connect 엔드포인트 및 백엔드를 사용하여 프로젝트가 연결할 수 있는 VPC 네트워크 또는 조직을 포괄적으로 제어할 수 있습니다. 네트워크 관리자는 VPC 방화벽 규칙방화벽 정책을 통해 Private Service Connect 리소스에 대한 네트워크 수준의 액세스를 제어할 수 있습니다. 조직 정책과 방화벽 규칙은 상호 보완적이며 함께 사용할 수 있습니다.

역할

조직 정책을 관리하는 데 필요한 권한을 얻으려면 관리자에게 조직의 조직 정책 관리자(roles/orgpolicy.policyAdmin) IAM 역할을 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

방화벽 규칙을 만드는 데 필요한 권한을 얻으려면 관리자에게 VPC 네트워크에서 Compute 네트워크 관리자(roles/compute.networkAdmin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

소비자 조직 정책

목록 제약조건과 함께 조직 정책을 사용하여 Private Service Connect 엔드포인트 또는 백엔드의 배포를 제어할 수 있습니다. 엔드포인트 또는 백엔드가 소비자 조직 정책에 의해 차단되면 리소스 생성이 실패합니다.

자세한 내용은 사용자 측 조직 정책을 참조하세요.

엔드포인트 및 백엔드가 승인되지 않은 서비스 연결에 연결하지 못하도록 차단

리소스: 엔드포인트 및 백엔드

gcloud

  1. 새 정책을 저장할 /tmp/policy.yaml이라는 임시 파일을 만듭니다. 파일에 다음 콘텐츠를 추가합니다.

    name: organizations/CONSUMER_ORG/policies/compute.restrictPrivateServiceConnectProducer
    spec:
      rules:
        - values:
            allowedValues:
            - under:organizations/PRODUCER_ORG_NUMBER
            - under:organizations/433637338589
    

    다음을 바꿉니다.

    • CONSUMER_ORG: 엔드포인트 및 백엔드 연결을 제어하려는 조직의 조직 리소스 ID입니다.
    • PRODUCER_ORG_NUMBER: 엔드포인트 및 백엔드에 연결하려는 프로듀서 조직의 숫자 조직 리소스 ID입니다.

    엔드포인트 및 백엔드가 Google에서 소유한 서비스 연결에 연결하지 못하도록 차단하려면 allowedValues 섹션에서 - under:organizations/433637338589 항목을 삭제하세요.

    프로젝트에서 서비스에 연결할 수 있는 추가 조직을 지정하려면 allowedValues 섹션에 추가 항목을 포함합니다.

    조직 외에도 다음 형식으로 승인된 폴더 및 프로젝트를 지정할 수 있습니다.

    • under:folders/FOLDER_ID

      FOLDER_ID는 숫자 ID여야 합니다.

    • under:projects/PROJECT_ID

      PROJECT_ID는 문자열 ID여야 합니다.

    예를 들어 서비스 연결이 허용된 값 또는 허용된 값의 하위 요소와 연결되지 않은 경우 Consumer-org-1의 엔드포인트 및 백엔드에서 서비스 연결에 연결하지 못하도록 차단하는 조직 정책을 만드는 데 다음을 사용할 수 있습니다. 허용된 값은 조직 Producer-org-1, 프로젝트 Producer-project-1, 폴더 Producer-folder-1입니다.

    name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
    spec:
        rules:
          - values:
              allowedValues:
              - under:organizations/Producer-org-1
              - under:projects/Producer-project-1
              - under:folders/Producer-folder-1
    
  2. 정책을 적용합니다.

    gcloud org-policies set-policy /tmp/policy.yaml
    
  3. 적용되는 정책을 확인합니다.

    gcloud org-policies describe compute.restrictPrivateServiceConnectProducer \
        --effective \
        --organization=CONSUMER_ORG
    

연결 유형별로 사용자가 엔드포인트를 배포하지 못하도록 차단

리소스: 엔드포인트

gcloud

  1. 새 정책을 저장할 /tmp/policy.yaml이라는 임시 파일을 만듭니다.

    • 사용자 조직의 사용자가 Google API에 연결되는 엔드포인트를 만들지 못하도록 하려면 파일에 다음 콘텐츠를 추가합니다.

      name: organizations/CONSUMER_ORG/policies/compute.disablePrivateServiceConnectCreationForConsumers
      spec:
        rules:
          - values:
              allowedValues:
              - SERVICE_PRODUCERS
      
    • 사용자 조직의 사용자가 게시된 서비스에 연결되는 엔드포인트를 만들지 못하도록 하려면 파일에 다음 콘텐츠를 추가합니다.

      name: organizations/CONSUMER_ORG/policies/compute.disablePrivateServiceConnectCreationForConsumers
      spec:
        rules:
          - values:
              allowedValues:
              - GOOGLE_APIS
      

    CONSUMER_ORG를 엔드포인트 배포를 제어할 사용자 조직의 이름으로 바꿉니다.

  2. 정책을 적용합니다.

    gcloud org-policies set-policy /tmp/policy.yaml
    
  3. 적용되는 정책을 확인합니다.

    gcloud org-policies describe compute.restrictPrivateServiceConnectProducer \
        --effective \
        --organization=CONSUMER_ORG
    

방화벽 규칙

리소스: 모두

VPC 방화벽 규칙 또는 방화벽 정책을 사용하여Private Service Connect 리소스에 대한 액세스를 제어할 수 있습니다. 이그레스 방화벽 규칙은 VM 인스턴스에서 엔드포인트 및 백엔드의 IP 주소 또는 서브넷에 대한 액세스를 차단하거나 허용할 수 있습니다.

예를 들어 그림 1은 Private Service Connect 엔드포인트가 연결되어 있는 서브넷에 대한 액세스가 방화벽 규칙으로 제어되는 구성을 보여줍니다.

방화벽 규칙은 엔드포인트 서브넷에 대한 트래픽을 제어합니다. vm-1의 트래픽은 엔드포인트 서브넷에 연결되고 vm-2의 트래픽은 차단됩니다(확대하려면 클릭).
  1. 다음 방화벽 규칙은 엔드포인트 서브넷에 대한 모든 이그레스 트래픽을 정의합니다.

    gcloud compute firewall-rules create deny-all \
        --network=vpc-1 \
        --direction=egress \
        --action=deny \
        --destination-ranges=10.33.0.0/24
        --priority=1000
    
  2. 우선순위가 더 높은 방화벽 규칙은 allow-psc 네트워크 태그가 있는 VM의 엔드포인트 서브넷으로 이그레스 트래픽을 허용합니다.

    gcloud compute firewall-rules create allow-psc \
        --network=vpc-1 \
        --direction=egress \
        --action=allow \
        --target-tags=allow-psc \
        --destination-ranges=10.33.0.0/24
        --priority=100
    

방화벽 규칙을 사용하여 엔드포인트 또는 백엔드에 대한 액세스 제한

VM에서 엔드포인트 또는 백엔드의 서브넷에 대한 액세스를 제한하려면 다음을 수행합니다.

  1. 엔드포인트 또는 백엔드 서브넷에 대한 이그레스 트래픽을 거부하는 방화벽 규칙을 만듭니다.

    gcloud compute firewall-rules create deny-all \
        --network=NETWORK \
        --direction=egress \
        --action=deny \
        --destination-ranges=ENDPOINT_SUBNET_RANGE \
        --priority=1000
    

    다음을 바꿉니다.

    • NETWORK: 엔드포인트 또는 백엔드의 네트워크 이름입니다.
    • ENDPOINT_SUBNET_RANGE: 액세스를 제어하려는 엔드포인트 또는 백엔드 서브넷의 IP CIDR 범위입니다.
  2. 태그 지정된 VM에서 엔드포인트 또는 백엔드 서브넷으로의 이그레스 트래픽을 허용하는 두 번째 방화벽 규칙을 만듭니다.

    gcloud compute firewall-rules create allow-psc \
        --network=NETWORK \
        --direction=egress \
        --action=allow \
        --target-tags=allow-psc \
        --destination-ranges=ENDPOINT_SUBNET_RANGE \
        --priority=100