Crie ou atualize regras de filtragem de IP num contentor existente

Esta página descreve como criar ou atualizar as regras de filtragem de IP do contentor num contentor existente.

Funções necessárias

Para receber as autorizações necessárias para atualizar as regras de filtragem de IP num contentor, peça ao seu administrador para lhe conceder a função de administrador do armazenamento (roles/storage.admin) no contentor. Esta função contém as autorizações necessárias para atualizar as regras de filtragem de IP do contentor.

Para ver as autorizações exatas necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

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

Também pode obter estas autorizações com funções personalizadas. Também pode conseguir estas autorizações com outras funções predefinidas. Para ver que funções estão associadas a que autorizações, consulte o artigo Funções de IAM para o Cloud Storage.

Para obter instruções sobre como conceder funções para projetos, consulte o artigo Faça a gestão do acesso aos projetos.

Crie ou atualize regras de filtragem de IP num contentor existente

gcloud

  1. Verifique se tem a versão 526.0.0 ou posterior da CLI Google Cloud instalada:

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

    gcloud components update --version=526.0.0
    
  3. Crie um ficheiro JSON que defina regras para pedidos recebidos. Para ver exemplos e informações sobre como estruturar as regras de filtragem de IP do contentor, consulte o artigo Configurações de filtragem de IP do contentor.

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

    Onde:

    • MODE é o modo da configuração de filtragem de IP do contentor. Os valores válidos são Enabled e Disabled. Quando definido como Enabled, as regras de filtragem de IP são aplicadas a um contentor. Qualquer pedido recebido para o contentor é avaliado em função destas regras. Quando definido como Disabled, todos os pedidos recebidos têm permissão para aceder ao contentor.

    • RANGE_CIDR é um intervalo de endereços IPv4 ou IPv6 de rede pública que tem autorização para aceder ao contentor. Pode introduzir um ou vários intervalos de endereços como uma lista.

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

    • NETWORK_NAME é o nome da rede VPC que tem autorização para aceder ao contentor. Para configurar várias redes VPC, tem de especificar um nome para cada rede.

    • ALLOW_CROSS_ORG_VPCS é um valor booleano que indica se as redes VPC definidas em vpcNetworkSources podem ter origem numa organização diferente. Este campo é opcional. Se estiver definido como true, o pedido permite redes VPC entre organizações. Se estiver definido como false, o pedido restringe as redes VPC à mesma organização que o contentor. Se não for especificado, o valor predefinido é false. Este campo só se aplica se vpcNetworkSources não estiver vazio.

    • ALLOW_ALL_SERVICE_AGENT_ACCESS é um valor booleano que indica se os agentes de serviço devem ter acesso ao contentor, independentemente da configuração do filtro de IP. Se o valor for true, outros serviços podem usar agentes de serviço para aceder ao contentor sem validação baseada em IP. Trusted Cloud

  4. Para atualizar as regras de filtragem de IP do contentor, execute o comando gcloud alpha storage buckets update no seu ambiente de desenvolvimento:

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

    Onde:

    • BUCKET_NAME é o nome do seu contentor. Por exemplo, my-bucket.
    • IP_FILTER_CONFIG_FILE é o ficheiro JSON criado no passo anterior.

APIs REST

API JSON

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

  2. Crie um ficheiro JSON que contenha as definições do contentor, que tem de incluir os campos de configuração name e ipFilter para o contentor. Para ver exemplos e informações sobre como estruturar as regras de filtragem de IP do contentor, consulte o artigo Configurações de filtragem de IP do contentor.

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

    Onde:

    • MODE é o estado da configuração do 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 grupo e todos os pedidos recebidos para o grupo são avaliados em função destas regras. Quando definido como Disabled, todos os pedidos recebidos podem aceder ao contentor e aos respetivos dados sem qualquer avaliação.

    • RANGE_CIDR é um intervalo de endereços IPv4 ou IPv6 de rede pública que tem autorização para aceder ao contentor. Pode introduzir um ou vários intervalos de endereços como uma lista.

    • PROJECT_ID é o ID do projeto onde a rede VPC existe. Para configurar várias redes VPC, tem de especificar o projeto onde cada rede está localizada.

    • NETWORK_NAME é o nome da rede VPC que tem autorização para aceder ao contentor. Para configurar várias redes VPC, tem de especificar um nome para cada rede.

    • ALLOW_ALL_SERVICE_AGENT_ACCESS é um valor booleano que indica se deve permitir que os agentes de serviço acedam ao contentor, independentemente da configuração do filtro de IP. Se o valor for true, outros Trusted Cloud serviços podem usar agentes de serviço para aceder ao contentor sem validação baseada em IP.

    • ALLOW_CROSS_ORG_VPCS é um valor booleano que indica se as redes VPC definidas na lista vpcNetworkSources podem ter origem numa organização diferente. Este campo é opcional. Se estiver definido como true, o pedido permite redes VPC entre organizações. Se estiver definido como false, o pedido restringe as redes VPC à mesma organização que o contentor. Se não for especificado, o valor predefinido é false. Este campo só se aplica se vpcNetworkSources não estiver vazio.

  3. Use cURL para chamar a API JSON com um pedido PATCH bucket:

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

    Onde:

    • JSON_FILE_NAME é o nome do ficheiro JSON que criou no passo anterior.
    • BUCKET_NAME é o nome do seu contentor.
    • PROJECT_IDENTIFIER é o ID ou o número do projeto ao qual o seu contentor está associado. Por exemplo, my-project.

O que se segue?