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

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

시작하기 전에

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

  2. 이 페이지에서 명령어를 실행하려면 다음 개발 환경 중 하나에서 Google Cloud CLI를 설정하세요.

    Cloud Shell

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

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

    로컬 셸

    로컬 개발 환경을 사용하려면 다음 단계를 따르세요.

    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
    

    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 콘솔에서 네트워크 보안 페이지로 이동합니다.

    네트워크 보안으로 이동

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

  3. 정책 탭을 클릭합니다.

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

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

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

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

  8. 웹 프록시에 TLS 검사를 구성하려면 TLS 검사 구성을 선택합니다.

  9. TLS 검사 정책 목록에서 만든 TLS 검사 정책을 선택합니다. TLS 검사 정책은 정책을 만든 경우에만 목록에 표시됩니다.

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

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

Cloud Shell

  1. 일부 웹 프록시 정책에는 평가를 위해 트래픽을 TLS로 암호화해야 합니다. TLS 암호화를 사용할지 여부에 따라 다음 방법 중 하나를 사용하여 정책을 만듭니다.

    • TLS 검사 구성으로 정책을 만듭니다.

      TLS 검사를 사용 설정하려면 TLS 검사 사용 설정에 설명된 절차를 수행하고 policy.yaml 파일을 만듭니다.

      description: basic Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
      tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
      
    • TLS 검사 구성 없이 정책을 만듭니다.

      TLS 검사를 사용 설정하지 않으려면 policy.yaml 파일을 만듭니다.

      description: basic Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
      
  2. 보안 웹 프록시 정책을 만듭니다.

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

보안 웹 프록시 규칙 만들기

콘솔

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

    네트워크 보안으로 이동

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

  3. 정책 탭을 클릭합니다.

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

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

  6. 규칙 필드를 채웁니다.

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

  8. 만들기를 클릭하여 정책을 만듭니다.

Cloud Shell

  1. TLS 암호화 여부에 따라 다음 임의의 방법을 사용하여 규칙을 만듭니다.

    • TLS 검사 구성으로 규칙을 만듭니다.

      TLS 검사를 사용 설정하려면 rule.yaml 파일을 만듭니다.

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-wikipedia-org
      description: Allow wikipedia
      enabled: true
      priority: 1
      basicProfile: ALLOW
      sessionMatcher: host() == 'wikipedia.org'
      applicationMatcher: request.path.contains('index.html')
      tlsInspectionEnabled: true
      
    • TLS 검사 구성 없이 규칙을 만듭니다.

      TLS 검사를 사용 설정하지 않으려면 rule.yaml 파일을 만듭니다.

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-wikipedia-org
      description: Allow wikipedia.org
      enabled: true
      priority: 1
      basicProfile: ALLOW
      sessionMatcher: host() == '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. 웹 프록시 탭을 클릭합니다.

  4. 웹 프록시 설정을 클릭합니다.

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

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

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

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

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

  10. 웹 프록시 IP 주소를 입력합니다.

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

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

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

Cloud Shell

  1. gateway.yaml 파일 만들기

    name: projects/PROJECT_ID/locations/REGION/gateways/swp1
    type: SECURE_WEB_GATEWAY
    addresses: ["10.128.0.99"]
    ports: [443]
    certificateUrls: ["projects/PROJECT_ID/locations/REGION/certificates/cert1"]
    gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
    network: projects/PROJECT_ID/global/networks/default
    subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/default
    scope: samplescope
    
  2. 보안 웹 프록시 인스턴스를 만듭니다.

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

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

연결 테스트

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

    gcloud compute ssh swp-test-vm \
        --zone=ZONE
    
  2. 보안 웹 프록시 인스턴스를 테스트합니다.

    curl -x https://10.128.0.99:443 https://wikipedia.org --proxy-insecure
    

    TLS 검사를 위해 보안 웹 프록시 인스턴스를 구성한 경우 다음 명령어를 사용합니다.

    curl -x https://10.128.0.99:443 https://wikipedia.org/index.html --proxy-insecure
    

삭제

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

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

콘솔

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

    네트워크 보안으로 이동

  2. 보안 웹 프록시를 클릭합니다. 모든 웹 프록시 목록을 보거나 특정 네트워크의 프록시만 볼 수 있습니다.

  3. 삭제하려는 웹 프록시를 선택합니다.

  4. Delete(삭제)를 클릭합니다.

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

Cloud Shell

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

allow-wikipedia-org 규칙 삭제

콘솔

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

    네트워크 보안으로 이동

  2. 보안 웹 프록시를 클릭합니다. 모든 웹 프록시 목록을 보거나 특정 네트워크의 프록시만 볼 수 있습니다.

  3. 정책 탭을 클릭합니다.

  4. 정책을 클릭합니다.

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

  6. Delete(삭제)를 클릭합니다.

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

Cloud Shell

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

보안 웹 프록시 정책 policy1 삭제

콘솔

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

    네트워크 보안으로 이동

  2. 보안 웹 프록시를 클릭합니다. 모든 웹 프록시 목록을 보거나 특정 네트워크의 프록시만 볼 수 있습니다.

  3. 정책 탭을 클릭합니다.

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

  5. Delete(삭제)를 클릭합니다.

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

Cloud Shell

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

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

콘솔

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

    VM 인스턴스로 이동

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

  3. Delete(삭제)를 클릭합니다.

Cloud Shell

gcloud compute instances delete swp-test-vm

다음 단계