您的 Virtual Private Cloud (VPC) 防火墙规则可以包含网络标记和来源服务账号。执行以下任务,将包含网络标记和来源服务账号的 VPC 防火墙规则迁移到全球网络防火墙政策:
- 评估您的环境。
- 列出现有网络标记和服务账号。
- 为每个网络标记和来源服务账号创建标记。
- 将网络标记和服务账号映射到您创建的标记。
- 将标记绑定到虚拟机 (VM) 实例。
- 将 VPC 防火墙规则迁移到全球网络防火墙政策。
- 查看新的网络防火墙政策。
- 完成迁移后任务。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 确保您具有 Compute Security Admin 角色 (
roles/compute.securityAdmin
)。
评估您的环境
在将 VPC 防火墙规则迁移到全球网络防火墙政策之前,请评估您现有的环境以及 Identity and Access Management (IAM) 角色和权限:
- 确定 VPC 网络中 VPC 防火墙规则的数量。
- 记下与每个 VPC 防火墙规则关联的优先级。
- 确保您拥有创建、关联、修改和查看全球网络防火墙政策所需的 IAM 角色和权限。
确保您拥有创建、更新和删除安全标记定义所需的 IAM 角色和权限。
下表总结了创建和管理代码所需的各种角色:
角色名称 执行的任务 Tag Administrator 角色 ( roles/resourcemanager.tagAdmin
)创建、更新和删除标记定义。如需了解详情,请参阅管理标记。 Tag Viewer 角色 ( roles/resourcemanager.tagViewer
)查看标记定义和附加到资源的标记。 Tag User 角色 ( roles/resourcemanager.tagUser
)添加和移除附加到资源的标记。
列出现有网络标记和服务账号
确定您的 VPC 防火墙规则是否使用了任何网络标记或服务账号,并创建一个 JSON 文件来保存现有网络标记和服务账号的详细信息。
如需将网络中的网络标记和服务账号导出到 JSON 映射文件,请将 compute firewall-rules migrate
命令与 --export-tag-mapping
标志结合使用。
gcloud beta compute firewall-rules migrate \ --source-network=NETWORK_NAME \ --export-tag-mapping \ --tag-mapping-file=TAG_MAPPING_FILE
替换以下内容:
NETWORK_NAME
:包含要迁移的 VPC 防火墙规则的 VPC 网络的名称。TAG_MAPPING_FILE
:映射 JSON 文件的名称。
如果您的 VPC 防火墙规则仅包含服务账号,则生成的 JSON 文件也仅包含服务账号。同样,如果您的 VPC 防火墙规则仅包含网络标记,则生成的 JSON 文件也仅包含网络标记。服务账号以 sa
为前缀,而网络标记没有任何前缀。
例如,以下生成的 JSON 文件包含网络标记 sql-server
和服务账号 example@example.com
。
{"network-tag-1": null, "sa:service@account1.com": null}
创建标记
根据映射文件中列出的网络标记和来源服务账号,您必须在网络中创建相应的安全标记。
新的安全标记会用作网络标记和服务账号的替代项,并在迁移后保留原始网络配置。
作为具有 Tag Administrator 角色的主账号,请为每个网络标记和服务账号创建相应的安全标记键值对。
gcloud resource-manager tags keys create TAG_KEY \ --parent organizations/ORGANIZATION_ID \ --purpose GCE_FIREWALL \ --purpose-data network=PROJECT_ID/NETWORK_NAME gcloud resource-manager tags values create TAG_VALUE \ --parent ORGANIZATION_ID/TAG_KEY
替换以下内容:
TAG_KEY
:标记键的名称。ORGANIZATION_ID
:您的组织的 ID。PROJECT_ID
:您的项目的 ID。NETWORK_NAME
:您的 VPC 网络的名称。TAG_VALUE
:要分配给标记键的值。
例如,如果您的 VPC 防火墙规则具有名为 sql-server
的网络标记,请创建相应的安全标记键值对 sql-server:production
。
gcloud resource-manager tags keys create sql-server \ --parent organizations/123456 \ --purpose GCE_FIREWALL \ --purpose-data network=test-project/test-network gcloud resource-manager tags values create production \ --parent 123456/sql-server
将网络标记和服务账号映射到标记
为 VPC 防火墙规则使用的每个网络标记和服务账号创建 IAM 治理的安全标记后,您必须将这些标记映射到映射 JSON 文件中相应的网络标记和服务账号。
修改 JSON 文件以将网络标记和服务账号映射到相应的安全标记。
{"sql-server": "tagValues/yyyyy", "sa:example@example.com": "tagValues/zzzzz"}
例如,以下 JSON 文件将网络标记 sql-server
映射到键 sql-server
的标记值,并将服务账号 example@example.com
映射到键 example@example.com
的标记值:
{"sql-server": "tagValues/production", "sa:example@example.com": "tagValues/example"}
将标记绑定到虚拟机
根据标记映射 JSON 文件,将新创建的安全标记绑定到现有网络标记所附加到的虚拟机:
作为具有 Tag Administrator 角色的主账号,请执行以下操作:
- 查看将安全标记附加到 Google Cloud 资源所需的权限。
- 向使用安全标记并将该标记绑定到虚拟机的主账号分配 Tag User 角色。
作为具有 Tag User 角色的主账号,请将
compute firewall-rules migrate
命令与--bind-tags-to-instances
标志结合使用:gcloud beta compute firewall-rules migrate \ --source-network=NETWORK_NAME \ --bind-tags-to-instances \ --tag-mapping-file=TAG_MAPPING_FILE
替换以下内容:
NETWORK_NAME
:您的 VPC 网络的名称。TAG_MAPPING_FILE
:映射 JSON 文件的名称。
将 VPC 防火墙规则迁移到全球网络防火墙政策
将 VPC 防火墙规则迁移到全球网络防火墙政策。使用 compute-firewall-rules migrate
命令。
gcloud beta compute firewall-rules migrate \ --source-network=NETWORK_NAME \ --target-firewall-policy=POLICY_NAME \ --tag-mapping-file=TAG_MAPPING_FILE
替换以下内容:
NETWORK_NAME
:包含要迁移的 VPC 防火墙规则的 VPC 网络的名称。POLICY_NAME
:要在迁移期间创建的全球网络防火墙政策的名称。
查看新的全球网络防火墙政策
在将新创建的政策关联到 VPC 网络之前,Google 建议您先查看该政策,以确保迁移过程已准确完成。
请验证以下内容:
防火墙政策规则配置是否正确,以及是否已为每个规则正确迁移以下规则组成部分:
- 相对优先级
- 流量方向
- 对匹配项执行的操作
- 日志设置
- 目标参数
- 来源参数(适用于入站流量规则)
- 目的地参数(适用于出站流量规则)
- 协议和端口限制条件
验证安全标记是否已附加到正确的虚拟机。使用
resource-manager tags bindings list
命令。gcloud resource-manager tags bindings list \ --location=ZONE_ID \ --parent //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE_ID/instances/INSTANCE_NAME \ --effective
替换以下内容:
ZONE_ID
:您的虚拟机所在的可用区。PROJECT_ID
:您的项目的 ID。INSTANCE_NAME
:您的虚拟机的名称。
迁移后的任务
如需激活和使用新的全球网络防火墙政策,请完成迁移后任务。如需了解详情,请参阅迁移后任务。
后续步骤
- 详细了解如何迁移 VPC 防火墙规则。
- 迁移不包含任何依赖项的 VPC 防火墙规则。