Resource Manager 标记用于控制对 Google Cloud 资源的访问权限。借助 Resource Manager 标记,您可以 Google Cloud 整理资源,并根据资源是否具有特定标记,有条件地允许或拒绝政策。您可以使用 Resource Manager 代码按细分和服务类型为每个虚拟机 (VM) 实例添加代码。借助 Resource Manager 标记,您可以在创建安全 Web 代理政策时唯一标识主机。
本指南介绍如何执行以下操作:
- 创建一个使用空白政策的安全 Web 代理实例。
- 创建 Resource Manager 标记并将其应用于虚拟机实例。
- 使用资源管理器标记创建安全 Web 代理政策。
- 创建安全 Web 代理实例。
- 测试来自虚拟机的连接。
准备工作
完成初始设置步骤。
让组织管理员向您授予创建和更新代码所需的角色。
请验证您是否已安装 Google Cloud CLI 406.0.0 或更高版本:
gcloud version | head -n1
如果您安装的是较低版本的 gcloud CLI,请更新版本:
gcloud components update --version=406.0.0
创建包含空政策的安全 Web 代理实例
如需创建安全 Web 代理实例,请先创建一个空安全政策,然后再创建 Web 代理。
创建空安全政策
在 Google Cloud 控制台中,前往网络安全页面。
点击安全 Web 代理。
点击政策标签页。
点击创建政策。
输入您要创建的政策的名称,例如
myswppolicy
。输入政策说明,例如
My new swp policy
。在区域列表中,选择要在其中创建政策的区域。
点击创建。
使用您偏好的文本编辑器创建
POLICY_FILE
.yaml 文件。将POLICY_FILE
替换为您要为政策文件使用的文件名。将以下内容添加到您创建的 YAML 文件中:
name: projects/
PROJECT_NAME /locations/REGION /gatewaySecurityPolicies/POLICY_NAME description:POLICY_DESCRIPTION 替换以下内容:
PROJECT_NAME
:您的项目的名称REGION
:此政策适用的区域POLICY_NAME
:您要创建的政策的名称POLICY_DESCRIPTION
:您要创建的政策的说明
导入安全政策:
gcloud network-security gateway-security-policies import
POLICY_NAME \ --source=POLICY_FILE .yaml \ --location=REGION
创建 Web 代理
在 Google Cloud 控制台中,前往网络安全页面。
点击安全 Web 代理。
点击设置网络代理。
输入您要创建的网络代理的名称,例如
myswp
。输入 Web 代理的说明,例如
My new swp
。在区域列表中,选择要创建网站代理的区域。
在网络列表中,选择要创建 Web 代理的网络。
在子网列表中,选择要创建 Web 代理的子网。
输入网站代理 IP 地址。
在证书列表中,选择要用于创建网站代理的证书。
在政策列表中,选择要与网站代理关联的政策。
点击创建。
使用您偏好的文本编辑器创建
GATEWAY_FILE
.yaml 文件。将GATEWAY_FILE
替换为您要为网站代理文件使用的文件名。将以下内容添加到您创建的 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 证书网址列表SUBNET_NAME
:包含GATEWAY_IP_ADDRESS
的子网的名称GATEWAY_IP_ADDRESS
:之前在初始设置步骤中创建的代理子网中安全 Web 代理实例的 IP 地址可选列表如果您选择不列出 IP 地址,请省略该字段,以便 Web 代理为您选择 IP 地址。
创建安全 Web 代理实例:
gcloud network-services gateways import
GATEWAY_NAME \ --source=GATEWAY_FILE .yaml \ --location=REGION
测试连接性
如需测试连接性,请在 Virtual Private Cloud (VPC) 网络中的任何虚拟机中使用 curl
命令:
curl -x https://GATEWAY_IP_ADDRESS :PORT_NUMBER https://www.example.com --proxy-insecure
系统会显示 403 Forbidden
错误,这是预期行为。
创建和附加 Resource Manager 标记
如需创建和附加 Resource Manager 标记,请执行以下操作:
-
创建代码时,请为其指定
GCE_FIREWALL
用途。Google Cloud 网络功能(包括安全 Web 代理)需要GCE_FIREWALL
用途才能应用代码。不过,您可以将该标记用于其他操作。
创建安全 Web 代理规则
如需创建安全 Web 代理规则,请执行以下操作:
使用您偏好的文本编辑器创建
RULE_FILE
.yaml 文件。将RULE_FILE
替换为您选择的文件名。如需允许通过所选代码访问网址,请将以下内容添加到 YAML 文件中:
name: projects/
PROJECT_NAME /locations/REGION /gatewaySecurityPolicies/POLICY_NAME /rules/RULE_NAME description:RULE_DESCRIPTION enabled: true priority:RULE_PRIORITY sessionMatcher:CEL_EXPRESSION basicProfile: ALLOW替换以下内容:
RULE_NAME
:此规则的名称RULE_DESCRIPTION
:您要创建的规则的说明RULE_PRIORITY
:此规则的优先级;数字越小,优先级越高CEL_EXPRESSION
:一个通用表达式语言 (CEL) 表达式如需了解详情,请参阅 CEL 匹配器语言参考文档。
例如,如需允许从所需标记访问
example.com
,请将以下内容添加到为sessionMatcher
创建的 YAML 文件中:sessionMatcher: "source.matchTag('
TAG_VALUE ') && host() == 'example.com'"将
TAG_VALUE
替换为您要允许的标记,格式为tagValues/1234
。导入您创建的规则:
gcloud network-security gateway-security-policies rules import
RULE_NAME \ --source=RULE_FILE .yaml \ --location=REGION \ --gateway-security-policy=POLICY_NAME
测试连接性
如需测试连接,请在与 TAG_VALUE
标记关联的任何虚拟机中使用 curl
命令:
curl -x https://IPv4_ADDRESS :443 http://example.com
--proxy-insecure
将 IPv4_ADDRESS
替换为您的安全 Web 代理实例的 IPv4 地址。