URL フィルタリング セキュリティ プロファイルの作成と管理

このページでは、 Google Cloud コンソールと Google Cloud CLI を使用して、タイプ url-filteringセキュリティ プロファイルを作成して管理する方法について説明します。

始める前に

  • プロジェクトで Network Security API有効にする必要があります。
  • このガイドの gcloud コマンドラインのサンプルを実行する場合は、gcloud CLI をインストールします。

ロール

セキュリティ プロファイルを作成、表示、更新、削除するために必要な権限を取得するには、組織に必要な 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: 0 ~ 2147483647 の範囲の URL フィルタの優先度。

    • 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 識別子を使用する場合、LOCATION フラグと ORGANIZATION フラグは省略できます。

    • 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 フィルタ内には 1 つ以上のマッチャー文字列を指定できます。

ワイルドカード

URL リストに指定するマッチャー文字列 1 つにつき、ワイルドカード文字(*)を 1 つ、限定的に使用できます。

  • アスタリスク(*)は、マッチャー文字列ごとに 1 つのみ使用可能です。アスタリスクは先頭の文字として使用するか、アスタリスクだけを指定する必要があります。
  • アスタリスク(*)は、次のように解釈できます。

    • アスタリスク(*)の後にピリオド(.)を指定すると、ドメインのすべてのサブドメインを表します。

      たとえば、マッチャー文字列 *.example.com は、a.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.com のサブドメインへのトラフィックを許可しますが、残りのアウトバウンド トラフィックは拒否します。

    • アスタリスク(*)の後にラベルを指定すると、ドメインとすべてのサブドメインを表します。

      たとえば、マッチャー文字列 *example.com は、a.example.coma.b.c.example.comexample.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 のサブドメインのみです。

    • アスタリスク 1 個(*)のみで他の文字を指定しない場合は、すべてのリクエストに一致することを表します。

      たとえば、優先度が最も低い明示的な許可 URL フィルタのマッチャー文字列にはアスタリスク(*)のみが含まれており、DENY のデフォルト アクションをオーバーライドする ALLOW アクションがあります。これは、暗黙的な拒否 URL フィルタが、優先度の高い URL フィルタに一致しないリクエストに対してデフォルトの DENY を適用するためです。

      最も優先度の高い URL フィルタ(明示的な ALLOW または暗黙的な DENY)は、Cloud NGFW が SNI またはドメイン情報がない場合に接続を許可するか拒否するかを決定します。これは、暗号化されていない 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 は、Unicode ドメイン名を ASCII 互換形式に変換するエンコード規格です。

  • ラベルが複数ある場合は、ピリオド(.)で区切ります。ラベルには 1 つ以上のハイフン(-)を含めることができますが、先頭または末尾をハイフンにすることはできません。各ラベルは最大 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_ID フラグと LOCATION フラグは省略できます。

  • 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_ID フラグと LOCATION フラグは省略できます。

  • ORGANIZATION_ID: URL フィルタリング セキュリティ プロファイルが作成される組織。NAME フラグに一意の URL 識別子を使用する場合、ORGANIZATION_ID フラグは省略できます。

  • LOCATION: URL フィルタリング セキュリティ プロファイルのロケーション。ロケーションは常に global に設定されます。NAME フラグに一意の URL 識別子を使用する場合、LOCATION フラグは省略できます。

  • FILE_NAME: Cloud NGFW が URL フィルタリング セキュリティ プロファイルの構成をエクスポートする YAML ファイルのパス。例: url-filtering-sp.yaml

    エクスポートされた構成データには、出力専用フィールドは含まれません。また、destination フラグを省略して標準出力に書き込むこともできます。

次のステップ