既存のバケットで IP フィルタリング ルールを作成または更新する

このページでは、既存のバケットでバケット IP フィルタリング ルールを作成または更新する方法について説明します。

必要なロール

バケットの IP フィルタリング ルールを更新するために必要な権限を取得するには、バケットに対するストレージ管理者(roles/storage.admin)ロールを付与するよう管理者に依頼してください。このロールには、バケット IP フィルタリング ルールの更新に必要な権限が含まれています。

必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

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

カスタムロールを使用して、これらの権限を取得することもできます。他の事前定義ロールでこれらの権限を取得することもできます。どのロールがどの権限に関連付けられているかを確認するには、Cloud Storage に適用される IAM のロールをご覧ください。

プロジェクトにロールを付与する手順については、プロジェクトへのアクセス権を管理するをご覧ください。

既存のバケットで IP フィルタリング ルールを作成または更新する

gcloud

受信リクエストのルールを定義する 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 フィルタリング構成のモードです。有効な値は EnabledDisabled です。Enabled に設定すると、IP フィルタリング ルールがバケットに適用されます。バケットへの受信リクエストはすべて、これらのルールに照らして評価されます。Disabled に設定すると、受信したすべてのリクエストがバケットにアクセスできます。

  • RANGE_CIDR は、バケットへのアクセスが許可されているパブリック ネットワークの IPv4 または IPv6 アドレス範囲です。1 つまたは複数のアドレス範囲をリストとして入力できます。

  • PROJECT_ID は、Virtual Private Cloud(VPC)ネットワークが存在するプロジェクト ID です。複数の VPC ネットワークを構成するには、各ネットワークが配置されているプロジェクトを指定する必要があります。

  • NETWORK_NAME は、バケットへのアクセスが許可されている VPC ネットワークの名前です。複数の VPC ネットワークを構成するには、各ネットワークの名前を指定する必要があります。

  • ALLOW_CROSS_ORG_VPCS はブール値であり、vpcNetworkSources で定義された VPC ネットワークが別の組織からのものであることを許可するかどうかを示します。このフィールドは省略可能です。true に設定すると、リクエストで組織間の VPC ネットワークが許可されます。false に設定すると、リクエストで VPC ネットワークがバケットと同じ組織に制限されます。指定しない場合、デフォルト値は false です。

  • ALLOW_ALL_SERVICE_AGENT_ACCESS は、IP フィルタの構成に関係なく、サービス エージェントがバケットにアクセスできるようにするかどうかを示すブール値です。値が true の場合、他の Google Cloud サービスはサービス エージェントを使用して、IP ベースの検証なしでバケットにアクセスできます。

  1. バケット 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 ファイルを作成します。この設定には、バケットの 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 フィルタ構成の状態です。有効な値は EnabledDisabled です。Enabled に設定すると、IP フィルタリング ルールがバケットに適用され、バケットへのすべての受信リクエストがこれらのルールに照らして評価されます。Disabled に設定すると、すべての受信リクエストが、評価なしでバケットとそのデータにアクセスできます。

    • RANGE_CIDR は、バケットへのアクセスが許可されているパブリック ネットワークの IPv4 または IPv6 アドレス範囲です。1 つまたは複数のアドレス範囲をリストとして入力できます。

    • 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 です。

  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/BUCKET_NAME?project=PROJECT_IDENTIFIER"

    ここで

    • JSON_FILE_NAME は、前の手順で作成した JSON ファイルの名前です。
    • BUCKET_NAME はバケットの名前です。
    • PROJECT_IDENTIFIER は、バケットが関連付けられているプロジェクトの ID または番号です。例: my-project

次のステップ

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Cloud Storage のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

Cloud Storage を無料で試す