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

이 빠른 시작 가이드에서는 보안 웹 프록시 인스턴스를 배포하고 테스트하는 방법을 설명합니다.

이 단계에서는 명시적 프록시로 작동하는 명시적 라우팅 모드에서 보안 웹 프록시를 배포하는 방법을 설명합니다. 명시적 라우팅 모드의 보안 웹 프록시 인스턴스는 Private Service Connect 서비스로 게시할 수 있습니다.

또는 다음 홉 라우팅 모드에서 보안 웹 프록시를 배포할 수 있습니다. 자세한 내용은 보안 웹 프록시를 다음 홉으로 배포를 참고하세요.

시작하기 전에

  1. 초기 설정 단계를 완료합니다.

  2. 선택사항: 이 가이드에 지정된 gcloud 명령줄 예시를 실행하려면 다음 개발 환경 중 하나에 Google Cloud CLI를 설치합니다.

    Cloud Shell

    gcloud CLI로 이미 설정된 온라인 터미널을 사용하려면 Cloud Shell을 활성화하세요.

    이 페이지 하단에서 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

    이전에 gcloud CLI를 설치한 경우 gcloud components update를 실행하여 최신 버전을 사용할 수 있는지 확인합니다.

    로컬 셸

    로컬 개발 환경을 사용하려면 다음 단계를 수행합니다.

    1. gcloud CLI를 설치합니다.
    2. gcloud CLI를 초기화합니다.
  3. Google Cloud 프로젝트를 만들거나 선택합니다.

    이 절차에서 생성한 리소스를 유지하지 않으려면 기존 프로젝트를 선택하지 말고 프로젝트를 새로 만드세요. 작업이 끝나면 프로젝트를 삭제하여 프로젝트와 관련된 모든 리소스를 삭제할 수 있습니다.

    콘솔

    Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

    Cloud Shell

    • Google Cloud 프로젝트를 만듭니다.

      gcloud projects create PROJECT_ID
      

      PROJECT_ID를 원하는 프로젝트 ID로 바꿉니다.

    • 생성한 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID
      
  4. Linux 가상 머신 (VM) 인스턴스를 만듭니다.

    gcloud compute instances create swp-test-vm \
        --subnet=default \
        --zone=ZONE \
        --image-project=debian-cloud \
        --image-family=debian-11
    

    ZONE을 테스트 VM 인스턴스의 영역으로 바꿉니다.

    Compute Engine은 VM을 만드는 사용자에게 Compute 인스턴스 관리자 역할(roles/compute.instanceAdmin)을 부여합니다. Compute Engine은 해당 사용자를 sudo 그룹에 추가합니다.

  5. 방화벽 규칙을 만듭니다.

    gcloud compute firewall-rules create default-allow-ssh \
        --direction=INGRESS \
        --priority=1000 \
        --network=default \
        --action=ALLOW \
        --rules=tcp:22 \
        --source-ranges=0.0.0.0/0
    

보안 웹 프록시 정책 만들기

콘솔

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

    SWP 정책으로 이동

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

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

  4. 정책의 설명을 입력합니다(예: My new swp policy).

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

  6. 정책에 대한 규칙을 만들려면 규칙 추가를 클릭합니다. 자세한 내용은 보안 웹 프록시 규칙 만들기 섹션을 참고하세요.

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

Cloud Shell

  1. policy.yaml 파일을 생성합니다.

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

    다음을 바꿉니다.

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

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

보안 웹 프록시 규칙 만들기

콘솔

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

    SWP 정책으로 이동

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

  3. 규칙 추가를 클릭합니다.

  4. 다음 규칙 필드를 채웁니다.

    1. 이름
    2. 설명
    3. 상태
    4. 우선순위: 규칙의 평가 순서(번호순)입니다. 규칙은 가장 높은 우선순위에서 가장 낮은 우선순위로 평가되며 0는 가장 높은 우선순위입니다.
    5. 작업 섹션에서 규칙과 일치하는 연결을 허용(허용)하거나 거부(거부)할지 지정합니다.
    6. 세션 일치 섹션에서 세션을 일치시키는 기준을 지정합니다. SessionMatcher의 구문에 대한 자세한 내용은 CEL 일치자 언어 참조를 참고하세요.
    7. 애플리케이션 일치 섹션에서 요청을 일치시키는 기준을 지정합니다. TLS 검사에 대한 규칙을 사용 설정하지 않았으므로 해당 요청은 HTTP 트래픽만 일치시킬 수 있습니다.

      TPC 트래픽 일치에 대한 자세한 내용은 애플리케이션의 TCP 프록시 규칙 구성을 참고하세요.

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

  5. 규칙 추가를 클릭하여 다른 규칙을 추가합니다.

Cloud Shell

  1. 여기에 표시된 대로 rule.yaml 파일을 만듭니다. SessionMatcher의 구문에 대한 자세한 내용은 CEL 일치자 언어 참조를 참고하세요.

    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-wikipedia-org
    description: Allow wikipedia.org
    enabled: true
    priority: 1
    basicProfile: ALLOW
    sessionMatcher: host() == 'www.wikipedia.org'
    
  2. 보안 정책 규칙을 만듭니다.

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

웹 프록시 설정

이 섹션에서는 명시적 프록시로 작동하는 명시적 라우팅 모드에서 보안 웹 프록시를 배포하는 방법을 설명합니다.

콘솔

  1. Google Cloud 콘솔에서 웹 프록시 페이지로 이동합니다.

    웹 프록시로 이동

  2. 보안 웹 프록시 만들기를 클릭합니다.

  3. 만들려는 웹 프록시의 이름(예: myswp)을 입력합니다.

  4. 웹 프록시에 대한 설명(예: My new swp)을 입력합니다.

  5. 라우팅 모드에서 명시적 옵션을 선택합니다.

  6. 리전 목록에서 웹 프록시를 만들 리전을 선택합니다.

  7. 네트워크 목록에서 웹 프록시를 만들 네트워크를 선택합니다.

  8. 서브네트워크 목록에서 웹 프록시를 만들 서브네트워크를 선택합니다.

    중요: 이전에 초기 설정 단계의 일부로 만든 VPC 서브넷을 사용해야 합니다.

  9. 선택사항: 보안 웹 프록시 IP 주소를 입력합니다. 이전 단계에서 만든 서브네트워크에 있는 보안 웹 프록시 IP 주소 범위의 IP 주소를 입력할 수 있습니다. IP 주소를 입력하지 않으면 보안 웹 프록시 인스턴스가 선택한 서브네트워크에서 IP 주소를 자동으로 선택합니다.

  10. 인증서 목록에서 웹 프록시를 만드는 데 사용할 인증서를 선택합니다.

  11. 정책 목록에서 웹 프록시를 연결하기 위해 만든 정책을 선택합니다.

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

Cloud Shell

  1. gateway.yaml 파일을 생성합니다.

    name: projects/PROJECT_ID/locations/REGION/gateways/swp1
    type: SECURE_WEB_GATEWAY
    addresses: ["IP_ADDRESS"]
    ports: [443]
    gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
    network: projects/PROJECT_ID/global/networks/NETWORK
    subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK
    routingMode: EXPLICIT_ROUTING_MODE
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트의 프로젝트 ID
    • REGION: 보안 웹 프록시 인스턴스의 리전
    • IP_ADDRESS: 보안 웹 프록시 인스턴스의 IP 주소
    • NETWORK: 보안 웹 프록시 인스턴스의 네트워크
    • SUBNETWORK: 보안 웹 프록시 인스턴스의 서브네트워크입니다. 이전에 초기 설정 단계의 일부로 만든 VPC 서브넷을 사용해야 합니다.
  2. gateway.yaml를 기반으로 보안 웹 프록시 인스턴스를 만듭니다.

    gcloud network-services gateways import swp1 \
        --source=gateway.yaml \
        --location=REGION
    

    보안 웹 프록시 인스턴스를 배포하는 데 몇 분 정도 걸릴 수 있습니다.

연결 테스트

  1. 이전에 프로비저닝한 VM에 연결합니다.

    gcloud compute ssh swp-test-vm \
        --zone=ZONE
    

    ZONE을 테스트 VM 인스턴스의 영역으로 바꿉니다.

  2. 보안 웹 프록시 인스턴스를 테스트합니다.

    curl -s -o /dev/null -w "%{http_code}\\n" -x IP_ADDRESS:443 https://www.wikipedia.org
    

    IP_ADDRESS를 보안 웹 프록시 인스턴스의 IP 주소로 바꿉니다. 이 명령어는 www.wikipedia.org에서 반환된 HTTP 상태 코드를 출력합니다. 명령어가 성공하면 상태 코드는 200입니다. 하지만 프록시에 문제가 있으면 명령어가 연결 오류를 나타내는 000 상태 코드를 반환합니다. 자세한 오류 메시지를 보려면 명령어에 -v 옵션을 추가하세요.

이 페이지에 언급된 예에서는 TLS 검사가 구성되지 않았습니다. TLS 검사를 위해 보안 웹 프록시를 구성한 다음 보안 웹 프록시 인스턴스를 테스트하는 방법에 관한 자세한 내용은 TLS 검사 사용 설정을 참고하세요.

삭제

이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.

swp1 보안 웹 프록시 인스턴스 삭제

콘솔

  1. Google Cloud 콘솔에서 웹 프록시 페이지로 이동합니다. 모든 웹 프록시 목록을 보거나 특정 네트워크에서 사용할 수 있는 웹 프록시만 볼 수 있습니다.

    웹 프록시로 이동

  2. 삭제할 웹 프록시를 선택합니다.

  3. 삭제를 클릭합니다.

  4. 삭제를 다시 클릭하여 확인합니다.

Cloud Shell

gcloud network-services gateways delete swp1 \
    --location=REGION

REGION을 보안 웹 프록시 인스턴스의 리전으로 바꿉니다.

allow-wikipedia-org 규칙 삭제

콘솔

  1. Google Cloud 콘솔에서 웹 프록시 페이지로 이동합니다. 모든 웹 프록시 목록을 보거나 특정 네트워크에서 사용할 수 있는 웹 프록시만 볼 수 있습니다.

    웹 프록시로 이동

  2. 정책을 클릭합니다.

  3. 삭제하려는 규칙을 선택합니다.

  4. 삭제를 클릭합니다.

  5. 삭제를 다시 클릭하여 확인합니다.

Cloud Shell

gcloud network-security gateway-security-policies rules delete allow-wikipedia-org \
    --location=REGION \
    --gateway-security-policy=policy1

REGION을 정책의 리전으로 바꿉니다.

policy1 보안 웹 프록시 정책 삭제

콘솔

  1. Google Cloud 콘솔에서 웹 프록시 페이지로 이동합니다. 모든 웹 프록시 목록을 보거나 특정 네트워크에서 사용할 수 있는 웹 프록시만 볼 수 있습니다.

    웹 프록시로 이동

  2. 삭제할 정책을 클릭합니다.

  3. 삭제를 클릭합니다.

  4. 삭제를 다시 클릭하여 확인합니다.

Cloud Shell

gcloud network-security gateway-security-policies delete policy1 \
    --location=REGION

REGION을 정책의 리전으로 바꿉니다.

swp-test-vm Linux VM 인스턴스 삭제

콘솔

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 삭제할 인스턴스를 선택합니다.

  3. 삭제를 클릭합니다.

Cloud Shell

gcloud compute instances delete swp-test-vm

다음 단계