本页面介绍了如何在 VPC Service Controls 中管理服务边界。如需详细了解如何创建新的服务边界,请参阅创建服务边界。
本页面包括以下部分:
准备工作
阅读服务边界配置。
设置默认访问权限政策,以使用
gcloud
命令行工具。或
获取您的政策名称。使用
gcloud
命令行工具并进行 API 调用的命令需要政策名称。如果您设置了默认访问权限政策,则无需为gcloud
命令行工具指定政策。
列出和描述服务边界
列出组织中的所有服务边界:
控制台
在 Google Cloud 控制台导航菜单中,点击安全性,然后点击 VPC Service Controls。
在 VPC Service Controls 页面的表中,点击要查看的服务边界的名称。
gcloud
要列出您组织的服务边界,请使用 list
命令:
gcloud access-context-manager perimeters list \
[--policy=POLICY_ID]
请替换以下内容:
- POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
您应该会看到您组织的边界列表。例如:
NAME TITLE ProdPerimeter Production Perimeter
要查看某个服务边界的详细信息,请使用 describe
命令:
gcloud access-context-manager perimeters \
describe PERIMETER_ID \
[--policy=POLICY_ID]
请替换以下内容:
PERIMETER_ID 是您要获取其详细信息的服务边界的 ID。
POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
您应该会看到该边界的详细信息。例如:
accessLevels: - accessPolicies/626111171578/accessLevels/corpAccess resources: - projects/111584792408 restrictedServices: - bigquery.googleapis.com - storage.googleapis.com title: Production Perimeter
列出服务边界(已设置格式)
使用 gcloud
命令行工具,您可以获取 YAML 或 JSON 格式的服务边界列表。
要获取设置了格式的边界列表,请使用 list
命令。
gcloud access-context-manager perimeters list \ --format=FORMAT \ [--policy=POLICY_ID]
请替换以下内容:
FORMAT 是以下任一值:
list
(YAML 格式)json
(JSON 格式)
POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
以下输出为 YAML 格式的示例列表:
- name: accessPolicies/165717541651/servicePerimeters/On_Prem status: {'resources': ['projects/167410821371'], 'restrictedServices': ['bigquery.googleapis.com', 'storage.googleapis.com']} title: On Prem - name: accessPolicies/165717541651/servicePerimeters/Private spec: {'resources': ['projects/136109111311'], 'restrictedServices': ['bigquery.googleapis.com', 'storage.googleapis.com', 'logging.googleapis.com']} status: {'resources': ['projects/136109111311', 'projects/401921913171'], 'restrictedServices': ['bigquery.googleapis.com']} title: Private useExplicitDryRunSpec: True - name: accessPolicies/165717541651/servicePerimeters/OnpremBridge perimeterType: PERIMETER_TYPE_BRIDGE status: {'resources': ['projects/167410821371']} title: OnpremBridge
以下输出是 JSON 格式的示例列表:
[ { "name": "accessPolicies/165717541651/servicePerimeters/On_Prem", "status": { "resources": [ "projects/167410821371" ], "restrictedServices": [ "bigquery.googleapis.com", "storage.googleapis.com" ] }, "title": "On Prem" }, { "name": "accessPolicies/165717541651/servicePerimeters/Private", "spec": { "resources": [ "projects/136109111311" ], "restrictedServices": [ "bigquery.googleapis.com", "storage.googleapis.com", "logging.googleapis.com" ] }, "status": { "resources": [ "projects/136109111311", "projects/401921913171" ], "restrictedServices": [ "bigquery.googleapis.com" ] }, "title": "Private", "useExplicitDryRunSpec": true }, { "name": "accessPolicies/165717541651/servicePerimeters/OnpremBridge", "perimeterType": "PERIMETER_TYPE_BRIDGE", "status": { "resources": [ "projects/167410821371" ] }, "title": "OnpremBridge" } ]
更新服务边界
本部分介绍如何更新单个服务边界。要在一次操作中更新组织的所有服务边界,请参阅对服务边界进行批量更改。
您可以执行以下任务来更新服务边界:
- 添加新的 Google Cloud 项目或从服务边界中移除项目。
- 更改受限 Google Cloud 服务的列表。还可以更改服务边界的标题和说明。
- 启用、添加、移除或停用 VPC 可访问服务。
- 更新入站和出站政策。
更新了服务边界后,更改会在 30 分钟内传播和生效。在此期间,边界可能会阻止请求,并显示以下错误消息:Error 403: Request is prohibited by organization's policy.
控制台
在 Google Cloud 控制台导航菜单中,点击安全性,然后点击 VPC Service Controls。
在 VPC Service Controls 页面的表中,点击要修改的服务边界的名称。
在修改 VPC 服务边界页面上,更新服务边界。
点击保存。
gcloud
要向边界添加新资源,请使用 update
命令并指定要添加的资源:
gcloud access-context-manager perimeters update PERIMETER_ID \
--add-resources=RESOURCES \
[--policy=POLICY_ID]
请替换以下内容:
PERIMETER_ID 是您要获取其详细信息的服务边界的 ID。
RESOURCES 是包含一个或多个项目的逗号分隔列表 或 VPC 网络名称例如
projects/12345
或//compute.googleapis.com/projects/my-project/global/networks/vpc1
。 仅允许项目和 VPC 网络。项目格式:projects/project_number
。 VPC 格式://compute.googleapis.com/projects/project-id/global/networks/network_name
。POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
如需更新受限服务的列表,请使用 update
命令并以英文逗号分隔的列表形式指定要添加的服务:
gcloud access-context-manager perimeters update PERIMETER_ID \
--add-restricted-services=SERVICES \
[--policy=POLICY_ID]
请替换以下内容:
PERIMETER_ID 是您要获取其详细信息的服务边界的 ID。
SERVICES 是包含一个或多个服务的列表(以英文逗号分隔)。例如
storage.googleapis.com
或storage.googleapis.com,bigquery.googleapis.com
。POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
向现有边界添加访问权限级别
创建访问权限级别后,您可以将其应用于服务边界以控制访问。
更新了服务边界后,更改会在 30 分钟内传播和生效。在此期间,边界可能会阻止请求,并显示以下错误消息:Error 403: Request is prohibited by organization's policy.
控制台
在 Google Cloud 控制台导航菜单中,点击安全性,然后点击 VPC Service Controls。
在 VPC Service Controls 页面的表中,点击要修改的服务边界的名称。
在修改 VPC 服务边界页面上,点击选择访问权限级别框。
选择与要应用于服务边界的访问权限级别对应的复选框。
点击保存。
gcloud
要向现有服务边界添加访问权限级别,请使用 update
命令:
gcloud access-context-manager perimeters update PERIMETER_ID \
--add-access-levels=LEVEL_NAME \
[--policy=POLICY_ID]
请替换以下内容:
PERIMETER_ID 是服务边界的 ID。
LEVEL_NAME 是您要添加到边界的访问权限级别的名称。
POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
删除服务边界
删除服务边界时,与该边界关联的安全控制不再适用于关联的 Google Cloud 项目。对成员 Google Cloud 项目或关联资源没有任何其他影响。
控制台
在 Google Cloud 控制台导航菜单中,点击安全性,然后点击 VPC Service Controls。
在 VPC Service Controls 页面上,在与要删除的边界相对应的表行中,点击
。
gcloud
要删除服务边界,请使用 delete
命令:
gcloud access-context-manager perimeters delete PERIMETER_ID \
[--policy=POLICY_ID]
请替换以下内容:
PERIMETER_ID 是服务边界的 ID。
POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
使用 VPC 可访问服务限制对边界内服务的访问权限
本部分介绍如何启用、添加、移除和停用 VPC 可访问服务。
您可以使用 VPC 可访问服务功能来限制可从服务边界内的网络端点访问的一组服务。您可以将 VPC 可访问服务添加到服务边界,但不能添加到边界网桥。
如需详细了解 VPC 可访问服务功能,请参阅 VPC 可访问服务。
启用 VPC 可访问服务
要为服务边界启用 VPC 可访问服务,请使用以下命令:
gcloud access-context-manager perimeters update PERIMETER_ID \
--enable-vpc-accessible-services \
--add-vpc-allowed-services=SERVICES \
[--policy=POLICY_ID]
请替换以下内容:
PERIMETER_ID 是服务边界的 ID。
SERVICES 是一个逗号分隔列表,其中列出了您要允许边界内网络访问的一个或多个服务。对此列表中未包含的任何服务的访问权限 被阻止。
要快速添加受该边界保护的服务,请将
RESTRICTED-SERVICES
添加到 SERVICES 列表中。除了RESTRICTED-SERVICES
,您还可以添加其他服务。POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
例如,如需确保边界中的 VPC 网络仅可访问 Logging 和 Cloud Storage 服务,请使用以下命令:
gcloud access-context-manager perimeters update example_perimeter \
--enable-vpc-accessible-services \
--add-vpc-allowed-services=RESTRICTED-SERVICES,logging.googleapis.com,storage.googleapis.com \
--policy=11271009391
将服务添加到 VPC 可访问服务
要为边界的 VPC 可访问服务添加其他服务,请使用以下命令:
gcloud access-context-manager perimeters update PERIMETER_ID \
--add-vpc-allowed-services=SERVICES \
[--policy=POLICY_ID]
请替换以下内容:
PERIMETER_ID 是服务边界的 ID。
SERVICES 是一个逗号分隔列表,其中列出了您要允许边界内网络访问的一个或多个服务。
要快速添加受该边界保护的服务,请将
RESTRICTED-SERVICES
添加到 SERVICES 列表中。除了RESTRICTED-SERVICES
,您还可以添加独立的服务。POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
例如,如果您启用 VPC 可访问服务,并且要求边界中的 VPC 网络有权访问 Pub/Sub 服务,请使用以下命令:
gcloud access-context-manager perimeters update example_perimeter \
--add-vpc-allowed-services=RESTRICTED-SERVICES,pubsub.googleapis.com \
--policy=11271009391
从 VPC 可访问服务中移除服务
要从服务边界的 VPC 可访问服务中移除服务,请使用以下命令:
gcloud access-context-manager perimeters update PERIMETER_ID \
--remove-vpc-allowed-services=SERVICES \
[--policy=POLICY_ID]
请替换以下内容:
PERIMETER_ID 是服务边界的 ID。
SERVICES 是一个逗号分隔列表,其中列出了您要从服务边界内的网络允许访问的服务列表中移除的一个或多个服务。
POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
例如,如果您启用 VPC 可访问服务,并且不再希望边界中的 VPC 网络访问 Cloud Storage 服务,请使用以下命令:
gcloud access-context-manager perimeters update example_perimeter \
--remove-vpc-allowed-services=storage.googleapis.com \
--policy=11271009391
停用 VPC 可访问服务
要为服务边界停用 VPC 服务限制,请使用以下命令:
gcloud access-context-manager perimeters update PERIMETER_ID \
--no-enable-vpc-accessible-services \
--clear-vpc-allowed-services \
[--policy=POLICY_ID]
请替换以下内容:
PERIMETER_ID 是服务边界的 ID。
POLICY_ID 是您组织的访问权限政策的 ID。只有在未设置默认访问权限政策的情况下,才需要指定此值。
例如,要为 example_perimeter
停用 VPC 服务限制,请使用以下命令:
gcloud access-context-manager perimeters update example_perimeter \
--no-enable-vpc-accessible-services \
--clear-vpc-allowed-services \
--policy=11271009391
VPC 可访问服务和 Access Context Manager API
您还可以使用 Access Context Manager API 来管理 VPC 可访问服务。创建或修改服务边界时,请使用响应正文中的 ServicePerimeterConfig
对象来配置 VPC 可访问服务。