使用标记创建政策

Resource Manager 标记有助于控制对 Google Cloud 资源的访问权限。通过 Resource Manager 标记,您可以整理 Google Cloud 资源,并根据资源是否具有特定的标记有条件地允许或拒绝政策。您可以使用 Resource Manager 标记按段和服务类型标记每个虚拟机 (VM) 实例。在创建安全 Web 代理政策时,您可以通过 Resource Manager 标记对主机进行唯一标识。

本指南介绍如何执行以下操作:

  • 使用空政策创建安全 Web 代理实例。
  • 创建 Resource Manager 标记并将其应用于虚拟机实例。
  • 使用 Resource Manager 标记创建安全 Web 代理政策。
  • 创建安全 Web 代理实例。
  • 测试来自虚拟机的连接。

准备工作

使用空政策创建安全 Web 代理实例

如需创建安全 Web 代理实例,请先创建空的安全政策,然后创建 Web 代理。

创建空的安全政策

控制台

  1. 在 Google Cloud 控制台中,前往网络安全页面。

    前往“网络安全”

  2. 点击安全 Web 代理

  3. 点击政策标签页。

  4. 点击创建政策

  5. 为您要创建的政策输入名称,例如 myswppolicy

  6. 输入政策的说明,例如 My new swp policy

  7. 区域列表中,选择您要创建政策的区域。

  8. 点击创建

Cloud Shell

  1. 使用您的首选文本编辑器创建 POLICY_FILE.yaml 文件。将 POLICY_FILE 替换为您想要用于政策文件的文件名。

  2. 将以下内容添加到您创建的 YAML 文件中:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    替换以下内容:

    • PROJECT_NAME:您的项目的名称
    • REGION:此政策适用的区域
    • POLICY_NAME:您要创建的政策的名称
    • POLICY_DESCRIPTION:您要创建的政策的说明
  3. 导入安全政策:

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

创建 Web 代理

控制台

  1. 在 Google Cloud 控制台中,前往网络安全页面。

    前往“网络安全”

  2. 点击安全 Web 代理

  3. 点击设置 Web 代理

  4. 为您要创建的 Web 代理输入名称,例如 myswp

  5. 输入 Web 代理的说明,例如 My new swp

  6. 区域列表中,选择要创建 Web 代理的区域。

  7. 网络列表中,选择您要在其中创建 Web 代理的网络。

  8. 子网列表中,选择要创建 Web 代理的子网。

  9. 输入 Web 代理 IP 地址。

  10. 证书列表中,选择要用于创建 Web 代理的证书。

  11. 政策列表中,选择您创建的要与 Web 代理关联的政策。

  12. 点击创建

Cloud Shell

  1. 使用您的首选文本编辑器创建 GATEWAY_FILE.yaml 文件。将 GATEWAY_FILE 替换为您想要用于 Web 代理文件的文件名。

  2. 将以下内容添加到您创建的 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 地址。

  3. 创建安全 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 标记,请执行以下操作:

  1. 创建标记键和值

    创建代码时,将其用途指定为 GCE_FIREWALL。Google Cloud 网络功能(包括安全 Web 代理)需要具有 GCE_FIREWALL 用途才能应用该标记。不过,您可以使用该代码执行其他操作。

  2. 将标记绑定到虚拟机实例

创建安全 Web 代理规则

如需创建安全 Web 代理规则,请执行以下操作:

  1. 使用您的首选文本编辑器创建 RULE_FILE.yaml 文件。将 RULE_FILE 替换为所需的文件名。

  2. 如需允许从所需标记访问网址,请将以下代码添加到 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

  3. 导入您创建的规则:

    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 地址。

后续步骤