このページでは、 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 識別子の詳細については、セキュリティ プロファイルの仕様をご覧ください。
コンソール
Google Cloud コンソールで、[セキュリティ プロファイル] ページに移動します。
プロジェクト セレクタのメニューで、組織を選択します。
[セキュリティ プロファイル] タブを選択します。
[プロファイルの作成] をクリックします。
必要に応じて、[名前] フィールドに名前を入力します。
省略可: [説明] フィールドに説明を入力します。
Cloud Next Generation Firewall Enterprise セキュリティ プロファイルを作成するには、[目的] セクションで [Cloud NGFW Enterprise] を選択します。
URL フィルタリング セキュリティ プロファイルを作成するには、[タイプ] セクションで [URL フィルタリング] を選択します。
[URL フィルタ] セクションで、[URL フィルタを作成] ボタンをクリックします。
[URL フィルタを作成] ペインで、次の詳細を指定します。
- 優先度: URL フィルタの優先度を指定します。
- アクション: Cloud NGFW がトラフィックに対して実行するアクションを指定します。
- 許可: URL に一致する接続を許可します。
- 拒否: URL に一致する接続を拒否します。
- URL リスト: URL またはマッチャー文字列のリストを指定します。各 URL またはマッチャー文字列エントリは、スペースや区切り文字を入れずに単独の行で記述する必要があります。各エントリはドメインのみで構成できます。マッチャー文字列の詳細については、URL のマッチャー文字列をご覧ください。
[作成] をクリックします。
gcloud
次の内容で 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.com
、www.altostrat.com
として指定します。
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.com
とwww.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.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
のサブドメインへのトラフィックを許可しますが、残りのアウトバウンド トラフィックは拒否します。Cloud NGFW では、アスタリスク(*)は正規表現のワイルドカードとして解釈されません。
たとえば、
*example.test
はnewexample.test
またはa.newexample.test
と一致しません。一致するのは、example.test
とexample.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 フィルタリング セキュリティ プロファイルの詳細を表示できます。
コンソール
Google Cloud コンソールで、[セキュリティ プロファイル] ページに移動します。
[セキュリティ プロファイル] タブを選択します。このタブには、構成済みのセキュリティ プロファイルのリストが表示されます。
[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 フィルタリング セキュリティ プロファイルを一覧表示できます。
コンソール
Google Cloud コンソールで、[セキュリティ プロファイル] ページに移動します。
[セキュリティ プロファイル] タブを選択します。このタブには、構成済みのセキュリティ プロファイルのリストが表示されます。
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 フィルタリングのセキュリティ プロファイルは、名前、ロケーション、組織を指定して削除できます。ただし、セキュリティ プロファイルがセキュリティ プロファイル グループによって参照されている場合、そのセキュリティ プロファイルは削除できません。
コンソール
Google Cloud コンソールで、[セキュリティ プロファイル] ページに移動します。
[セキュリティ プロファイル] タブを選択します。このタブには、構成済みのセキュリティ プロファイルのリストが表示されます。
削除するセキュリティ プロファイルを選択して、[削除] をクリックします。
もう一度 [削除] をクリックして確定します。
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
フラグを省略して標準出力に書き込むこともできます。