태그를 사용하여 정책 만들기

Resource Manager 태그는 Google Cloud 리소스에 대한 액세스를 제어합니다. Resource Manager 태그를 사용하면 Google Cloud 리소스를 구성하고 리소스에 특정 태그가 있는지 여부에 따라 정책을 조건부로 허용하거나 거부할 수 있습니다. Resource Manager 태그를 사용하여 세그먼트 및 서비스 유형별로 각 가상 머신(VM) 인스턴스에 태그를 지정할 수 있습니다. Resource Manager 태그를 사용하면 보안 웹 프록시 정책을 만들 때 호스트를 고유하게 식별할 수 있습니다.

이 가이드에서는 다음을 수행하는 방법을 보여줍니다.

  • 빈 정책으로 보안 웹 프록시 인스턴스를 만듭니다.
  • Resource Manager 태그를 만들고 VM 인스턴스에 적용합니다.
  • Resource Manager 태그를 사용하여 보안 웹 프록시 정책을 만듭니다.
  • 보안 웹 프록시 인스턴스를 만듭니다.
  • VM에서 연결을 테스트합니다.

시작하기 전에

빈 정책으로 보안 웹 프록시 인스턴스 만들기

보안 웹 프록시 인스턴스를 만들려면 먼저 빈 보안 정책을 만든 다음 웹 프록시를 만듭니다.

빈 보안 정책 만들기

콘솔

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

    네트워크 보안으로 이동

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

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

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

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

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

  7. 리전 목록에서 정책을 만들려는 리전을 선택합니다.

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

Cloud Shell

  1. 원하는 텍스트 편집기를 사용하여 POLICY_FILE.yaml 파일을 만듭니다. POLICY_FILE을 정책 파일에 사용할 파일 이름으로 바꿉니다.

  2. 만든 YAML 파일에 다음을 추가합니다.

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    다음을 바꿉니다.

    • PROJECT_NAME: 프로젝트의 이름
    • REGION: 이 정책이 적용되는 리전
    • POLICY_NAME: 만들려는 정책의 이름
    • POLICY_DESCRIPTION: 만들려는 정책의 설명
  3. 보안 정책을 가져옵니다.

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

웹 프록시 만들기

콘솔

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

    네트워크 보안으로 이동

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

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

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

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

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

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

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

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

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

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

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

Cloud Shell

  1. 원하는 텍스트 편집기를 사용하여 GATEWAY_FILE.yaml 파일을 만듭니다. GATEWAY_FILE을 웹 프록시 파일에 사용할 파일 이름으로 바꿉니다.

  2. 만든 YAML 파일에 다음을 추가합니다.

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET_NAME
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    다음을 바꿉니다.

    • GATEWAY_NAME: 이 인스턴스의 이름
    • GATEWAY_PORT_NUMBERS: 이 게이트웨이의 포트 번호 목록(예: [80,443])
    • CERTIFICATE_URLS: SSL 인증서 URL의 목록
    • SUBNET_NAME: GATEWAY_IP_ADDRESS가 포함된 서브넷의 이름

    • GATEWAY_IP_ADDRESS: 이전에 초기 설정 단계에서 만든 프록시 서브넷 내의 보안 웹 프록시 인스턴스에 대한 IP 주소 목록(선택사항)

      IP 주소를 나열하지 않도록 선택한 경우 웹 프록시가 자동으로 IP 주소를 선택하도록 필드를 생략합니다.

  3. 보안 웹 프록시 인스턴스를 만듭니다.

    gcloud network-services gateways import GATEWAY_NAME \
        --source=GATEWAY_FILE.yaml \
        --location=REGION
    

연결 테스트

연결을 테스트하려면 Virtual Private Cloud(VPC) 네트워크 내의 모든 VM에서 curl 명령어를 사용합니다.

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure

403 Forbidden 오류가 발생합니다.

Resource Manager 태그 만들기 및 연결

Resource Manager 태그를 만들고 연결하려면 다음을 수행합니다.

  1. 태그 키 및 값을 만듭니다.

    태그를 만들 때는 GCE_FIREWALL 목적으로 태그를 지정합니다. 보안 웹 프록시를 포함하여 Google Cloud 네트워킹 기능을 사용하려면 태그를 적용하기 위해 GCE_FIREWALL 용도가 필요합니다. 하지만 다른 작업에 태그를 사용할 수 있습니다.

  2. VM 인스턴스에 태그를 바인딩합니다.

보안 웹 프록시 규칙 만들기

보안 웹 프록시 규칙을 만들려면 다음을 수행합니다.

  1. 원하는 텍스트 편집기를 사용하여 RULE_FILE.yaml 파일을 만듭니다. RULE_FILE을 선택한 파일 이름으로 바꿉니다.

  2. 선택한 태그의 URL에 대한 액세스를 허용하려면 YAML 파일에 다음을 추가합니다.

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    description: RULE_DESCRIPTION
    enabled: true
    priority: RULE_PRIORITY
    sessionMatcher: CEL_EXPRESSION
    basicProfile: ALLOW
    

    다음을 바꿉니다.

    • RULE_NAME: 이 규칙의 이름
    • RULE_DESCRIPTION: 만들려는 규칙에 대한 설명
    • RULE_PRIORITY: 이 규칙의 우선순위입니다. 숫자가 작을수록 우선순위가 높습니다.
    • CEL_EXPRESSION: Common Expression Language(CEL) 표현식

      자세한 내용은 CEL 일치자 언어 참조를 참조하세요.

    예를 들어 원하는 태그에서 example.com에 대한 액세스를 허용하려면 sessionMatcher에 대해 만든 YAML 파일에 다음을 추가합니다.

    sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"
    

    TAG_VALUEtagValues/1234 형식의 허용하려는 태그로 바꿉니다.

  3. 만든 규칙을 가져옵니다.

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

연결 테스트

연결을 테스트하려면 TAG_VALUE 태그와 연결된 VM에서 curl 명령어를 사용합니다.

curl -x https://IPv4_ADDRESS:443 http://example.com 
--proxy-insecure

IPv4_ADDRESS를 보안 웹 프록시 인스턴스의 IPv4 주소로 바꿉니다.

다음 단계