Criar um bucket com regras de filtragem de IP

Nesta página, descrevemos como criar um bucket com regras de filtragem de IP. Ao criar um bucket com filtragem de IP, você pode controlar o acesso a ele examinando as solicitações recebidas com base nos endereços IP especificados nas regras de filtragem de IP do bucket. Para mais detalhes, consulte Filtragem de IP do bucket.

Para informações sobre como criar ou atualizar as regras de filtragem de IP em um bucket existente, consulte Atualizar regras de filtragem de IP do bucket.

Funções exigidas

Para ter as permissões necessárias para criar um bucket com regras de filtragem de IP, peça ao administrador para conceder a você o papel de Administrador do Storage (roles/storage.admin) no bucket. Esse papel contém as permissões necessárias para criar um bucket com regras de filtragem de IP.

Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

  • storage.buckets.create
  • storage.buckets.setIpFilter

Também é possível receber essas permissões com funções personalizadas. Também é possível conseguir essas permissões com outros papéis predefinidos. Para conferir quais papéis estão associados a quais permissões, consulte Papéis do IAM para o Cloud Storage.

Para instruções sobre como conceder papéis nos buckets, consulte Definir e gerenciar políticas do IAM em buckets.

Criar um bucket com regras de filtragem de IP

Console

  1. No console do Cloud de Confiance , acesse a página Buckets do Cloud Storage.

    Acesse Buckets

  2. Clique em Criar.
  3. Na página Criar um bucket, insira as informações do seu bucket. Após cada uma das etapas a seguir, clique em Continuar para prosseguir para a próxima etapa:

    1. Na seção Começar, faça o seguinte:

      • Insira um nome globalmente exclusivo que atenda aos requisitos de nome de bucket.

      • Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos, clique em Adicionar rótulo e especifique um key e um value para o rótulo.

    2. Na seção Escolha onde armazenar seus dados, faça o seguinte:

      1. Selecione um tipo de local.

      2. Use o menu suspenso do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.

    3. Na seção Escolha como armazenar seus dados, faça o seguinte:

      1. Selecione uma classe de armazenamento padrão para o bucket ou Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.

      2. Na seção Otimizar o armazenamento para cargas de trabalho com uso intensivo de dados, faça o seguinte:

        • Para ativar o namespace hierárquico, selecione Ativar namespace hierárquico neste bucket.

        • Para ativar o Rapid Cache, selecione Ativar Rapid Cache e siga as etapas:
          1. Para criar caches, clique em Configurar.

          2. Na caixa de diálogo Configurar configurações de cache, clique na seta suspensa ao lado das regiões listadas e selecione as zonas em que você quer criar caches.

          3. Clique em Concluído.

    4. Na seção Escolha como controlar o acesso a objetos, faça o seguinte:

      1. Selecione se o bucket aplica a prevenção de acesso público.

      2. Selecione Uniforme para ativar o acesso uniforme no nível do bucket.

      3. Para configurar a filtragem de IP para o bucket, faça o seguinte:

        1. Na seção Filtragem de IP, clique em  Configurar.

        2. Para permitir o acesso de endereços IP públicos, faça o seguinte:

          1. Clique em Internet pública.
          2. No campo Intervalos de IP permitidos, especifique um ou mais intervalos de endereços IPv4 ou intervalos CIDR IPv6 para permitir. Por exemplo, 192.0.2.0/24 ou 2001:db8::/32.

            Para evitar o bloqueio do bucket, inclua seu próprio endereço IP.

        3. Para permitir o acesso de redes VPC, faça o seguinte:

          1. Clique em Redes VPC.
          2. Faça o seguinte para cada rede:

            1. Clique em Adicionar rede VPC.
            2. Na seção Nova rede VPC, especifique as seguintes informações:

              • No campo ID do projeto, insira o ID do projeto.
              • No campo Nome da rede, insira o nome da sua rede.
              • No campo Intervalos de IP permitidos, insira um ou mais intervalos CIDR IPv4 ou IPv6, como 192.0.2.0/24 ou 2001:db8::/32.

                Para evitar o bloqueio do seu bucket, inclua seu próprio endereço IP.

            3. Clique em Concluído.
        4. Para permitir que agentes de serviço Cloud de Confiance confiáveis e redes VPC de outras organizações ignorem sua configuração de filtragem de IP, faça o seguinte:

          1. Clique em Configurações avançadas.
          2. Na seção Acesso do agente de serviço do Google Cloud, selecione uma das seguintes opções:

            • Permitir acesso do agente de serviço: permite que os serviços do Cloud de Confiance como BigLake, Storage Insights, Vertex AI e BigQuery ignorem a validação de filtragem de IP quando precisarem acessar esse bucket.
            • Negar acesso do agente de serviço: aplica as regras de filtro de IP para agentes de serviço do Cloud de Confiance .
          3. Na seção Acesso à VPC entre organizações, faça uma das seguintes ações:
            • Para permitir o acesso de redes VPC específicas localizadas em diferentes organizações do Cloud de Confiance , clique na chave para a posição Permitir.
            • Para bloquear o acesso de redes VPC fora da sua organização Cloud de Confiance , clique no botão de alternância para a posição Negar (estado padrão).
        5. Clique em Revisar e em Salvar.
    5. Na seção Escolha como proteger os dados do objeto, faça o seguinte:

      • Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.

      • Para mudar o período em que a exclusão reversível mantém os objetos após a exclusão, marque a caixa de seleção Política de exclusão reversível e selecione a opção Definir duração de retenção personalizada. Em seguida, especifique por quanto tempo você quer reter os objetos excluídos.

        Para desativar a exclusão reversível, por exemplo, se o bucket contiver principalmente dados temporários de curta duração, desmarque a caixa de seleção Política de exclusão reversível.

      • Para escolher como criptografar os dados do objeto, clique na seta de expansão identificada como Criptografia de dados e faça o seguinte:

  4. Clique em Criar.

gcloud

  1. Verifique se você tem a versão 526.0.0 ou mais recente da Google Cloud CLI instalada:

    gcloud version | head -n1
    
  2. Se você tiver uma versão anterior da CLI gcloud instalada, atualize-a:

    gcloud components update --version=526.0.0
    
  3. Crie um arquivo JSON que defina as regras para solicitações recebidas. Para exemplos e informações sobre como estruturar as regras de filtragem de IP do bucket, consulte Configurações de filtragem de IP do bucket.

    {
      "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
    }

    Em que:

    • MODE é o modo da configuração de filtragem de IP do bucket. Os valores válidos são: Enabled e Disabled. Quando definido como Enabled, as regras de filtragem de IP são aplicadas a um bucket. Todas as solicitações recebidas para o bucket são avaliadas com base nessas regras. Quando definido como Disabled, todas as solicitações recebidas podem acessar o bucket.

    • RANGE_CIDR é um intervalo de endereços IPv4 ou IPv6 de rede pública que tem permissão para acessar o bucket. É possível inserir um ou vários intervalos de endereços como uma lista.

    • PROJECT_ID é o ID do projeto em que a rede de nuvem privada virtual (VPC) existe. Para configurar várias redes VPC, especifique o projeto em que cada rede está localizada.

    • NETWORK_NAME é o nome da rede VPC que tem permissão para acessar o bucket. Para configurar várias redes VPC, é preciso especificar um nome para cada uma delas.

    • ALLOW_CROSS_ORG_VPCS é um valor booleano que indica se as redes VPC definidas em vpcNetworkSources podem ter origem em uma organização diferente. Este campo é opcional. Se definido como true, a solicitação permitirá redes VPC entre organizações. Se definido como false, a solicitação restringe as redes VPC à mesma organização do bucket. Se não for especificado, o valor padrão será false. Esse campo só é aplicado se vpcNetworkSources não estiver vazio.

    • ALLOW_ALL_SERVICE_AGENT_ACCESS é um valor booleano que indica se os agentes de serviço podem acessar o bucket, independente da configuração do filtro de IP. Se o valor for true, outros serviços Cloud de Confiance poderão usar agentes de serviço para acessar o bucket sem validação baseada em IP.

  4. Para criar um bucket com regras de filtragem de IP, execute o comando gcloud storage buckets create no ambiente de desenvolvimento:

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

    Em que:

    • BUCKET_NAME é o nome que você quer dar ao bucket, sujeito a requisitos de nomenclatura. Exemplo: my-bucket
    • IP_FILTER_CONFIG_FILE é o arquivo JSON que define as regras para solicitações recebidas.

API JSON

  1. Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho Authorization.

  2. Crie um arquivo JSON com as configurações do bucket, que precisam incluir os campos de configuração name e ipFilter. Para exemplos e informações sobre como estruturar as regras de filtragem de IP do bucket, consulte Configurações de filtragem de IP do bucket.

    {
      "name": "BUCKET_NAME",
      "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
        },
    }

    Em que:

    • MODE é o estado da configuração de filtro de IP. Os valores válidos são Enabled e Disabled. Quando definido como Enabled, as regras de filtragem de IP são aplicadas a um bucket, e todas as solicitações recebidas para ele são avaliadas com base nessas regras. Quando definido como Disabled, todas as solicitações recebidas podem acessar o bucket e os dados dele sem avaliação se você tiver as permissões necessárias do IAM.

    • RANGE_CIDR é um intervalo de endereços IPv4 ou IPv6 de rede pública que tem permissão para acessar o bucket. É possível inserir um ou vários intervalos de endereços como uma lista.

    • PROJECT_ID é o ID do projeto em que a rede VPC existe. Para configurar várias redes VPC, especifique o projeto em que cada rede está localizada.

    • NETWORK_NAME é o nome da rede VPC que tem permissão para acessar o bucket. Para configurar várias redes VPC, especifique um nome para cada uma.

    • ALLOW_ALL_SERVICE_AGENT_ACCESS é um valor booleano que indica se os agentes de serviço podem acessar o bucket, independente da configuração de filtro de IP. Se o valor for true, outros serviços Cloud de Confiance poderão usar agentes de serviço para acessar o bucket sem validação baseada em IP.

    • ALLOW_CROSS_ORG_VPCS é um valor booleano que indica se as redes VPC definidas em vpcNetworkSources podem ser originadas de uma organização diferente. Este campo é opcional. Se definido como true, a solicitação permitirá redes VPC entre organizações. Se definido como false, a solicitação restringe as redes VPC à mesma organização do bucket. Se não for especificado, o valor padrão será false. Esse campo só é aplicado se vpcNetworkSources não estiver vazio.

  3. Use cURL para chamar a API JSON com uma solicitação POST bucket:

    curl -X POST --data-binary @JSON_FILE_NAME \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     "https://storage.s3nsapis.fr/storage/v1/b?project=PROJECT_ID"

    Em que:

    • JSON_FILE_NAME é o nome do arquivo JSON que contém as configurações do bucket.
    • PROJECT_ID é o ID do projeto ao qual o bucket está associado. Por exemplo, my-project.

Configurações de filtragem de IP do bucket

Esta seção fornece exemplos de configurações de arquivo JSON de filtragem de IP de bucket para controlar o acesso aos seus buckets do Cloud Storage. É possível conceder acesso a solicitações recebidas usando qualquer um dos seguintes exemplos:

  • Qualquer endereço IP público (IPv4 ou IPv6):

    A configuração a seguir concede acesso a qualquer endereço IPv4 ou IPv6 público, mas bloqueia o tráfego originado de qualquer VPC:

    gcloud

    {
      "mode": "Enabled",
      "publicNetworkSource": {
        "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"]
      },
      "allowAllServiceAgentAccess": false
    }

    API JSON

    {
      "name": "my-bucket",
      "ipFilter": {
        "mode": "Enabled",
        "publicNetworkSource": {
          "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"]
        },
        "allowAllServiceAgentAccess": false
      }
    }
  • Intervalos de IP públicos específicos:

    • O exemplo de configuração a seguir concede acesso ao intervalo de endereços IPv4 públicos 192.0.2.0/24, mas bloqueia o tráfego originado de qualquer VPC:

      gcloud

      {
        "mode": "Enabled",
        "publicNetworkSource": {
          "allowedIpCidrRanges": ["192.0.2.0/24"]
        },
        "allowAllServiceAgentAccess": false
      }

      API JSON

      {
        "name": "my-bucket",
        "ipFilter": {
          "mode": "Enabled",
          "publicNetworkSource": {
            "allowedIpCidrRanges": ["192.0.2.0/24"]
          },
          "allowAllServiceAgentAccess": false
        }
      }
    • O exemplo de configuração a seguir concede acesso ao intervalo de endereços IPv6 públicos 2001:db8::/32, mas bloqueia o tráfego originado de qualquer VPC:

      gcloud

      {
        "mode": "Enabled",
        "publicNetworkSource": {
          "allowedIpCidrRanges": ["2001:db8::/32"]
        },
        "allowAllServiceAgentAccess": false
      }

      API JSON

      {
        "name": "my-bucket",
        "ipFilter": {
          "mode": "Enabled",
          "publicNetworkSource": {
            "allowedIpCidrRanges": ["2001:db8::/32"]
          },
          "allowAllServiceAgentAccess": false
        }
      }
  • Redes VPC: usando as configurações a seguir, é possível conceder acesso a recursos na sua rede VPC. É possível conceder acesso a todos os endereços IP na VPC ou a intervalos de IP específicos na VPC. Em cada um desses exemplos, PROJECT_ID é o ID do projeto em que a rede VPC existe e NETWORK_NAME é o nome da rede VPC que tem permissão para acessar o bucket.

    • O exemplo de configuração a seguir concede acesso a uma solicitação de qualquer endereço IPv4 ou IPv6 proveniente de uma VPC específica e bloqueia o tráfego originado de um endereço IP público:

      gcloud

      {
        "mode": "Enabled",
        "vpcNetworkSources": [
          {
            "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
            "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"]
          },
        ],
        "allowAllServiceAgentAccess": false
      }

      API JSON

      {
        "name": "my-bucket",
        "ipFilter": {
          "mode": "Enabled",
          "vpcNetworkSources": [
            {
              "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
              "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"]
            },
          ],
          "allowAllServiceAgentAccess": false
        }
      }
    • O exemplo de configuração a seguir concede acesso apenas a uma solicitação de uma VPC associada a uma VM com um endereço IPv4 externo como 192.0.2.0/24 e bloqueia o tráfego originado de um endereço IP público:

      gcloud

      {
        "mode": "Enabled",
        "vpcNetworkSources": [
          {
            "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
            "allowedIpCidrRanges": ["192.0.2.0/24"]
          },
        ],
        "allowAllServiceAgentAccess": false
      }

      API JSON

      {
        "name": "my-bucket",
        "ipFilter": {
          "mode": "Enabled",
          "vpcNetworkSources": [
            {
              "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
              "allowedIpCidrRanges": ["192.0.2.0/24"]
            },
          ],
          "allowAllServiceAgentAccess": false
        }
      }
    • O exemplo de configuração a seguir concede acesso apenas a uma solicitação de uma VPC com um intervalo de sub-rede IPv4 interna associado a uma VM sem endereço IP externo e bloqueia o tráfego originado de um endereço IP público:

      gcloud

      {
        "mode": "Enabled",
        "vpcNetworkSources": [
          {
            "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
            "allowedIpCidrRanges": ["IP_ADDRESS"]
          },
        ],
        "allowAllServiceAgentAccess": false
      }

      Em que:

      IP_ADDRESS é um intervalo de sub-rede IPv4 interno.

      API JSON

      {
        "name": "my-bucket",
        "ipFilter": {
          "mode": "Enabled",
          "vpcNetworkSources": [
            {
            "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
            "allowedIpCidrRanges": ["IP_ADDRESS"]
            },
          ],
          "allowAllServiceAgentAccess": false
        }
      }

      Em que:

      IP_ADDRESS é um intervalo de sub-rede IPv4 interno.

    • O exemplo de configuração a seguir concede acesso apenas a uma solicitação de uma VPC com intervalo de sub-rede IPv4 e IPv6 de pilha dupla associado a uma VM com um intervalo de endereços IPv6 externos como 2001:db8::/32 e bloqueia o tráfego originado de um endereço IP público:

      gcloud

      {
        "mode": "Enabled",
        "vpcNetworkSources": [
          {
            "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
            "allowedIpCidrRanges": ["2001:db8::/32"]
          },
        ],
        "allowAllServiceAgentAccess": false
      }

      API JSON

      {
        "name": "my-bucket",
        "ipFilter": {
          "mode": "Enabled",
          "vpcNetworkSources": [
            {
              "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
              "allowedIpCidrRanges": ["2001:db8::/32"]
            },
          ],
          "allowAllServiceAgentAccess": false
        }
      }

A seguir