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

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 주소로 바꿉니다.

다음 단계