보안 웹 프록시를 Private Service Connect 서비스로 게시

여러 VPC 네트워크에서 보안 웹 프록시 배포를 중앙에서 관리하려면 Private Service Connect 서비스 연결을 통해 보안 웹 프록시를 사용할 수 있도록 하면 됩니다.

Private Service Connect를 사용하여 보안 웹 프록시를 배포하려면 다음 단계를 따르세요.

  1. 보안 웹 프록시 정책 및 규칙을 만듭니다.
  2. 정책을 사용하는 보안 웹 프록시 인스턴스를 만듭니다.
  3. 보안 웹 프록시 인스턴스를 Private Service Connect 서비스로 게시하는 서비스 연결을 만듭니다.
  4. 보안 웹 프록시에 연결해야 하는 각 VPC 네트워크에 Private Service Connect 소비자 엔드포인트를 만듭니다.
  5. 워크로드 이그레스 트래픽이 리전 내의 중앙 집중식 보안 웹 프록시 인스턴스를 가리키도록 합니다.
Private Service Connect 서비스 연결 모드에서 보안 웹 프록시 배포
보안 웹 프록시를 Private Service Connect 서비스로 게시하면 여러 VPC 네트워크에서 워크로드의 이그레스 트래픽 관리를 중앙화할 수 있습니다. (확대하려면 클릭)

시작하기 전에

이 페이지의 단계를 완료하기 전에 초기 설정 단계를 완료하세요.

보안 웹 프록시 인스턴스 만들기 및 구성

이 가이드에서는 세션별로 트래픽과 일치하는 보안 웹 프록시 정책 및 규칙을 만드는 방법을 설명합니다.

TLS 검사를 선택적으로 구성하는 방법에 관한 자세한 내용은 TLS 검사 사용 설정을 참고하세요.

애플리케이션 수준 일치를 선택적으로 구성하는 방법에 관한 자세한 내용은 보안 웹 프록시 인스턴스 배포를 참고하세요.

보안 웹 프록시 정책 만들기

콘솔

  1. Google Cloud 콘솔에서 SWP 정책 페이지로 이동합니다.

    SWP 정책으로 이동

  2. 정책 만들기를 클릭합니다.

  3. 만들려는 정책의 이름을 입력합니다(예: myswppolicy).

  4. 정책 설명을 입력합니다.

  5. 리전 목록에서 웹 프록시 정책을 만들 리전을 선택합니다.

  6. 만들기를 클릭합니다.

Cloud Shell

  1. policy.yaml 파일을 만듭니다.

    description: basic Secure Web Proxy policy
    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트의 프로젝트 ID
    • REGION: 정책의 리전
  2. policy.yaml를 기반으로 보안 웹 프록시 정책을 만듭니다.

    gcloud network-security gateway-security-policies import policy1 \
        --source=policy.yaml \
        --location=REGION
    

정책에 보안 웹 프록시 규칙 추가

각 워크로드의 이그레스 트래픽을 허용하도록 보안 웹 프록시 규칙을 구성합니다.

이 섹션에서는 리소스 관리자 태그 또는 서비스 계정으로 식별되는 워크로드의 트래픽을 허용하는 규칙을 만드는 방법을 보여줍니다. 다른 방법으로 트래픽을 일치시키는 방법에 관한 자세한 내용은 CEL 일치자 언어 참조를 참고하세요.

콘솔

  1. Google Cloud 콘솔에서 SWP 정책 페이지로 이동합니다.

    SWP 정책으로 이동

  2. 정책 이름을 클릭합니다.

  3. 워크로드가 인터넷에 액세스할 수 있도록 허용하는 규칙을 추가하려면 다음 단계를 따르세요.

    1. 규칙 추가를 클릭합니다.
    2. 우선순위를 입력합니다. 규칙은 가장 높은 우선순위에서 가장 낮은 우선순위로 평가되며 0이 가장 높은 우선순위입니다.
    3. 이름을 입력합니다.
    4. 설명을 입력합니다.
    5. 상태를 입력합니다.
    6. 작업허용을 선택합니다.
    7. 상태를 클릭한 다음 사용 설정됨을 선택합니다.
    8. 세션 일치 섹션에서 세션 일치 기준을 지정합니다.

      • 예를 들어 Resource Manager 태그 값 ID tagValues/123456가 있는 워크로드에서 google.com으로의 트래픽을 허용하려면 다음을 입력합니다.

        source.matchTag('tagValues/123456') && host() == 'google.com'

      • 서비스 계정 account-name@my-project.iam.gserviceaccount.com를 사용하는 워크로드에서 google.com으로의 트래픽을 허용하려면 다음을 입력합니다.

        source.matchServiceAccount('account-name@my-project.iam.gserviceaccount.com') && host() == 'google.com'

    9. 만들기를 클릭합니다.

Cloud Shell

추가하려는 각 규칙에 대해 다음을 실행합니다.

  1. rule.yaml 파일을 만들고 세션 일치 기준을 지정합니다.

    • Resource Manager 태그 값 ID로 식별된 워크로드에서 특정 도메인으로의 트래픽을 허용하려면 다음 파일을 만듭니다.

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
      description: Allow traffic based on tag
      enabled: true
      priority: PRIORITY
      basicProfile: ALLOW
      sessionMatcher: source.matchTag('TAG_VALUE_ID') && host() == 'DOMAIN_NAME'
      

      다음을 바꿉니다.

      • PROJECT_ID: 프로젝트의 프로젝트 ID
      • REGION: 정책의 리전
      • RULE_NAME: 규칙의 이름
      • PRIORITY: 규칙의 우선순위입니다. 규칙은 가장 높은 우선순위에서 가장 낮은 우선순위로 평가되며 0는 가장 높은 우선순위입니다.
      • TAG_VALUE_ID: 트래픽을 허용하도록 워크로드의 태그 값 ID
      • DOMAIN_NAME: 트래픽을 허용할 도메인 이름
    • 서비스 계정을 사용하는 워크로드에서 특정 도메인으로의 트래픽을 허용하려면 다음 파일을 만듭니다.

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
      description: Allow traffic based on service account
      enabled: true
      priority: PRIORITY
      basicProfile: ALLOW
      sessionMatcher: source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'DOMAIN_NAME'
      

      SERVICE_ACCOUNT을 서비스 계정 이름으로 바꿉니다.

  2. rule.yaml에서 정의한 규칙으로 정책을 업데이트하려면 다음 명령어를 사용합니다.

    gcloud network-security gateway-security-policies rules import RULE_NAME \
       --source=rule.yaml \
       --location=REGION \
       --gateway-security-policy=policy1
    

보안 웹 프록시 인스턴스 배포

이그레스 트래픽에 사용할 VPC (Virtual Private Cloud) 네트워크에서 명시적 라우팅 모드로 보안 웹 프록시 인스턴스를 배포합니다. 인스턴스를 만들 때 이전 단계에서 만든 정책 및 규칙과 연결합니다.

Private Service Connect 서비스 연결을 사용하여 보안 웹 프록시를 게시하면 다음 홉 라우팅 모드가 지원되지 않습니다.

인스턴스 구성에 관한 자세한 내용은 웹 프록시 설정을 참고하세요. 지금은 페이지의 다른 단계를 완료하지 않아도 됩니다.

허브 및 스포크 모델에서 보안 웹 프록시를 Private Service Connect 서비스로 배포

이 섹션에서는 허브 및 스포크 모델을 사용하여 Private Service Connect 서비스로 보안 웹 프록시를 배포하고 이그레스 트래픽 관리를 중앙 집중화하는 방법을 설명합니다.

보안 웹 프록시를 Private Service Connect 서비스로 게시

보안 웹 프록시를 서비스로 게시하려면 Private Service Connect 서브넷과 서비스 연결을 만듭니다. 서브넷과 서비스 연결은 서비스 연결에 액세스하는 Private Service Connect 엔드포인트와 동일한 리전을 공유해야 합니다.

Private Service Connect의 서브넷 만들기

Private Service Connect의 서브넷을 만들려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. VPC 네트워크의 이름을 클릭하여 VPC 네트워크 세부정보 페이지를 표시합니다.

  3. 서브넷을 클릭합니다.

  4. 서브넷 추가를 클릭합니다. 패널이 나타나면 다음을 수행합니다.

    1. 이름을 입력합니다.
    2. 리전을 선택합니다.
    3. 용도 섹션에서 Private Service Connect를 선택합니다.
    4. IP 스택 유형에서 IPv4 (단일 스택) 또는 IPv4 및 IPv6 (이중 스택)을 선택합니다.
    5. IPv4 범위를 입력합니다. 예를 들면 10.10.10.0/24입니다.
    6. 이중 스택 서브넷을 만드는 경우 IPv6 액세스 유형내부로 설정합니다.
    7. 추가를 클릭합니다.

Cloud Shell

다음 중 하나를 수행합니다.

  • IPv4 전용 Private Service Connect 서브넷을 만들려면 다음 단계를 따르세요.

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    
  • 이중 스택 Private Service Connect 서브넷을 만들려면 다음 단계를 따르세요.

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=INTERNAL \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    

다음을 바꿉니다.

  • SUBNET_NAME: 서브넷에 할당할 이름

  • NETWORK_NAME: 새 서브넷의 VPC 이름

  • REGION: 새 서브넷의 리전. 게시하는 서비스와 동일한 리전이어야 합니다.

  • SUBNET_RANGE: 서브넷에 사용할 IPv4 주소 범위입니다(예: 10.10.10.0/24).

서비스 연결 만들기

중앙 (허브) VPC 네트워크에 보안 웹 프록시를 서비스 연결로 게시하려면 다음 단계를 따르세요.

이 섹션에서는 모든 연결을 자동으로 수락하는 서비스 첨부파일을 만드는 방법을 설명합니다. 명시적 승인 또는 기타 구성 옵션에 관한 자세한 내용은 명시적 승인으로 서비스 게시를 참고하세요.

콘솔

  1. Google Cloud 콘솔에서 Private Service Connect 페이지로 이동합니다.

    Private Service Connect로 이동

  2. 게시된 서비스 탭을 클릭합니다.

  3. 서비스 게시를 클릭합니다.

  4. 타겟 세부정보 섹션에서 보안 웹 프록시를 선택합니다.

  5. 게시할 보안 웹 프록시 인스턴스를 선택합니다. 네트워크 및 리전 필드에 선택한 보안 웹 프록시 인스턴스의 세부정보가 채워집니다.

  6. 서비스 이름에 서비스 연결 이름을 입력합니다.

  7. 서비스에 대해 하나 이상의 Private Service Connect 서브넷을 선택합니다. 이 목록은 선택된 보안 웹 프록시 인스턴스의 VPC 네트워크의 서브넷으로 채워집니다.

  8. 연결 환경설정 섹션에서 모든 연결 자동 허용을 선택합니다.

  9. 서비스 추가를 클릭합니다.

Cloud Shell

gcloud compute service-attachments create 명령어를 사용합니다.

gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME \
    --target-service=SWP_INSTANCE_URI \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=NAT_SUBNET_NAME \
    --region=REGION \
    --project=PROJECT \

다음을 바꿉니다.

  • SERVICE_ATTACHMENT_NAME: 서비스 연결의 이름
  • SWP_INSTANCE_URI: 보안 웹 프록시 인스턴스의 URI(다음 형식: //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/INSTANCE_NAME)
  • NAT_SUBNET_NAME: Private Service Connect 서브넷의 이름
  • REGION: 보안 웹 프록시 배포의 리전
  • PROJECT: 보안 웹 프록시 배포 프로젝트

엔드포인트를 만듭니다.

중앙 집중식 보안 웹 프록시 인스턴스를 통해 이그레스 트래픽을 전송해야 하는 각 VPC 네트워크 및 리전에 엔드포인트를 만듭니다. 만들려는 각 엔드포인트에 대해 다음 단계를 반복합니다.

콘솔

  1. Google Cloud 콘솔에서 Private Service Connect 페이지로 이동합니다.

    Private Service Connect로 이동

  2. 연결된 엔드포인트 탭을 클릭합니다.

  3. 엔드포인트 연결을 클릭합니다.

  4. 대상에서 게시된 서비스를 선택합니다.

  5. 대상 서비스에 연결할 서비스 연결 URI를 입력합니다.

    서비스 연결 URI는 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME 형식입니다.

  6. 엔드포인트 이름에서 엔드포인트에 사용할 이름을 입력합니다.

  7. 엔드포인트의 네트워크를 선택합니다.

  8. 엔드포인트의 서브네트워크를 선택합니다.

  9. 엔드포인트의 IP 주소를 선택합니다. 새 IP 주소가 필요한 경우 IP 주소를 만들 수 있습니다.

    1. IP 주소 드롭다운 메뉴를 클릭하고 IP 주소 만들기를 선택합니다.
    2. IP 주소의 이름과 선택적인 설명을 입력합니다.
    3. IP 버전을 선택합니다.
    4. IPv4 주소를 만드는 경우 자동 할당 또는 직접 선택을 선택합니다.

      직접 선택을 선택한 경우 사용할 커스텀 IP 주소를 입력합니다.

    5. 예약을 클릭합니다.

  10. 엔드포인트 추가를 클릭합니다.

Cloud Shell

  1. 엔드포인트에 할당할 내부 IP 주소를 예약합니다.

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --subnet=SUBNET \
        --ip-version=IP_VERSION
    

    다음을 바꿉니다.

    • ADDRESS_NAME: 예약된 IP 주소에 할당할 이름입니다.

    • REGION: 엔드포인트 IP 주소의 리전. 이 리전은 서비스 제작자의 서비스 연결을 포함하는 동일한 리전이어야 합니다.

    • SUBNET: 엔드포인트 IP 주소의 서브넷 이름

    • IP_VERSION: IP 주소의 IP 버전으로, IPV4 또는 IPV6일 수 있습니다. 기본값은 IPV4입니다. IPV6를 지정하려면 IP 주소가 내부 IPv6 주소 범위가 있는 서브넷에 연결되어 있어야 합니다.

  2. 엔드포인트를 서비스 프로듀서의 서비스 연결에 연결하도록 전달 규칙을 만듭니다.

    gcloud compute forwarding-rules create ENDPOINT_NAME \
       --region=REGION \
       --network=NETWORK_NAME \
       --address=ADDRESS_NAME \
       --target-service-attachment=SERVICE_ATTACHMENT
    

    다음을 바꿉니다.

    • ENDPOINT_NAME: 엔드포인트에 할당할 이름

    • REGION: 엔드포인트의 리전입니다. 이 리전은 서비스 프로듀서의 서비스 연결을 포함하는 동일한 리전이어야 합니다.

    • NETWORK_NAME: 엔드포인트의 VPC 네트워크 이름

    • ADDRESS_NAME: 예약된 주소의 이름

    • SERVICE_ATTACHMENT: 서비스 제작자의 서비스 연결 URI. 예를 들면 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME입니다.

워크로드를 Private Service Connect 엔드포인트로 연결

각 워크로드가 이그레스 트래픽에 Private Service Connect 엔드포인트의 IP 주소를 사용하도록 프록시 환경 변수를 구성합니다.

예를 들어 Linux 또는 macOS 환경의 워크로드의 경우 명령줄을 사용하여 HTTP_PROXYHTTPS_PROXY 환경 변수를 일시적으로 구성할 수 있습니다.

export HTTP_PROXY="http://ENDPOINT_IP_ADDRESS:HTTP_PORT"
export HTTPS_PROXY="https://ENDPOINT_IP_ADDRESS:HTTPS_PORT"

다음을 바꿉니다.

  • ENDPOINT_IP_ADDRESS: 엔드포인트의 내부 IP 주소
  • HTTP_PORT: HTTP 트래픽을 수신하는 포트
  • HTTPS_PORT: HTTPS 트래픽을 수신하는 포트입니다.

워크로드 환경에서 프록시 변수를 영구적으로 설정하는 방법에 관한 자세한 내용은 운영체제 문서를 참고하세요.

다음 단계