URL 목록을 사용하여 정책 만들기

이 가이드에서는 URL 목록을 사용하여 사용자가 액세스할 수 있는 URL을 정의하는 방법을 설명합니다.

시작하기 전에

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

  • Google Cloud CLI 버전 406.0.0 이상이 설치되었는지 확인합니다.

    gcloud version | head -n1
    

    이전 gcloud CLI 버전이 설치되어 있는 경우 버전을 업데이트합니다.

    gcloud components update --version=406.0.0
    

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

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

빈 보안 정책 만들기

콘솔

  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 오류가 발생합니다.

URL 목록 만들기

URL 목록을 만들고 규칙을 추가하려면 다음 섹션의 작업을 완료하세요.

URL 목록 만들기 및 구성하기

콘솔

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

    네트워크 보안으로 이동

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

  3. URL 목록 탭을 클릭합니다.

  4. URL 목록 만들기를 클릭합니다.

  5. 만들려는 URL 목록의 이름을 입력합니다(예: myurllist).

  6. My new URL list와 같이 URL 목록에 대한 설명을 입력합니다.

  7. 리전 목록에서 URL 목록을 만들 리전을 선택합니다.

  8. 일치시킬 호스트, URL 또는 패턴 목록을 업로드하려면 목록 업로드를 클릭합니다. 자세한 내용은 UrlList 구문 참조를 참고하세요.

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

Cloud Shell

  1. 원하는 텍스트 편집기를 사용하여 원하는 파일 이름으로 URL_LIST_FILE.yaml. ReplaceURL_LIST_FILE` 파일을 만듭니다.

      name: projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME
      values: URL_LIST
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 번호
    • REGION: 이 URL 목록이 적용되는 리전
    • URL_LIST_NAME: 만들려는 URL 목록의 이름
    • URL_LIST: 일치시킬 호스트, URL 또는 패턴의 목록

    자세한 내용은 UrlList 구문 참조를 참고하세요.

    다음은 URL 목록 규칙 파일의 예시입니다.

    name: projects/PROJECT_ID/locations/REGION/urlLists/example-org-allowed-list
    values:
      - www.example.com
      - about.example.com
      - "*.google.com"
      - "github.com/example-org/*"
    

    별표(*) 문자는 YAML에서 특별한 의미를 갖습니다. 따라서 * 문자가 포함된 URL 주위에 따옴표를 추가해야 합니다.

  2. 보안 웹 프록시 규칙에서 참조할 수 있도록 URL 목록을 추가합니다.

    gcloud network-security url-lists import URL_LIST_NAME \
        --location=REGION \
        --project=PROJECT_ID \
        --source=URL_LIST_FILE.yaml
    

규칙 추가

콘솔

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

    네트워크 보안으로 이동

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

  3. 프로젝트 선택기 메뉴에서 조직 ID 또는 정책이 포함된 폴더를 선택합니다.

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

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

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

    1. 이름
    2. 설명
    3. 상태
    4. 우선순위: 규칙의 평가 순서(번호순)입니다. 규칙은 가장 높은 우선순위에서 가장 낮은 우선순위로 평가되며 0는 가장 높은 우선순위입니다.
    5. 작업 섹션에서 규칙과 일치하는 연결을 허용(허용)하거나 거부(거부)할지 지정합니다.
    6. 세션 일치 섹션에서 이전에 만든 URL 목록의 이름을 지정합니다. 예를 들면 다음과 같습니다.

        sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"
      
    7. TLS 검사를 사용 설정하려면 TLS 검사 사용 설정을 선택합니다.

    8. 애플리케이션 일치 섹션에서 요청을 일치시키는 기준을 지정합니다.

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

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

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

Cloud Shell

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

    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    basicProfile: ALLOW
    enabled: true
    priority: PRIORITY_VALUE
    description: RULE_DESCRIPTION
    sessionMatcher: SESSION_CEL_EXPRESSION
    applicationMatcher: APPLICATION_CEL_EXPRESSION
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 번호
    • REGION: 이 규칙이 적용되는 리전
    • POLICY_NAME: 보안 웹 프록시 인스턴스에서 사용하는 기존 GatewaySecurityPolicy의 이름
    • RULE_NAME: 만들려는 GatewaySecurityPolicyRule의 이름
    • PRIORITY_VALUE: 이 규칙의 우선순위 값. 숫자가 낮을수록 우선순위가 높습니다.
    • RULE_DESCRIPTION: 만들려는 정책에 대한 설명
    • SESSION_CEL_EXPRESSION: 세션의 Common Expression Language(CEL) 표현식
    • APPLICATION_CEL_EXPRESSION: 애플리케이션에 대한 CEL 표현식

    다음은 규칙 파일의 예시입니다.

    name: projects/PROJECT_ID/locations/REGION/urlLists/allow-repos
    basicProfile: ALLOW
    enabled: true
    priority: 100
    description: Allow access to our list of known code repos.
    sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"
    

  2. 이전에 만든 URL 목록을 사용하여 보안 웹 프록시 규칙을 추가합니다.

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

연결 테스트

연결을 테스트하려면 다음 curl 명령어를 사용합니다.

curl -x https://SWP_IP_ADDRESS:SWP_PORT_NUMBER HTTP_TEST_ADDRESS
--proxy-insecure

다음을 바꿉니다.

  • SWP_IP_ADDRESS: 웹 프록시의 IP 주소

  • SWP_PORT_NUMBER: 웹 프록시의 포트 번호입니다(예: 443).

  • HTTP_TEST_ADDRESS: URL_LIST의 호스트 또는 URL 항목과 일치하는 테스트할 주소(예: https://www.example.com)입니다.

요청이 성공적인 응답을 반환해야 합니다.

다음 단계