更新存储桶 IP 过滤规则

本页介绍了如何更新存储桶 IP 过滤规则。

所需的角色

如需获得更新存储桶 IP 过滤规则所需的权限,请让您的管理员为您授予存储桶的 Storage Admin (roles/storage.admin) 角色。此角色包含更新存储桶 IP 过滤规则所需的权限。

如需查看所需的确切权限,请展开所需权限部分:

所需权限

  • storage.buckets.update
  • storage.buckets.setIpFilter

您还可以通过自定义角色获得这些权限。您也可以通过其他预定义角色来获取这些权限。要查看哪些角色与哪些权限相关联,请参阅适用于 Cloud Storage 的 IAM 角色

如需了解如何授予项目角色,请参阅管理对项目的访问权限

更新存储桶 IP 过滤规则

命令行

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 创建一个 JSON 文件,用于定义传入请求的规则。如需查看示例以及有关如何构建分桶 IP 过滤规则的信息,请参阅分桶 IP 过滤配置

    {
      "mode": "Enabled",
      "publicNetworkSource":
        {
        "allowedIpCidrRanges":
          [RANGE_CIDR,
          ...
          ]
        },
      "vpcNetworkSources":
          [
           {"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
            "allowedIpCidrRanges":
              [RANGE_CIDR,
              ...
              ]
           },
          ...
          ]
       }

    其中:

    • mode 是 IP 过滤器配置的模式。有效值为 EnabledDisabled。设置为 Enabled 时,系统会对存储桶应用 IP 过滤规则。系统会根据这些规则评估对存储桶发出的任何传入请求。设置为 Disabled 时,系统会允许所有传入请求访问存储桶。

    • RANGE_CIDR 是允许访问存储桶的公共网络 IPv4 或 IPv6 地址范围。您可以以列表的形式输入一个或多个地址范围。

    • PROJECT_ID 是虚拟私有云 (VPC) 网络所在的项目 ID。如需配置多个 VPC 网络,您需要指定每个网络所在的项目。

    • NETWORK_NAME 是允许访问存储桶的 VPC 网络的名称。如需配置多个 VPC 网络,您需要为每个网络指定一个名称。

  3. 如需更新存储桶 IP 过滤规则,请在开发环境中运行 gcloud alpha storage buckets update 命令:

    gcloud alpha storage buckets update gs://BUCKET_NAME --ip-filter-file=IP_FILTER_CONFIG_FILE

    其中:

    • BUCKET_NAME 是您的存储桶的名称。 例如 my-bucket
    • IP_FILTER_CONFIG_FILE 是您在上一步中创建的 JSON 文件。

REST API

JSON API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 创建一个包含存储桶设置的 JSON 文件,其中必须包含存储桶的 nameipFilter 配置字段。如需查看示例以及有关如何构建分桶 IP 过滤规则的信息,请参阅 分桶 IP 过滤配置

    {
      "name": "BUCKET_NAME"
      "ipFilter": {
        "mode": "Enabled",
        "publicNetworkSource":
          {
            "allowedipCidrRanges":
              [RANGE_CIDR,
                ...
              ]
              },
              "vpcNetworkSources":
              [
              {"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
                "allowedipCidrRanges":
                [RANGE_CIDR,
                  ...
                ]
              },
              ...
              ]
            }
           }
          

    其中:

    • mode 是 IP 过滤器配置的状态。有效值为 EnabledDisabled。设置为 Enabled 时,系统会将 IP 过滤规则应用于存储桶,并根据这些规则评估传入该存储桶的所有请求。设置为 Disabled 后,所有传入请求都可以访问该存储桶及其数据,而无需进行任何评估。

    • RANGE_CIDR 是允许访问存储桶的公共网络 IPv4 或 IPv6 地址范围。您可以以列表的形式输入一个或多个地址范围。

    • PROJECT_ID 是 VPC 网络所在的项目 ID。如需配置多个 VPC 网络,您需要指定每个网络所在的项目。

    • NETWORK_NAME 是允许访问存储桶的 VPC 网络的名称。如需配置多个 VPC 网络,您需要为每个网络指定一个名称。

  3. 使用 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?project=PROJECT_IDENTIFIER&projection=full"

    其中:

    • JSON_FILE_NAME 是您在上一步中创建的 JSON 文件的名称。
    • PROJECT_IDENTIFIER 是与存储桶关联的项目的 ID 或编号。例如 my-project

后续步骤

自行试用

如果您是 Google Cloud 新手,请创建一个账号来评估 Cloud Storage 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。

免费试用 Cloud Storage