本文档介绍了如何为防火墙政策创建和管理安全标记。在防火墙政策中使用安全标记或将其绑定到资源之前,您必须先创建这些标记。
本文档介绍了以下主题:
- 授予管理和使用标记的适当权限
- 创建标记键和标记值
- 创建使用安全标记的防火墙政策和规则
- 将安全标记绑定到虚拟机 (VM) 实例
- 在对等互连网络中使用安全标记
如需详细了解安全标记及其工作原理,请参阅防火墙的安全标记。
授予对安全标记的权限
组织管理员可以在组织级层授予角色,项目所有者可以在项目级层授予角色。
授予“代码管理员”角色
通过 Tag Administrator 角色 (roles/resourcemanager.tagAdmin),您可以创建、更新和删除安全标记。
控制台
如需向用户授予“代码管理员”角色 (roles/resourcemanager.tagAdmin),请执行以下操作:
在 Google Cloud 控制台中,前往 IAM 页面。
在项目选择器列表中,选择要向其授予角色的组织或项目。
点击 授予访问权限。
在新的主账号字段中,输入用户的电子邮件地址。 例如
my-user@example.com。在选择角色列表中,在过滤条件字段中输入标记,然后选择标记管理员。
点击保存。
gcloud
如需在组织的 IAM 政策中向 IAM 主账号授予“标记管理员”角色 (roles/resourcemanager.tagAdmin),请使用 gcloud organizations add-iam-policy-binding 命令:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member=user:EMAIL_ADDRESS \
--role=roles/resourcemanager.tagAdmin
替换以下内容:
ORGANIZATION_ID:您的组织的 IDEMAIL_ADDRESS:用户的电子邮件地址。
授予 Tag User 角色
借助 Tag User 角色 (roles/resourcemanager.tagUser),您可以访问安全标记列表并管理安全标记与资源之间的关联。
控制台
如需向用户授予“Tag User”角色 (roles/resourcemanager.tagUser),请执行以下操作:
gcloud
如需向用户授予特定标记的 Tag User 角色 (
roles/resourcemanager.tagUser),请使用gcloud resource-manager tags keys add-iam-policy-binding命令:gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser替换以下内容:
ORGANIZATION_ID:您的组织的 IDTAG_KEY:安全标记键EMAIL_ADDRESS:用户的电子邮件地址。
如需向 IAM 主账号授予“标记用户”角色 (
roles/resourcemanager.tagUser),以便他们可以使用组织中每个标记键的所有标记值,请使用gcloud organizations add-iam-policy-binding命令:gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser替换以下内容:
ORGANIZATION_ID:您的组织的 IDEMAIL_ADDRESS:用户的电子邮件地址。
如需向 IAM 主账号授予 Tag User 角色 (
roles/resourcemanager.tagUser),以便该主账号可以使用父级为组织的标记键的特定标记值,请使用gcloud resource-manager tags values add-iam-policy-binding命令: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:您的组织的 IDTAG_KEY:安全标记键TAG_VALUE:安全标记值EMAIL_ADDRESS:用户的电子邮件地址。
如需向 IAM 主账号授予 Tag User 角色 (
roles/resourcemanager.tagUser),以便其可以使用项目中每个标记键的所有标记值,请使用gcloud projects add-iam-policy-binding命令:gcloud projects add-iam-policy-binding PROJECT_NAME \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser替换以下内容:
PROJECT_NAME:项目的名称EMAIL_ADDRESS:用户的电子邮件地址。
用于管理安全标记的自定义角色
通过 Tag Administrator 角色 (roles/resourcemanager.tagAdmin),您可以创建、更新和删除安全标记。如果您需要其中一些功能,您可以创建具有相关权限的自定义 Identity and Access Management (IAM) 角色,然后将新角色授予目标用户。如需查看相关权限的列表,请参阅 IAM 角色。
防火墙政策中使用的安全标记必须指定 GCE_FIREWALL 用途。虽然需要使用 GCE_FIREWALL 用途以在网络功能中使用安全标记,但您可以将安全标记用于其他操作。
创建安全标记键和标记值
在将安全标记关联到防火墙政策之前,您必须先创建安全标记键和值。
创建标记键后,无法更改,并且在同一命名空间内必须是唯一的。
控制台
如需创建安全标记键和值,请执行以下操作:
在 Google Cloud 控制台中,前往标记页面。
在项目选择器列表中,选择要在其下创建标记键的组织或项目。
点击 创建。
在标记键字段中,输入标记键的显示名。它会成为标记的命名空间名称的一部分。
可选:在标记键说明字段中,输入标记键的说明。
对于标记用途,请选择与 Cloud NGFW 搭配使用。
如需创建安全标记,请执行以下任一操作:
如果用途数据指定了网络,请选择将范围限制为单个网络。
如果用途数据指定了组织,请清除将范围限制为单个网络。
在选择网络标签页中,选择要在哪个组织或项目下创建安全标记键。
在网络列表中,选择相应网络。
如果要向此键添加标记值,请为您要创建的每个标记值点击 添加值。
在标记值字段中,输入标记值的显示名。它会成为标记的命名空间名称的一部分。
可选:在标记值说明字段中,输入标记值的说明。
添加完标记值后,点击创建标记键。
gcloud
获取所需权限后,在组织或项目级创建安全标记键。
如需为组织创建安全标记键,请使用
gcloud resource-manager tags keys create命令:gcloud resource-manager tags keys create TAG_KEY \ --parent organizations/ORGANIZATION_ID \ --purpose GCE_FIREWALL \ --purpose-data organization=auto替换以下内容:
TAG_KEY:安全标记键ORGANIZATION_ID:您的组织的 ID
如需为父项目或组织(其用途数据标识单个 VPC 网络)创建安全标记键,请使用
gcloud resource-manager tags keys create命令: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:您的组织的 IDPROJECT_ID:您的项目 IDNETWORK:网络的名称
如需将相关的安全标记值添加到安全标记键,请使用
gcloud resource-manager tags values create命令:gcloud resource-manager tags values create TAG_VALUE \ --parent ORGANIZATION_ID/TAG_KEY替换以下内容:
TAG_VALUE:要分配给安全标记键的值ORGANIZATION_ID:您的组织的 IDTAG_KEY:安全标记键
多次运行该命令以添加多个值。确保添加到安全标记键的每个安全标记值都是唯一的。
创建防火墙政策
创建安全标记键后,您可以在防火墙政策中使用它们。您可以在分层防火墙政策或网络防火墙政策中使用组织级安全标记键。您只能在网络防火墙政策中使用在网络级定义的安全标记。
创建分层防火墙政策
您可以在组织层次结构的任何资源(组织或文件夹)下创建政策。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
在项目选择器列表中,选择您的组织 ID 或组织内的文件夹。
点击创建防火墙政策。
在政策名称字段中,输入名称。
如果您要为政策创建规则,请点击继续 > 创建防火墙规则。
如需了解详情,请参阅创建带有安全标记的分层防火墙政策规则。
如果您要将政策与资源关联,请点击继续 > 添加。
如需了解详情,请参阅将政策与组织或文件夹相关联。
依次点击继续 > 创建。
gcloud
如需创建分层防火墙政策,请使用 gcloud compute firewall-policies create 命令:
gcloud compute firewall-policies create \
[--organization ORGANIZATION_ID] | [--folder FOLDER_ID] \
--short-name SHORT_NAME
替换以下内容:
ORGANIZATION_ID:您的组织的 ID如果您要在组织级创建政策,请指定此 ID。此 ID 仅指明政策的适用范围;它不会自动将政策与组织资源相关联。
FOLDER_ID:文件夹的 ID如果要在给定文件夹中创建政策,请指定此 ID。此 ID 仅指明政策的适用范围;它不会自动将政策与该文件夹相关联。
SHORT_NAME:政策的名称使用 Google Cloud CLI 创建的政策有两个名称:系统生成的名称和您提供的简称。使用 Google Cloud CLI 更新现有政策时,您可以提供系统生成的名称或简称以及组织 ID。使用 API 更新政策时,您必须提供系统生成的名称。
创建全球网络防火墙政策
创建安全标记后,您可以在全球网络防火墙政策的规则中使用该标记。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
在项目选择器列表中,选择您的组织内的项目。
点击创建防火墙政策。
在政策名称字段中,输入名称。
在部署范围字段中,选择全球。
如果您要为政策创建规则,请点击继续 > 创建防火墙规则。
如需了解详情,请参阅创建具有安全标记的网络防火墙政策规则。
如果您要将政策与网络关联,请点击继续 > 关联。
如需了解详情,请参阅将政策与网络关联。
依次点击继续 > 创建。
gcloud
如需创建网络防火墙政策,请使用 gcloud compute network-firewall-policies create 命令:
gcloud compute network-firewall-policies create \
NETWORK_FIREWALL_POLICY_NAME \
--description DESCRIPTION \
--global
替换以下内容:
NETWORK_FIREWALL_POLICY_NAME:政策的名称DESCRIPTION:政策的说明
创建具有安全标记的防火墙政策规则
创建安全标记和防火墙政策后,您可以创建具有特定来源标记值和目标标记值的防火墙政策规则,以在具有来源标记和目标标记的虚拟机之间允许所选流量。
创建具有安全标记的分层防火墙政策规则
只有在创建分层防火墙政策后,您才能创建具有特定来源和目标键及值的分层防火墙政策规则。如需了解详情,请参阅创建分层防火墙政策。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
在项目选择器列表中,选择您的组织 ID 或包含政策的文件夹。
点击相应政策的名称,然后点击创建防火墙规则。
输入规则的优先级。
指定流量方向。
对于匹配时执行的操作,选择一个设置。
在日志字段中,选择开启或关闭。
对于目标,选择安全标记,然后点击为标记选择范围。
在选择资源页面上,选择要在其中创建安全标记的组织或项目。
输入规则应应用于的键值对。
如需添加更多键值对,请点击添加标记。
在来源部分的标记中,点击选择标记范围。
在选择资源页面上,选择包含安全标记键的组织或文件夹。
点击创建。
gcloud
如需创建分层防火墙政策规则,请使用 gcloud compute firewall-policies rules create 命令:
gcloud compute firewall-policies rules create \
--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
替换以下内容:
FIREWALL_POLICY_NAME:分层防火墙政策的名称ORGANIZATION_ID:您的组织的 IDTAG_KEY:安全标记键TAG_VALUE:要分配给安全标记键的值DIRECTION:指明规则是ingress规则还是egress规则ACTION:以下操作之一:allow:允许与规则匹配的连接deny:拒绝与规则匹配的连接goto_next:将连接评估传递到层次结构中的下一个级别(文件夹或网络)
PORT:用于访问资源的端口号
创建具有安全标记的网络防火墙政策规则
您可以创建具有特定来源标记值和目标标记值的网络防火墙政策规则,以在具有来源标记和目标标记的虚拟机之间允许所选流量。如需了解详情,请参阅创建全球网络防火墙政策。
控制台
在 Google Cloud 控制台中,前往防火墙政策页面。
在项目选择器列表中,选择包含政策的项目或文件夹。
点击相应政策的名称,然后点击创建防火墙规则。
输入规则的优先级。
指定流量方向。
对于匹配时执行的操作,选择一个设置。
在日志字段中,选择开启或关闭。
对于目标,选择安全标记,然后点击为标记选择范围。
在选择资源页面上,选择要在其中创建安全标记的组织或项目。
输入规则应应用于的键值对。
如需添加更多键值对,请点击添加标记。
在来源部分的标记中,点击选择标记范围。
在选择资源页面上,选择包含安全标记键的组织或文件夹。
点击创建。
gcloud
如需创建网络防火墙政策规则,请使用 gcloud compute network-firewall-policies rules create 命令:
gcloud compute network-firewall-policies rules create \
--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:您的组织的 IDTAG_KEY:标记键TAG_VALUE:要分配给标记键的值DIRECTION:指明规则是ingress规则还是egress规则ACTION:以下操作之一:allow:允许与规则匹配的连接deny:拒绝与规则匹配的连接goto_next:将连接评估传递到层次结构中的下一个级别(文件夹或网络)
PORT:用于访问资源的端口号
绑定安全标记
如需了解安全标记绑定如何适用于网络防火墙政策和分层防火墙政策,请参阅绑定安全标记。
准备工作
确保您拥有 Tag Administrator 角色 (
roles/resourcemanager.tagAdmin)。作为标记管理员,您可以将安全标记绑定到各个虚拟机实例。如果您没有“Tag Administrator”角色 (
roles/resourcemanager.tagAdmin),可以请求组织管理员授予您“Tag User”角色 (roles/resourcemanager.tagUser)。如需了解详情,请参阅授予安全标记权限。确保您对标记所绑定的资源具有 Tag User 角色 (
roles/resourcemanager.tagUser)。如需详细了解如何为要绑定标记的资源授予“标记用户”角色 (roles/resourcemanager.tagUser),请参阅授予权限以保护标记。确保您已创建安全标记键和值以及包含安全标记的防火墙政策规则。
确保您已创建虚拟机实例。如需了解详情,请参阅创建和启动 Compute Engine 实例。
将安全标记绑定到虚拟机实例
您可以将现有标记附加到特定资源。创建资源后,请按照以下说明将标记附加到该资源。
控制台
如需将安全标记绑定到虚拟机实例,请执行以下操作:
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择您的项目并点击继续。
在名称列中,点击要为其添加标记的虚拟机的名称。
在虚拟机实例详情页面中,完成以下步骤:
- 点击修改。
- 在基本信息部分中,点击管理标记并为实例添加所需的标记。
- 点击保存。
gcloud
如需了解如何使用这些标志,请参阅 Resource Manager 文档中的将标记附加到资源。
例如,以下命令会将标记附加到虚拟机:
gcloud resource-manager tags bindings create \
--location=LOCATION_NAME \
--tag-value=tagValues/TAGVALUE_ID \
--parent=FULL_RESOURCE_NAME
替换以下内容:
REST
如需将标记附加到资源,您必须先创建标记绑定的 JSON 表示形式,其中包含标记值的永久 ID 或命名空间名称以及资源的永久 ID。如需详细了解标记绑定的格式,请参阅 tagBindings 参考文档。
如需将标记附加到可用区级资源(例如虚拟机实例),请将 tagBindings.create 方法与资源所在的区域级端点配合使用。例如:
POST https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings
请求正文可以是以下两个选项之一:
{
"parent": "FULL_RESOURCE_NAME",
"tagValue": "tagValue/TAGVALUE_ID"
}
{
"parent": "FULL_RESOURCE_NAME",
"tagValueNamespacedName": TAGVALUE_NAMESPACED_NAME
}替换以下内容:
LOCATION_NAME:资源的可用区或区域位置。 对于虚拟机实例,请指定可用区。对于全球性资源,请省略LOCATION_NAME-参数FULL_RESOURCE_NAME:目标资源的完整资源名称;在此示例中,即虚拟机实例的完整资源名称://compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/INSTANCE_ID
替换以下内容:
PROJECT_NUMBER:包含目标资源的项目的数字 IDZONE:包含实例的可用区INSTANCE_ID:虚拟机实例 ID
TAGVALUE_ID:所附加的标记值的永久 ID,例如4567890123TAGVALUE_NAMESPACED_NAME:所附加的标记值的命名空间名称,采用以下格式:parentNamespace/tagKeyShortName/tagValueShortName
在创建虚拟机期间向虚拟机实例添加安全标记
在某些情况下,您可能需要在创建资源期间标记资源,而不是在创建资源之后。
控制台
根据资源类型,确切的步骤可能有所不同。以下步骤适用于虚拟机:
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。系统会显示创建实例页面,并显示机器配置窗格。
在导航菜单中,点击高级。在显示的高级窗格中,执行以下操作:
- 展开 管理标记和标签部分。
- 点击 添加标记。
- 在随即打开的标记窗格中,按照说明向实例添加标记。
- 点击保存。
为实例指定其他配置选项。如需了解详情,请参阅实例创建期间的配置选项。
要创建并启动该虚拟机,请点击创建。
gcloud
如需在资源创建期间将标记附加到资源,请在相应的 create 命令后添加 --resource-manager-tags 标志。例如,如需将标记附加到虚拟机,请使用以下命令:
gcloud compute instances create INSTANCE_NAME \
--zone=ZONE \
--resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID替换以下内容:
INSTANCE_NAME:虚拟机实例的名称ZONE:包含虚拟机实例的可用区TAGKEY_ID:标记键编号数字 IDTAGVALUE_ID:所附加的标记值的永久数字 ID,例如4567890123
通过使用英文逗号分隔标记来指定多个标记,例如 TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2。
REST
对下面的网址发出 POST 请求:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances
添加以下请求 JSON 正文:
{
"name": INSTANCE_NAME,
"params": {
"resourceManagerTags": {
"tagKeys/TAGKEY_ID": "tagValues/TAGVALUE_ID",
},
}
// other fields omitted
}替换以下内容:
INSTANCE_NAME:虚拟机实例的名称TAGKEY_ID:标记键编号数字 IDTAGVALUE_ID:所附加的标记值的永久数字 ID,例如4567890123
在对等互连网络中使用安全标记
您可以在 VPC 网络对等互连中使用安全标记。假设连接的网络为 server 和 client。如需在两个关联的Google Cloud 网络中使用安全标记,请按指定顺序完成以下任务。
为用户分配 Google 代码管理员角色 (
roles/resourcemanager.tagAdmin)。组织管理员在组织级层向用户授予 Tag Administrator 角色 (roles/resourcemanager.tagAdmin),项目所有者可以在项目级层授予 Tag Administrator 角色 (roles/resourcemanager.tagAdmin)。如需了解详情,请参阅授予安全标记权限。在
server网络中创建安全标记键和标记值。 如需了解如何创建安全标记键和值,请参阅创建安全标记键和值。在
server网络中创建防火墙政策规则,以允许来自上一步中创建的安全标记的入站流量。如需了解详情,请参阅创建带有安全标记的防火墙政策规则。向
client用户授予必需的权限,以保护这两个 VPC 网络中的标记。如需了解详情,请参阅授予安全标记权限。在
client网络中,将安全标记绑定到虚拟机实例。 如需了解详情,请参阅绑定安全标记。 现在,client虚拟机打开与server虚拟机的连接。服务器的防火墙政策规则允许该流量,因为该流量来自其绑定的安全标记。该规则还允许响应数据包,因为默认情况下允许出站流量。