本页面介绍了如何使用 Google Cloud 控制台和 Google Cloud CLI 创建和管理类型为 url-filtering
的安全配置文件。
准备工作
- 您必须在项目中启用 Network Security API。
- 如果您要运行本指南中的
gcloud
命令行示例,请安装 gcloud CLI。
角色
如需获得创建、查看、更新或删除安全配置文件所需的权限,请让您的管理员向您授予组织的必要 IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。
创建网址过滤安全配置文件
创建网址过滤安全配置文件(类型为 url-filtering
的安全配置文件)时,您可以将安全配置文件的名称指定为字符串或唯一网址标识符。组织级安全配置文件的唯一网址可以按以下格式构建:
organization/ORGANIZATION_ID/locations/LOCATION/securityProfiles/SECURITY_PROFILE_NAME
如果您为安全配置文件名称使用唯一网址标识符,则安全配置文件的组织和位置已包含在网址标识符中。但是,如果您只使用安全配置文件名称,则必须单独指定组织和位置。如需详细了解唯一网址标识符,请参阅安全配置文件规范。
控制台
在 Google Cloud 控制台中,前往安全配置文件页面。
在项目选择器菜单中,选择您的组织。
选择安全配置文件标签页。
点击 Create profile(创建配置文件)。
在名称字段中输入名称。
可选:在说明字段中输入说明。
如需创建 Cloud 新一代防火墙企业版安全配置文件,请在用途部分选择 Cloud NGFW 企业版。
如需创建网址过滤安全配置文件,请在类型部分中选择网址过滤。
在网址过滤条件部分,点击创建网址过滤条件按钮。
在创建网址过滤条件窗格中,指定以下详细信息:
- 优先级:指定网址过滤条件的优先级。
- 操作:指定 Cloud NGFW 对流量执行的操作。
- 允许:允许与网址匹配的连接。
- 拒绝:拒绝与网址匹配的连接。
- 网址列表:指定网址列表或匹配器字符串。每个网址或匹配器字符串条目必须独占一行,且不得包含任何空格或分隔符。每个条目只能包含一个网域。如需详细了解匹配器字符串,请参阅网址的匹配器字符串。
点击创建。
gcloud
创建一个包含以下内容的 YAML 文件:
name: NAME type: PROFILE_TYPE urlFilteringProfile: urlFilters: - filteringAction: ACTION priority: PRIORITY urls: URL[,URL,...]
替换以下内容:
NAME
:网址过滤安全配置文件的名称;您可以将名称指定为字符串或唯一网址标识符。PROFILE_TYPE
:安全配置文件的类型,可以是url-filtering
或threat-prevention
。ACTION
:指定以下操作之一:allow
:允许与网址匹配的连接deny
:拒绝与网址匹配的连接
PRIORITY
:网址过滤条件的优先级,范围为 0 到 2147483647。URLs
:以英文逗号分隔的匹配器字符串列表。例如,www.example.com
和www.altostrat.com
。
如需创建网址过滤安全配置文件,请运行
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 文件的情况下创建网址过滤安全配置文件:gcloud network-security security-profiles url-filtering create NAME \ --location LOCATION \ --organization ORGANIZATION_ID \ --description DESCRIPTION
替换以下内容:
NAME
:网址过滤安全配置文件的名称;您可以将名称指定为字符串或唯一网址标识符。如果您为
NAME
标志使用唯一网址标识符,则可以省略LOCATION
和ORGANIZATION
标志。LOCATION
:网址过滤安全配置文件的位置。位置始终设置为
global
。如果您为NAME
标志使用唯一网址标识符,则可以省略LOCATION
标志。FILE_NAME
:YAML 文件的名称。例如url-filtering-sp.yaml
。ORGANIZATION_ID
:创建网址过滤安全配置文件的组织。如果您为name
标志使用唯一网址标识符,则可以省略ORGANIZATION_ID
标志。DESCRIPTION
:网址过滤安全配置文件的可选说明。
例如,以下代码段展示了一个网址过滤安全配置文件的示例,该配置文件允许向
www.example.com
和www.altostrat.com
发出请求,但拒绝向所有其他网域发出请求: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: ['*']
隐式拒绝网址过滤条件
网址过滤安全配置文件始终包含一个优先级最低 (2147483647) 的默认网址过滤条件,该过滤条件会拒绝所有与优先级较高的网址过滤条件不匹配的连接。以下代码段展示了隐式拒绝网址过滤器的示例:
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: ['*']
在查看或导出网址过滤安全配置文件时,您会看到隐式禁止网址过滤条件。您无法修改或移除隐式过滤条件。例如,如果您想将配置文件的默认操作从 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: ['*']
网址的匹配器字符串
匹配器字符串是指您在网址过滤条件的 urls
字段中指定的值。您可以在网址过滤条件中指定一个或多个匹配器字符串。
通配符
网址列表中的每个匹配器字符串都以有限的方式支持通配符 (*)。
- 每个匹配字符串只能支持一个星号 (*),星号要么是第一个字符,要么是唯一的字符。
星号 (*) 可具有以下含义:
星号 (*) 位于英文句点 (.) 前表示相应网域的所有子网域。
例如,匹配器字符串
*.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
单独一个星号 (*) 而不含其他字符表示匹配所有请求。
例如,优先级最低的显式允许网址过滤条件中的匹配器字符串仅包含星号 (*),并且具有可替换默认操作
DENY
的ALLOW
操作。之所以会发生这种情况,是因为隐式拒绝网址过滤器会针对任何与较高优先级网址过滤器不匹配的请求强制执行默认的DENY
。当 Cloud NGFW 缺少 SNI 或网域信息时,最高优先级的网址过滤条件(显式
ALLOW
或隐式DENY
)会决定 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 字母、数字和特殊字符:连字符 (-)、英文句点 (.) 和星号 (*)。
您必须使用 Punycode 来转换包含除 ASCII 字母、数字、连字符 (-)、英文句点 (.) 或星号 (*) 以外的字符的域名。Punycode 是一种编码标准,可将 Unicode 域名转换为 ASCII 兼容格式。
如果您有多个标签,请使用英文句点 (.) 分隔它们。一个标签可以包含一个或多个连字符 (-),但不得以连字符开头或结尾。每个标签最多可包含 63 个字符。
网址过滤条件不支持在域名开头使用英文句点,也不支持在匹配器字符串中使用连续的英文句点。网址过滤条件允许结尾包含英文句点,不过 Cloud NGFW 会在保存网址过滤条件之前将其移除。
Cloud NGFW 会在保存网址过滤条件之前将匹配器字符串转换为小写。Cloud NGFW 不会执行任何其他归一化。
每个域名最多可包含 255 个字符。
查看网址过滤安全配置文件
您可以查看组织中特定网址过滤安全配置文件的详细信息。
控制台
在 Google Cloud 控制台中,前往安全配置文件页面。
选择安全配置文件标签页。该标签页会显示已配置的安全配置文件的列表。
点击类型为 网址 过滤的安全配置文件,即可查看该配置文件的详细信息。
gcloud
如需查看网址过滤安全配置文件的详细信息,请使用 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
的安全配置文件的名称;您可以将名称指定为字符串或唯一网址标识符。ORGANIZATION_ID
:创建网址过滤安全配置文件的组织。如果您为NAME
标志使用唯一网址标识符,则可以省略ORGANIZATION_ID
标志。LOCATION
:网址过滤安全配置文件的位置。位置始终设置为global
。如果您为NAME
标志使用唯一网址标识符,则可以省略LOCATION
标志。
列出网址过滤安全配置文件
您可以列出组织中的所有网址过滤安全配置文件。
控制台
在 Google Cloud 控制台中,前往安全配置文件页面。
选择安全配置文件标签页。该标签页会显示已配置的安全配置文件的列表。
gcloud
如需列出所有网址过滤安全配置文件,请使用 gcloud network-security security-profiles url-filtering list
命令:
gcloud network-security security-profiles url-filtering list \ --organization ORGANIZATION_ID \ --location LOCATION
替换以下内容:
ORGANIZATION_ID
:创建网址过滤安全配置文件的组织。LOCATION
:网址过滤安全配置文件的位置。 位置始终设置为global
。
删除网址过滤安全配置文件
您可以通过指定网址过滤安全配置文件的名称、位置和组织来删除它。但是,如果安全配置文件组引用了安全配置文件,则无法删除该安全配置文件。
控制台
在 Google Cloud 控制台中,前往安全配置文件页面。
选择安全配置文件标签页。该标签页会显示已配置的安全配置文件的列表。
选择要删除的安全配置文件,然后点击删除。
再次点击删除进行确认。
gcloud
如需删除网址过滤安全配置文件,请使用 gcloud network-security security-profiles url-filtering delete
命令:
gcloud network-security security-profiles url-filtering delete NAME \ --organization ORGANIZATION_ID \ --location LOCATION
替换以下内容:
NAME
:您要删除的网址过滤安全配置文件的名称;您可以将名称指定为字符串或唯一网址标识符。ORGANIZATION_ID
:创建网址过滤安全配置文件的组织。如果您为NAME
标志使用唯一网址标识符,则可以省略ORGANIZATION_ID
标志。LOCATION
:网址过滤安全配置文件的位置。位置始终设置为
global
。如果您为NAME
标志使用唯一网址标识符,则可以省略LOCATION
标志。
导入网址过滤安全配置文件
您可以从 YAML 文件导入网址过滤安全配置文件(无论是自定义创建的还是之前导出的)。导入网址过滤安全配置文件时,如果已存在同名配置文件,Cloud NGFW 会更新现有配置文件。
gcloud
如需从 YAML 文件导入网址过滤安全配置文件,请使用 gcloud network-security security-profiles import
命令:
gcloud network-security security-profiles import NAME \ --organization ORGANIZATION_ID \ --location LOCATION \ --source FILE_NAME
替换以下内容:
NAME
:您要导入的类型为url-filtering
的安全配置文件的名称;您可以将名称指定为字符串或唯一网址标识符。如果您为
NAME
标志使用唯一网址标识符,则可以省略ORGANIZATION_ID
和LOCATION
标志。ORGANIZATION_ID
:创建网址过滤安全配置文件的组织。如果您为NAME
标志使用唯一网址标识符,则可以省略ORGANIZATION_ID
标志。LOCATION
:网址过滤安全配置文件的位置。位置始终设置为global
。如果您为NAME
标志使用唯一网址标识符,则可以省略LOCATION
标志。FILE_NAME
:包含网址过滤安全配置文件配置导出数据的 YAML 文件的路径。例如,url-filtering-sp.yaml
。YAML 文件不得包含任何仅输出字段。或者,您也可以省略
source
标志,以便从标准输入中读取数据。
导出网址过滤安全配置文件
您可以将网址过滤安全配置文件导出到 YAML 文件。例如,您可以使用此功能导出安全配置文件,快速修改该文件,然后将其重新导入,而无需使用界面来修改大型安全配置文件。
gcloud
如需将网址过滤安全配置文件导出到 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
的安全配置文件的名称;您可以将名称指定为字符串或唯一网址标识符。如果您为
NAME
标志使用唯一网址标识符,则可以省略ORGANIZATION_ID
和LOCATION
标志。ORGANIZATION_ID
:创建网址过滤安全配置文件的组织。如果您为NAME
标志使用唯一网址标识符,则可以省略ORGANIZATION_ID
标志。LOCATION
:网址过滤安全配置文件的位置。位置始终设置为global
。如果您为NAME
标志使用唯一网址标识符,则可以省略LOCATION
标志。FILE_NAME
:Cloud NGFW 将向其中导出网址过滤安全配置文件的 YAML 文件的路径。例如url-filtering-sp.yaml
。导出的配置数据不包含任何仅输出字段。或者,您也可以省略
destination
标志,以写入标准输出。