URL 필터링 보안 프로필 만들기 및 관리

이 페이지에서는 Google Cloud 콘솔과 Google Cloud CLI를 사용하여 url-filtering 유형의 보안 프로필을 만들고 관리하는 방법을 설명합니다.

시작하기 전에

역할

보안 프로필을 생성, 보기, 업데이트 또는 삭제하는 데 필요한 권한을 얻으려면 관리자에게 조직에 필요한 IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

URL 필터링 보안 프로필 만들기

URL 필터링 보안 프로필 (url-filtering 유형의 보안 프로필)을 만들 때 보안 프로필 이름을 문자열이나 고유 URL 식별자로 지정할 수 있습니다. 조직 범위 보안 프로필의 고유 URL을 다음 형식으로 구성할 수 있습니다.

organization/ORGANIZATION_ID/locations/LOCATION/securityProfiles/SECURITY_PROFILE_NAME

보안 프로필 이름에 고유한 URL 식별자를 사용하는 경우 보안 프로필의 조직과 위치는 이미 URL 식별자에 포함되어 있습니다. 그러나 보안 프로필 이름만 사용하는 경우 조직과 위치를 별도로 지정해야 합니다. 고유 URL 식별자에 대한 자세한 내용은 보안 프로필 사양을 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 보안 프로필 페이지로 이동합니다.

    보안 프로필로 이동

  2. 프로젝트 선택기 메뉴에서 조직을 선택합니다.

  3. 보안 프로필 탭을 선택합니다.

  4. 프로필 만들기를 클릭합니다.

  5. 이름 필드에 이름을 입력합니다.

  6. 선택사항: 설명 필드에 설명을 입력합니다.

  7. Cloud Next Generation Firewall Enterprise 보안 프로필을 만들려면 용도 섹션에서 Cloud NGFW Enterprise를 선택합니다.

  8. URL 필터링 보안 프로필을 만들려면 유형 섹션에서 URL 필터링을 선택합니다.

  9. URL 필터 섹션에서 URL 필터 만들기 버튼을 클릭합니다.

  10. URL 필터 만들기 창에서 다음 세부정보를 지정합니다.

    • 우선순위: URL 필터의 우선순위를 지정합니다.
    • 작업: Cloud NGFW가 트래픽에 대해 실행하는 작업을 지정합니다.
      • 허용: URL과 일치하는 연결을 허용합니다.
      • 거부: URL과 일치하는 연결을 거부합니다.
    • URL 목록: URL 또는 일치자 문자열 목록을 지정합니다. 각 URL 또는 매처 문자열 항목은 공백이나 구분 기호 없이 한 줄에 표시되어야 합니다. 각 항목은 도메인으로만 구성될 수 있습니다. 매처 문자열에 대한 자세한 내용은 URL용 매처 문자열을 참고하세요.
  11. 만들기를 클릭합니다.

gcloud

  1. 다음 콘텐츠로 YAML 파일을 만듭니다.

    name: NAME
    type: PROFILE_TYPE
    urlFilteringProfile:
    urlFilters:
      - filteringAction: ACTION
        priority: PRIORITY
        urls: URL[,URL,...]
    

    다음을 바꿉니다.

    • NAME: URL 필터링 보안 프로필의 이름입니다. 이름을 문자열이나 고유한 URL 식별자로 지정할 수 있습니다.

    • PROFILE_TYPE: 보안 프로필 유형(url-filtering 또는 threat-prevention)

    • ACTION: 다음 작업 중 하나를 지정합니다.

      • allow: URL과 일치하는 연결을 허용합니다.
      • deny: URL과 일치하는 연결을 거부합니다.
    • PRIORITY: URL 필터의 우선순위로, 0~2147483647입니다.

    • URLs: 매처 문자열을 쉼표로 구분한 목록입니다. 예를 들면 www.example.comwww.altostrat.com입니다.

  2. URL 필터링 보안 프로필을 만들려면 gcloud network-security security-profiles import 명령어를 실행합니다.

    gcloud network-security security-profiles import NAME \
        --location LOCATION \
        --source FILE_NAME \
        --organization = ORGANIZATION_ID
    

    또는 gcloud network-security security-profiles url-filtering create 명령어를 사용하여 YAML 파일 없이 URL 필터링 보안 프로필을 만들 수 있습니다.

    gcloud network-security security-profiles url-filtering create NAME \
        --location LOCATION \
        --organization ORGANIZATION_ID \
        --description DESCRIPTION
    

    다음을 바꿉니다.

    • NAME: URL 필터링 보안 프로필의 이름입니다. 이름을 문자열이나 고유한 URL 식별자로 지정할 수 있습니다.

      NAME 플래그에 고유한 URL 식별자를 사용하는 경우 LOCATIONORGANIZATION 플래그를 생략할 수 있습니다.

    • LOCATION: URL 필터링 보안 프로필의 위치입니다.

      위치는 항상 global로 설정됩니다. NAME 플래그에 고유한 URL 식별자를 사용하는 경우 LOCATION 플래그를 생략할 수 있습니다.

    • FILE_NAME: YAML 파일의 이름입니다. 예를 들면 url-filtering-sp.yaml입니다.

    • ORGANIZATION_ID: URL 필터링 보안 프로필이 생성된 조직입니다. name 플래그에 고유한 URL 식별자를 사용하는 경우 ORGANIZATION_ID 플래그를 생략할 수 있습니다.

    • DESCRIPTION: URL 필터링 보안 프로필에 대한 선택적 설명입니다.

    예를 들어 다음 코드 스니펫은 www.example.comwww.altostrat.com에 대한 요청을 허용하지만 다른 모든 도메인에 대한 요청을 거부하는 URL 필터링 보안 프로필의 예를 보여줍니다.

    url_filtering_profile:
    url_filters:
      - filtering_action: ALLOW
        priority: 1000
        urls: ['www.example.com', 'www.altostrat.com']
      # the following URL filter is implicit and will be processed last
      - filtering_action: DENY
        priority: 2147483647
        urls: ['*']
    

암시적 거부 URL 필터

URL 필터링 보안 프로필에는 항상 우선순위가 가장 낮은 (2147483647) 기본 URL 필터가 포함되어 있으며, 이 필터는 우선순위가 높은 URL 필터와 일치하지 않는 모든 연결을 거부합니다. 다음 코드 스니펫은 암시적 거부 URL 필터의 예를 보여줍니다.

  url_filtering_profile:
  url_filters:
    # user-specified URL filters
    - filtering_action: DENY
      priority: 1000
      urls: ['www.example.com','www.altostrat.com']
    - filtering_action: ALLOW
      priority: 2000
      urls: ['www.example.org','www.example.net']
    # implicit deny URL filter that will be processed last
    - filtering_action: DENY
      priority: 2147483647
      urls: ['*']
  

URL 필터 보안 프로필을 보거나 내보낼 때 암시적 거부 URL 필터가 표시될 수 있습니다. 암시적 필터는 수정하거나 삭제할 수 없습니다. 예를 들어 프로필의 기본 작업을 DENY(암시적 필터에 의해 적용됨)에서 ALLOW로 변경하려면 암시적 필터 전에 Cloud NGFW가 처리하는 명시적 필터를 추가해야 합니다.

  url_filtering_profile:
  url_filters:
    # user-specified filters
    - filtering_action: DENY
      priority: 1000
      urls: ['www.example.com','www.altostrat.com']
    # explicit allow URL filter that you can add
    - filtering_action: ALLOW
      priority: 2000
      urls: ['*']
    # implicit deny URL filter that will be processed last
    - filtering_action: DENY
      priority: 2147483647
      urls: ['*']
  

URL의 일치자 문자열

매처 문자열은 URL 필터의 urls 필드에 지정하는 값입니다. URL 필터 내에 하나 이상의 일치자 문자열을 지정할 수 있습니다.

와일드 카드

URL 목록의 각 일치자 문자열은 제한된 방식으로 와일드 카드 문자 (*)를 지원합니다.

  • 각 일치자 문자열은 별표가 첫 번째 또는 유일한 문자인 경우에만 별표 (*) 1개를 지원할 수 있습니다.
  • 별표 (*)는 다음과 같이 해석될 수 있습니다.

    • 마침표(.) 앞에 별표(*)가 있으면 도메인의 모든 하위 도메인을 나타냅니다.

      예를 들어 *.example.com 일치자 문자열은 a.example.coma.b.c.example.com와 일치하지만 example.com와는 일치하지 않습니다.

      url_filtering_profile:
      url_filters:
        # user-specified filters
        - filtering_action: ALLOW
          priority: 1000
          urls: ['*.example.com']
        # implicit deny URL filter that will be processed last
        - filtering_action: DENY
          priority: 2147483647
          urls: ['*']
      

      위 예시에서 Cloud NGFW는 example.com의 하위 도메인으로 향하는 트래픽은 허용하지만 나머지 아웃바운드 트래픽은 거부합니다.

    • 라벨 앞에 별표 (*)가 있으면 도메인 및 모든 하위 도메인을 나타냅니다.

      예를 들어 매처 문자열 *example.coma.example.com, a.b.c.example.com, example.com와 일치합니다.

      url_filtering_profile:
      url_filters:
        # user-specified filters
        - filtering_action: ALLOW
          priority: 1000
          urls: ['*example.com']
        # implicit deny URL filter that will be processed last
        - filtering_action: DENY
          priority: 2147483647
          urls: ['*']
      

      위의 예에서 Cloud NGFW는 example.comexample.com의 하위 도메인으로 향하는 트래픽을 허용하지만 나머지 아웃바운드 트래픽은 거부합니다.

    • Cloud NGFW는 별표 (*)를 정규 표현식 와일드 카드로 해석하지 않습니다.

      예를 들어 *example.testnewexample.test 또는 a.newexample.test과 일치하지 않습니다. example.testexample.test의 하위 도메인과만 일치합니다.

    • 다른 문자가 없는 단일 별표 (*)는 모든 요청과 일치함을 나타냅니다.

      예를 들어 우선순위가 가장 낮은 명시적 허용 URL 필터의 일치자 문자열에는 별표 (*)만 포함되어 있으며 DENY의 기본 작업을 재정의하는 ALLOW 작업이 있습니다. 이는 암시적 거부 URL 필터가 우선순위가 높은 URL 필터와 일치하지 않는 요청에 기본 DENY를 적용하기 때문입니다.

      가장 높은 우선순위의 URL 필터(명시적 ALLOW 또는 암시적 DENY)에 따라 SNI 또는 도메인 정보가 없는 경우 Cloud NGFW가 연결을 허용하는지 아니면 거부하는지가 결정됩니다. 이는 암호화되지 않은 HTTP 트래픽의 경우 또는 암호화된 메시지 헤더에 대해 TLS 검사가 사용 중지된 경우 발생할 수 있습니다.

      url_filtering_profile:
      url_filters:
        # user-specified filters
        - filtering_action: DENY
          priority: 1000
          urls: ['www.example.com','www.altostrat.com']
        # explicit allow URL filter that you can add
        - filtering_action: ALLOW
          priority: 2000
          urls: ['*']
        # implicit deny URL filter that will be processed last
        - filtering_action: DENY
          priority: 2147483647
          urls: ['*']
      

제한사항

  • 매처 문자열은 도메인 또는 하위 도메인을 나타냅니다.
  • 일치자 문자열은 슬래시 (/) 문자를 지원하지 않습니다. 예를 들어 www.example.com/images는 사용할 수 없습니다.
  • 일치자 문자열은 스키마 또는 프로토콜 이름을 지원하지 않습니다. 예를 들면 http://www.example.com입니다.
  • 일치자 문자열은 포트 번호를 지원하지 않습니다. 예를 들면 www.example.com:80입니다.
  • 일치자 문자열은 ASCII 문자, 숫자, 특수문자(하이픈(-), 마침표(.), 별표(*))만 지원합니다.

ASCII 문자, 숫자, 하이픈 (-), 마침표 (.), 별표 (*) 이외의 문자가 포함된 도메인 이름을 변환하려면 Punycode를 사용해야 합니다. Punycode는 유니코드 도메인 이름을 ASCII 호환 형식으로 변환하는 인코딩 표준입니다.

  • 라벨이 두 개 이상인 경우 마침표 (.)를 사용하여 구분합니다. 라벨에는 하나 이상의 하이픈 (-)이 포함될 수 있지만 라벨이 하이픈으로 시작하거나 끝나서는 안 됩니다. 각 라벨에는 최대 63자(영문 기준)까지 포함할 수 있습니다.

  • URL 필터는 도메인 이름의 시작 부분에 마침표를 사용하거나 일치자 문자열 내에 연속된 마침표를 사용하는 것을 지원하지 않습니다. URL 필터는 끝에 마침표를 허용하지만 Cloud NGFW는 URL 필터를 저장하기 전에 마침표를 삭제합니다.

  • Cloud NGFW는 URL 필터를 저장하기 전에 일치자 문자열을 소문자로 변환합니다. Cloud NGFW는 다른 정규화를 수행하지 않습니다.

  • 각 도메인 이름에는 최대 255자(영문 기준)까지 포함할 수 있습니다.

URL 필터링 보안 프로필 보기

조직의 특정 URL 필터링 보안 프로필의 세부정보를 볼 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 보안 프로필 페이지로 이동합니다.

    보안 프로필로 이동

  2. 보안 프로필 탭을 선택합니다. 구성된 보안 프로필 목록이 탭에 표시됩니다.

  3. URL 필터링 유형의 보안 프로필을 클릭하여 프로필 세부정보를 확인합니다.

gcloud

URL 필터링 보안 프로필의 세부정보를 보려면 gcloud network-security security-profiles url-filtering describe 명령어를 사용합니다.

gcloud network-security security-profiles url-filtering describe NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \

다음을 바꿉니다.

  • NAME: 설명하려는 url-filtering 유형의 보안 프로필 이름입니다. 이름을 문자열이나 고유한 URL 식별자로 지정할 수 있습니다.

  • ORGANIZATION_ID: URL 필터링 보안 프로필이 생성된 조직입니다. NAME 플래그에 고유한 URL 식별자를 사용하는 경우 ORGANIZATION_ID 플래그를 생략할 수 있습니다.

  • LOCATION: URL 필터링 보안 프로필의 위치입니다. 위치는 항상 global로 설정됩니다. NAME 플래그에 고유한 URL 식별자를 사용하는 경우 LOCATION 플래그를 생략할 수 있습니다.

URL 필터링 보안 프로필 나열

조직 내 모든 URL 필터링 보안 프로필을 나열할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 보안 프로필 페이지로 이동합니다.

    보안 프로필로 이동

  2. 보안 프로필 탭을 선택합니다. 구성된 보안 프로필 목록이 탭에 표시됩니다.

gcloud

모든 URL 필터링 보안 프로필을 나열하려면 gcloud network-security security-profiles url-filtering list 명령어를 사용합니다.

gcloud network-security security-profiles url-filtering list \
    --organization ORGANIZATION_ID \
    --location LOCATION

다음을 바꿉니다.

  • ORGANIZATION_ID: URL 필터링 보안 프로필이 생성되는 조직입니다.

  • LOCATION: URL 필터링 보안 프로필의 위치입니다. 위치는 항상 global로 설정됩니다.

URL 필터링 보안 프로필 삭제

이름, 위치, 조직을 지정하여 URL 필터링 보안 프로필을 삭제할 수 있습니다. 그러나 보안 프로필 그룹에서 보안 프로필을 참조하는 경우에는 해당 보안 프로필을 삭제할 수 없습니다.

콘솔

  1. Google Cloud 콘솔에서 보안 프로필 페이지로 이동합니다.

    보안 프로필로 이동

  2. 보안 프로필 탭을 선택합니다. 구성된 보안 프로필 목록이 탭에 표시됩니다.

  3. 삭제하려는 보안 프로필을 선택한 후 삭제를 클릭합니다.

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

gcloud

URL 필터링 보안 프로필을 삭제하려면 gcloud network-security security-profiles url-filtering delete 명령어를 사용합니다.

gcloud network-security security-profiles url-filtering delete NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION

다음을 바꿉니다.

  • NAME: 삭제하려는 URL 필터링 보안 프로필의 이름입니다. 이름을 문자열이나 고유한 URL 식별자로 지정할 수 있습니다.

  • ORGANIZATION_ID: URL 필터링 보안 프로필이 생성된 조직입니다. NAME 플래그에 고유한 URL 식별자를 사용하는 경우 ORGANIZATION_ID 플래그를 생략할 수 있습니다.

  • LOCATION: URL 필터링 보안 프로필의 위치입니다.

    위치는 항상 global로 설정됩니다. NAME 플래그에 고유한 URL 식별자를 사용하는 경우 LOCATION 플래그를 생략할 수 있습니다.

URL 필터링 보안 프로필 가져오기

YAML 파일에서 URL 필터링 보안 프로필 (맞춤 생성 또는 이전에 내보낸)을 가져올 수 있습니다. URL 필터링 보안 프로필을 가져올 때 이름이 동일한 프로필이 이미 있는 경우 Cloud NGFW는 기존 프로필을 업데이트합니다.

gcloud

YAML 파일에서 URL 필터링 보안 프로필을 가져오려면 gcloud network-security security-profiles import 명령어를 사용합니다.

gcloud network-security security-profiles import NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \
    --source FILE_NAME

다음을 바꿉니다.

  • NAME: 가져오려는 url-filtering 유형의 보안 프로필 이름입니다. 이름을 문자열이나 고유한 URL 식별자로 지정할 수 있습니다.

    NAME 플래그에 고유한 URL 식별자를 사용하는 경우 ORGANIZATION_IDLOCATION 플래그를 생략할 수 있습니다.

  • ORGANIZATION_ID: URL 필터링 보안 프로필이 생성된 조직입니다. NAME 플래그에 고유한 URL 식별자를 사용하는 경우 ORGANIZATION_ID 플래그를 생략할 수 있습니다.

  • LOCATION: URL 필터링 보안 프로필의 위치입니다. 위치는 항상 global로 설정됩니다. NAME 플래그에 고유한 URL 식별자를 사용하는 경우 LOCATION 플래그를 생략할 수 있습니다.

  • FILE_NAME: URL 필터링 보안 프로필의 구성 내보내기 데이터가 포함된 YAML 파일의 경로입니다. 예를 들면 url-filtering-sp.yaml입니다.

    YAML 파일에는 출력 전용 필드가 포함되어서는 안 됩니다. 또는 source 플래그를 생략하여 표준 입력에서 읽을 수 있습니다.

URL 필터링 보안 프로필 내보내기

URL 필터링 보안 프로필을 YAML 파일로 내보낼 수 있습니다. 예를 들어 사용자 인터페이스를 사용하여 대규모 보안 프로필을 수정하는 대신 이 기능을 사용하여 보안 프로필을 내보내고, 빠르게 수정하고, 다시 가져올 수 있습니다.

gcloud

URL 필터링 보안 프로필을 YAML 파일로 내보내려면 gcloud network-security security-profiles export 명령어를 사용합니다.

gcloud network-security security-profiles export NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \
    --destination FILE_NAME

다음을 바꿉니다.

  • NAME: 내보내려는 url-filtering 유형의 보안 프로필 이름입니다. 이름을 문자열이나 고유한 URL 식별자로 지정할 수 있습니다.

    NAME 플래그에 고유한 URL 식별자를 사용하는 경우 ORGANIZATION_IDLOCATION 플래그를 생략할 수 있습니다.

  • ORGANIZATION_ID: URL 필터링 보안 프로필이 생성된 조직입니다. NAME 플래그에 고유한 URL 식별자를 사용하는 경우 ORGANIZATION_ID 플래그를 생략할 수 있습니다.

  • LOCATION: URL 필터링 보안 프로필의 위치입니다. 위치는 항상 global로 설정됩니다. NAME 플래그에 고유한 URL 식별자를 사용하는 경우 LOCATION 플래그를 생략할 수 있습니다.

  • FILE_NAME: Cloud NGFW가 URL 필터링 보안 프로필의 구성을 내보낼 YAML 파일의 경로입니다. 예를 들면 url-filtering-sp.yaml입니다.

    내보낸 구성 데이터에는 출력 전용 필드가 포함되지 않습니다. 또는 destination 플래그를 생략하여 표준 출력에 쓸 수 있습니다.

다음 단계