使用防火墙标记

请先尝试创建标记,然后再尝试将它们绑定到资源或在网络防火墙政策中使用这些标记。如需控制网络访问,标记仅在绑定到虚拟机实例时有效。

如需查看概览,请参阅防火墙标记

授予对标记的权限

通过 tagAdmin 角色,您可以创建新标记或者更新和删除现有标记。组织管理员可以在组织级层授予此角色,而项目所有者可以在项目级层授予此角色。

gcloud

  1. 向用户授予 tagAdmin 角色。

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagAdmin
    

    请替换以下内容:

    • ORGANIZATION_ID:您的组织的 ID
    • EMAIL_ADDRESS:用户的电子邮件地址。
  2. 向用户授予 tagUser 角色。

    gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    请替换以下内容:

    • ORGANIZATION_ID:您的组织的 ID
    • TAG_KEY:标记键
    • EMAIL_ADDRESS:用户的电子邮件地址。

用于管理标记的自定义角色

tagAdmin 角色可让您执行以下操作:创建新标记、更新和删除现有标记。如果您需要其中一些功能,您可以创建具有相关权限的自定义 IAM 角色,然后将新角色授予目标用户。如需查看相关权限的列表,请参阅 IAM 权限

防火墙政策中使用的标记必须指定 GCE_FIREWALL 用途。虽然需要使用 GCE_FIREWALL 用途以在网络功能中使用标记,但您可以将该标记用于其他操作。

网络防火墙政策中使用的标记的范围必须仅限于单个 VPC。

创建标记键和标记值

在将标记关联到网络防火墙政策之前,您必须先创建标记键和标记值。

gcloud

  1. 获取所需权限后,创建标记键。

    gcloud resource-manager tags keys create TAG_KEY \
       --parent organizations/ORGANIZATION_ID \
       --purpose GCE_FIREWALL \
       --purpose-data network=PROJECT_ID/NETWORK
    

    请替换以下内容:

    • TAG_KEY:标记键
    • ORGANIZATION_ID:您的组织的 ID
    • PROJECT_ID:您的项目 ID
    • NETWORK:网络的名称
  2. 将相关标记值添加到标记键。多次运行该命令以添加多个值。 确保添加到标记键的每个标记值都是唯一的。

    gcloud resource-manager tags values create TAG_VALUE \
       --parent ORGANIZATION_ID/TAG_KEY
    

    请替换以下内容:

    • ORGANIZATION_ID:您的组织的 ID
    • TAG_KEY:标记键
    • TAG_VALUE:要分配给标记键的值

创建具有标记的防火墙政策规则

创建标记后,您可以在网络防火墙政策中使用该标记。您可以创建具有特定来源标记值和目标标记值的网络防火墙政策规则,以在具有来源标记和目标标记的虚拟机之间允许所需流量。

gcloud

  1. 创建具有特定来源和目标键及值的网络防火墙政策规则。

    gcloud compute network-firewall-policies rules create 1 \
        --firewall-policy FIREWALL_POLICY_NAME \
        --src-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
        --target-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
        --direction DIRECTION \
        --action ACTION \
        --layer4-configs tcp:PORT \
        --global-firewall-policy
    

    请替换以下内容:

    • FIREWALL_POLICY_NAME:新网络全局网络防火墙政策的名称
    • ORGANIZATION_ID:您的组织的 ID
    • TAG_KEY:标记键
    • TAG_VALUE:要分配给标记键的值
    • DIRECTION:指明规则是 ingress 规则还是 egress 规则
    • ACTION:以下操作之一:
      • allow:允许与规则匹配的连接
      • deny:拒绝与规则匹配的连接
      • goto_next:将连接评估传递到层次结构中的下一个级别(文件夹或网络)
    • PORT:用于访问资源的端口号

将标记绑定到虚拟机实例

标记管理员可以将标记绑定到各个虚拟机实例。

将标记绑定到资源会将标记值附加到资源。虽然一个标记可以有给定键的多个值,但您只能将每个标记键的一个值绑定到资源。例如,您不能同时将 web-backendmysql 绑定到同一虚拟机实例,因为它们属于同一标记键 vm-function

例如,开发者 Sasha 想要设置一个由 API 后端和支持性数据库存储区组成的应用。为了允许后端和数据库服务器之间的流量,Sasha 需要将 web-backendmysql 标记值绑定到不同的虚拟机。

gcloud

  1. 授予 tagUser 角色。

    gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    请替换以下内容:

    • ORGANIZATION_ID:您的组织的 ID
    • TAG_KEY:标记键
    • EMAIL_ADDRESS:用户的电子邮件地址。

    在此命令中,用户被授予使用相应键的所有当前和未来值。您还可以选择性地仅授予对标记的特定值的访问权限,如下所示:

    gcloud resource-manager tags values add-iam-policy-binding ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    请替换以下内容:

    • ORGANIZATION_ID:您的组织的 ID
    • TAG_KEY:标记键
    • TAG_VALUE:要分配给标记键的值
    • EMAIL_ADDRESS:用户的电子邮件地址。
  2. 授予您想要将标记绑定到的资源的 tagUser 角色。

    gcloud projects add-iam-policy-binding PROJECT_NAME \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    请替换以下内容:

    • PROJECT_NAME:您的项目的名称
    • EMAIL_ADDRESS:用户的电子邮件地址。
  3. 列出绑定。

    gcloud resource-manager tags bindings list \
       --location LOCATION_NAME \
       --parent PARENT
    

    请替换以下内容:

    • LOCATION_NAME:标记所属的位置
    • PARENT:附加到绑定的完整资源名称
  4. 删除和创建绑定。

    gcloud resource-manager tags bindings delete \
       --location LOCATION_NAME \
       --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --parent PARENT
    
    gcloud resource-manager tags bindings create \
       --location LOCATION_NAME \
       --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --parent PARENT
    

    请替换以下内容:

    • LOCATION_NAME:标记所属的位置
    • ORGANIZATION_ID:您的组织的 ID
    • TAG_KEY:标记键
    • TAG_VALUE:标记键的值
    • PARENT:要附加到标记值的资源的完整资源名称

在对等互连网络中使用标记

您可以在网络对等互连中使用标记。按指定顺序执行以下任务,以在两个对等互连网络中使用标记。

  1. 向两个用户分配 tagAdmin 角色:每个对等网络中一个用户。组织管理员在组织级层向用户授予 tagAdmin 角色,项目所有者可以在项目级层授予该角色。
  2. 让第一个网络用户在第一个网络中创建标记键和标记值
  3. 让第二个网络用户在第二个网络中创建标记键和标记值
  4. 向这两个用户授予必需的权限来绑定这两个网络中的标记。
  5. 标记绑定到第一个网络中的用户和资源。
  6. 标记绑定到第二个网络中的用户和资源。
  7. 对于第二个网络中的用户,授予第一个网络中的 tagUser 权限
  8. 对于第一个网络中的用户,授予第二个网络中的 tagUser 权限
  9. 在第一个网络中创建防火墙政策规则
  10. 在第二个网络中创建防火墙政策规则

后续步骤