本页面介绍如何在现有存储桶中创建或更新存储桶 IP 过滤规则。
所需的角色
如需获得更新存储桶 IP 过滤规则所需的权限,请让您的管理员为您授予存储桶的 Storage Admin (roles/storage.admin) 角色。此角色包含更新存储桶 IP 过滤规则所需的权限。
如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.buckets.updatestorage.buckets.setIpFilter
您还可以通过自定义角色获得这些权限。 此外,您可能也可以通过其他预定义角色来获取这些权限。要查看哪些角色与哪些权限相关联,请参阅适用于 Cloud Storage 的 IAM 角色。
如需了解如何授予存储桶的角色,请参阅设置和管理存储桶的 IAM 政策。
在现有存储桶中创建或更新 IP 过滤规则。
控制台
在 Google Cloud 控制台中,前往 Cloud Storage 存储桶页面。
在存储桶列表中,点击要更新的存储桶的名称。
在存储桶详情页面上,点击配置标签页。
在权限部分中,前往 IP 过滤。然后,点击 修改 IP 过滤配置。
在 IP 过滤页面上,点击 配置。
在配置 IP 过滤 叠加窗口中,根据您要指定的 IP 过滤配置,使用相应的导航菜单。完成每个部分中的步骤后,点击继续以继续执行下一步。
公共 IP 地址
如需允许从公共 IP 地址进行访问,请执行以下操作:
点击公共互联网。
在显示的公共互联网窗格的允许的 IP 范围字段中指定一个或多个 IPv4 地址范围或 IPv6 CIDR 范围。例如
192.0.2.0/24或2001:db8::/32。如果您指定了无效条目,系统会显示一条错误消息,指明哪些条目需要更正。
VPC 网络
如需允许从 VPC 网络进行访问,请执行以下操作:
点击 VPC 网络。
在显示的 VPC 网络窗格中,针对每个网络执行以下操作:
- 点击添加 VPC 网络。
- 在新建 VPC 网络部分中,指定以下信息:
- 在项目 ID 字段中,输入您的项目 ID。
- 在网络名称字段中,输入您的网络名称。
- 在允许的 IP 范围字段中,输入一个或多个 IPv4 或 IPv6 CIDR 范围,例如
192.0.2.0/24、2001:db8::/32。如果您指定了无效条目,系统会显示一条错误消息,指明哪些条目需要更正。
- 点击完成。
其他设置
如需允许来自其他组织的受信任 Google Cloud 服务代理和 VPC 网络绕过您的 IP 过滤配置,请执行以下操作:
点击其他设置。
在显示的其他设置窗格中,执行以下操作:
在 Google Cloud 服务代理访问权限部分中,选择以下单选按钮之一:
允许服务代理访问权限:可让 BigLake、Storage Insights、Vertex AI 和 BigQuery 等 Google Cloud 服务在需要访问相应存储桶时绕过 IP 过滤验证。
拒绝服务代理访问权限:对 Google Cloud 服务代理强制执行 IP 过滤条件规则。
在(可选)跨组织 VPC 访问部分中,执行以下操作之一:
如需允许来自不同 Google Cloud 组织中指定 VPC 网络的访问,请点击切换开关以切换到允许位置。
如需阻止来自 Google Cloud 组织外部 VPC 网络的访问,请点击切换开关以切换到拒绝(默认状态)位置。
查看
如需查看 IP 过滤配置,请执行以下操作:
在显示的查看窗格中,点击公共互联网或 VPC 网络旁边的 展开箭头,查看指定的 IP 范围或 VPC,并验证其他设置配置。
如果您需要修改设置,请点击返回,返回到之前的配置步骤。
查看所有配置后,点击启用以保存 IP 过滤配置。
gcloud
验证您是否已安装 Google Cloud CLI 526.0.0 版或更高版本:
gcloud version | head -n1如果您安装的是早期 gcloud CLI 版本,请更新版本:
gcloud components update --version=526.0.0创建一个 JSON 文件,用于定义传入请求的规则。如需查看示例以及有关如何构造存储桶 IP 过滤规则的信息,请参阅存储桶 IP 过滤配置。
{ "mode":"MODE", "publicNetworkSource":{ "allowedIpCidrRanges":[ "RANGE_CIDR", "..." ] }, "vpcNetworkSources":[ { "network":"projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges":[ "RANGE_CIDR", "..." ] }, "..." ], "allowCrossOrgVpcs": ALLOW_CROSS_ORG_VPCS, "allowAllServiceAgentAccess": ALLOW_ALL_SERVICE_AGENT_ACCESS }
其中:
MODE是存储桶 IP 过滤配置的模式。有效值为Enabled和Disabled。如果设置为Enabled,则会对存储桶应用 IP 过滤规则。系统会根据这些规则评估对存储桶的所有传入请求。设置为Disabled时,所有传入请求均可访问存储桶。RANGE_CIDR是允许访问存储桶的公共网络 IPv4 或 IPv6 地址范围。您可以以列表形式输入一个或多个地址范围。PROJECT_ID是虚拟私有云 (VPC) 网络所在项目的 ID。如需配置多个 VPC 网络,您需要指定每个网络所在的项目。NETWORK_NAME是可以访问存储桶的 VPC 网络的名称。如需配置多个 VPC 网络,您需要为每个网络指定一个名称。ALLOW_CROSS_ORG_VPCS是一个布尔值,用于指示是否允许在vpcNetworkSources中定义的 VPC 网络源自其他组织。此字段是可选字段。如果设置为true,则请求允许使用跨组织 VPC 网络。如果设置为false,则请求会将 VPC 网络限制为与存储桶位于同一组织。如果未指定,则默认值为false。 此字段仅在vpcNetworkSources不为空时适用。ALLOW_ALL_SERVICE_AGENT_ACCESS是一个布尔值,用于指示是否允许服务代理访问存储桶,无论 IP 过滤条件配置如何。如果值为true,则其他 Google Cloud 服务可以使用服务代理访问存储桶,而无需进行基于 IP 的验证。
如需更新存储桶 IP 过滤规则,请在开发环境中运行
gcloud storage buckets update命令:gcloud storage buckets update gs://BUCKET_NAME --ip-filter-file=IP_FILTER_CONFIG_FILE
其中:
BUCKET_NAME是您的存储桶的名称。 例如my-bucket。IP_FILTER_CONFIG_FILE是您创建的 JSON 文件。
JSON API
安装并初始化 gcloud CLI,以便为
Authorization标头生成访问令牌。创建一个包含存储桶设置的 JSON 文件,其中必须包含存储桶的
name和ipFilter配置字段。如需查看示例以及有关如何构造存储桶 IP 过滤规则的信息,请参阅存储桶 IP 过滤配置。{ "ipFilter":{ "mode":"MODE", "publicNetworkSource":{ "allowedIpCidrRanges":[ "RANGE_CIDR", "..." ] }, "vpcNetworkSources":[ { "network":"projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges":[ "RANGE_CIDR", "..." ] }, "..." ], "allowCrossOrgVpcs": ALLOW_CROSS_ORG_VPCS, "allowAllServiceAgentAccess": ALLOW_ALL_SERVICE_AGENT_ACCESS } }
其中:
MODE是 IP 过滤条件配置的状态。有效值为Enabled和Disabled。如果设置为Enabled,则会对存储桶应用 IP 过滤规则,并根据这些规则评估存储桶的所有传入请求。设置为Disabled时,所有传入请求都可以访问存储桶及其数据,不进行任何评估。RANGE_CIDR是允许访问存储桶的公共网络 IPv4 或 IPv6 地址范围。您可以以列表形式输入一个或多个地址范围。PROJECT_ID是 VPC 网络所在项目的 ID。如需配置多个 VPC 网络,您需要指定每个网络所在的项目。NETWORK_NAME是可以访问存储桶的 VPC 网络的名称。如需配置多个 VPC 网络,您需要为每个网络指定一个名称。ALLOW_ALL_SERVICE_AGENT_ACCESS是一个布尔值,用于指示是否允许服务代理访问存储桶,无论 IP 过滤条件配置如何。如果值为true,则其他 Google Cloud 服务可以使用服务代理访问存储桶,而无需进行基于 IP 的验证。ALLOW_CROSS_ORG_VPCS是一个布尔值,用于指示是否允许在vpcNetworkSources列表中定义的 VPC 网络源自其他组织。此字段是可选字段。如果设置为true,则请求允许使用跨组织 VPC 网络。如果设置为false,则请求会将 VPC 网络限制为与存储桶位于同一组织。如果未指定,则默认值为false。 此字段仅在vpcNetworkSources不为空时适用。
使用
cURL,通过 PATCH bucket 请求调用 JSON API:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?project=PROJECT_ID"
其中:
JSON_FILE_NAME是您创建的 JSON 文件的名称。BUCKET_NAME是您的存储分区的名称。PROJECT_ID是与存储桶关联的项目的 ID。例如my-project。
管理 Google Cloud 服务代理访问权限
如需在存储桶中配置 IP 过滤规则后更新服务代理访问权限,请完成以下步骤:
控制台
在 Google Cloud 控制台中,前往 Cloud Storage 存储桶页面。
在存储桶列表中,点击要更新的存储桶的名称。
在存储桶详情页面上,点击配置标签页。
在权限部分中,前往 IP 过滤。然后,点击 修改 IP 过滤配置。
系统会显示 IP 过滤页面。
在管理 Google Cloud 服务代理访问权限部分中,执行以下操作之一:
如需允许服务代理访问权限,请完成以下步骤:
点击 已停用,将设置更改为 已启用。
如需确认要允许访问,请在启用字段中输入
Enable。
如需拒绝服务代理访问权限,请完成以下步骤:
点击 已启用,将设置更改为 已停用。
如需确认要拒绝访问,请在停用字段中输入
Disable。
系统会显示一条通知消息,确认更改已完成。
gcloud
如需更新存储桶的服务代理访问权限,请使用 gcloud storage
buckets update 命令,并将 allowAllServiceAgentAccess 字段设置为 true 以允许访问权限或设置为 false 以拒绝访问权限。如需查看详细说明,请参阅在现有存储桶中创建或更新 IP 过滤规则。
JSON API
如需更新服务代理访问权限,您可以使用 PATCH 请求来更新相应存储桶的 ipFilter 配置。将 allowAllServiceAgentAccess 字段设置为 true 以允许访问权限,或设置为 false 以拒绝访问权限。如需查看详细说明,请参阅在现有存储桶中创建或更新 IP 过滤规则。
管理跨组织 VPC 访问权限
如需在存储桶中配置 IP 过滤规则后更新跨组织 VPC 访问权限,请完成以下步骤:
控制台
在 Google Cloud 控制台中,前往 Cloud Storage 存储桶页面。
在存储桶列表中,点击要更新的存储桶的名称。
在存储桶详情页面上,点击配置标签页。
在权限部分中,前往 IP 过滤。然后,点击 修改 IP 过滤配置。
系统会显示 IP 过滤页面。
在管理跨组织 VPC 访问权限部分中,执行以下操作之一:
如需允许跨组织 VPC 访问权限,请完成以下步骤:
点击 已停用,将设置更改为 已启用。
如需确认要允许访问,请在启用字段中输入
Enable。
如需拒绝跨组织 VPC 访问权限,请完成以下步骤:
点击 已启用,将设置更改为 已停用。
如需确认要拒绝访问,请在停用字段中输入
Disable。
系统会显示一条通知消息,确认更改已完成。
gcloud
如需更新存储桶的跨组织 VPC 访问权限,请使用 gcloud storage buckets update 命令,并将 allowCrossOrgVpcs 字段设置为 true 以允许访问权限或设置为 false 以拒绝访问权限。如需查看详细说明,请参阅在现有存储桶中创建或更新 IP 过滤规则。
JSON API
如需更新跨组织 VPC 访问权限,您可以使用 PATCH 请求来更新相应存储桶的 ipFilter 配置。将 allowCrossOrgVpcs 字段设置为 true 以允许访问权限,或设置为 false 以拒绝访问权限。如需查看详细说明,请参阅在现有存储桶中创建或更新 IP 过滤规则。
后续步骤
亲自尝试
如果您是 Google Cloud 新手,请创建一个账号来评估 Cloud Storage 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
免费试用 Cloud Storage