Crea un bucket con reglas de filtrado de IP

En esta página, se describe cómo crear un bucket con reglas de filtrado de IP. Cuando creas un bucket con filtrado de IP, puedes controlar el acceso a tus buckets examinando las solicitudes entrantes con las direcciones IP especificadas en las reglas de filtrado de IP del bucket. Para obtener más detalles, consulta Filtrado de IP de buckets.

Para obtener información sobre cómo crear o actualizar las reglas de filtrado de IP en un bucket existente, consulta Actualiza las reglas de filtrado de IP del bucket.

Roles obligatorios

Para obtener los permisos necesarios para crear un bucket con reglas de filtrado de IP, pídele a tu administrador que te otorgue el rol de Administrador de almacenamiento (roles/storage.admin) en el bucket. Este rol contiene los permisos necesarios para crear un bucket con reglas de filtrado de IP.

Para ver los permisos exactos que son necesarios, expande la sección Permisos necesarios:

Permisos necesarios

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

También puedes obtener estos permisos con roles personalizados. También puedes obtener estos permisos con otros roles predefinidos. Para ver qué roles están asociados con qué permisos, consulta Roles de IAM para Cloud Storage.

Para obtener instrucciones para otorgar roles a los buckets, consulta Configura y administra políticas de IAM en buckets.

Crea un bucket con reglas de filtrado de IP

Console

  1. En la consola de Cloud de Confiance , ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  2. Haz clic en Crear.
  3. En la página Crear un bucket, ingresa la información de tu bucket. Después de cada uno de los siguientes pasos, haz clic en Continuar para avanzar al siguiente paso:

    1. En la sección Primeros pasos, haz lo siguiente:

      • Ingresa un nombre único a nivel global que cumpla con los requisitos de nombre de los buckets.

      • Para agregar una etiqueta de bucket, haz clic en la flecha desplegable para expandir la sección Etiquetas, haz clic en Agrega etiqueta y especifica una key y un value para tu etiqueta.

    2. En la sección Elige dónde almacenar tus datos, haz lo siguiente:

      1. Selecciona un tipo de ubicación

      2. Usa el menú desplegable del tipo de ubicación para seleccionar una Ubicación en la que se almacenarán de forma permanente los datos de objetos de tu bucket.

        • Si seleccionas el tipo de ubicación birregional, también puedes habilitar la replicación turbo con la casilla de verificación correspondiente.

    3. En la sección Elige cómo almacenar tus datos, haz lo siguiente:

      1. Selecciona una clase de almacenamiento predeterminada para el bucket o Autoclass para la administración automática de clases de almacenamiento de los datos de tu bucket.

      2. En la sección Optimiza el almacenamiento para cargas de trabajo con uso intensivo de datos, haz lo siguiente:

        • Para habilitar el espacio de nombres jerárquico, selecciona Habilitar el espacio de nombres jerárquico en este bucket.

        • Para habilitar Rapid Cache, selecciona Habilitar Rapid Cache y sigue estos pasos:
          1. Para crear cachés, haz clic en Configurar.

          2. En el cuadro de diálogo Configurar los parámetros de caché que aparece, haz clic en la flecha desplegable junto a las regiones de la lista y selecciona las zonas en las que deseas crear cachés.

          3. Haz clic en Listo.

    4. En la sección Elige cómo controlar el acceso a los objetos, haz lo siguiente:

      1. Selecciona si tu bucket aplica la prevención del acceso público.

      2. Selecciona Uniforme para habilitar el acceso uniforme a nivel de bucket en el bucket.

      3. Para configurar el filtrado de IP para el bucket, haz lo siguiente:

        1. En la sección Filtrado de IP, haz clic en  Configurar.

        2. Para permitir el acceso desde direcciones IP públicas, haz lo siguiente:

          1. Haz clic en Internet pública.
          2. En el campo Rangos de IP permitidos, especifica uno o más rangos de direcciones IPv4 o rangos CIDR IPv6 que se permitirán. Por ejemplo, 192.0.2.0/24 o 2001:db8::/32.

            Para evitar que se bloquee el acceso a tu bucket, incluye tu propia dirección IP.

        3. Para permitir el acceso desde redes de VPC, haz lo siguiente:

          1. Haz clic en Redes de VPC.
          2. Realiza las siguientes acciones para cada red:

            1. Haz clic en Agregar red de VPC.
            2. En la sección Nueva red de VPC, especifica la siguiente información:

              • En el campo ID del proyecto, ingresa el ID de tu proyecto.
              • En el campo Nombre de la red, ingresa el nombre de tu red.
              • En el campo Rangos de IP permitidos, ingresa uno o más rangos CIDR IPv4 o IPv6, como 192.0.2.0/24 o 2001:db8::/32.

                Para evitar que se bloquee el acceso a tu bucket, incluye tu propia dirección IP.

            3. Haz clic en Listo.
        4. Para permitir que los agentes de servicio y las redes de VPC de confianza Cloud de Confiance de otras organizaciones omitan tu configuración de filtrado de IP, haz lo siguiente:

          1. Haz clic en Configuración adicional.
          2. En la sección Acceso del agente de servicio de Google Cloud, selecciona una de las siguientes opciones:

            • Permitir el acceso del agente de servicio: Permite que los servicios de Cloud de Confiance , como BigLake, Storage Insights, Vertex AI y BigQuery, omitan la validación de filtrado de IP cuando necesiten acceder a este bucket.
            • Denegar acceso al agente de servicio: Aplica las reglas de filtro de IP para los agentes de servicio de Cloud de Confiance .
          3. En la sección Acceso a VPC entre organizaciones, realiza una de las siguientes acciones:
            • Para permitir el acceso desde redes de VPC especificadas ubicadas en organizaciones de Cloud de Confiance diferentes, haz clic en el botón de activación para cambiarlo a la posición Permitir.
            • Para bloquear el acceso desde redes de VPC fuera de tu organización de Cloud de Confiance , haz clic en el botón de activación para cambiar a la posición Rechazar (estado predeterminado).
        5. Haz clic en Revisar y, luego, en Guardar.
    5. En la sección Elige cómo proteger los datos de objetos, haz lo siguiente:

      • Selecciona cualquiera de las opciones de Protección de datos que desees configurar para tu bucket.

      • Para cambiar la cantidad de tiempo que la eliminación no definitiva conserva los objetos después de borrarlos, selecciona la casilla de verificación Política de eliminación no definitiva y, luego, selecciona la opción Establecer duración de retención personalizada. Luego, especifica por cuánto tiempo deseas conservar los objetos borrados.

        Para inhabilitar la eliminación no definitiva, por ejemplo, si el bucket contendrá principalmente datos temporales de corta duración, desmarca la casilla de verificación Política de eliminación no definitiva.

      • Para elegir cómo encriptar los datos de tus objetos, haz clic en la flecha desplegable etiquetada como Encriptación de datos y haz lo siguiente:

  4. Haz clic en Crear.

gcloud

  1. Verifica que tengas instalada la versión 526.0.0 o posterior de Google Cloud CLI:

    gcloud version | head -n1
    
  2. Si tienes instalada una versión anterior de gcloud CLI, actualízala:

    gcloud components update --version=526.0.0
    
  3. Crea un archivo JSON que defina las reglas para las solicitudes entrantes. Para obtener ejemplos y más información sobre cómo estructurar las reglas de filtrado de IP de bucket, consulta Parámetros de configuración del filtrado de IP de buckets.

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

    Aquí:

    • MODE es el modo de la configuración del filtrado de IP del bucket. Los valores válidos son Enabled y Disabled. Cuando se establece en Enabled, las reglas de filtrado de IP se aplican a un bucket. Cualquier solicitud entrante al bucket se evalúa en función de estas reglas. Cuando se establece en Disabled, todas las solicitudes entrantes pueden acceder al bucket.

    • RANGE_CIDR es un rango de direcciones IPv4 o IPv6 de red pública que tiene permitido acceder al bucket. Puedes ingresar uno o varios rangos de direcciones como una lista.

    • PROJECT_ID es el ID del proyecto en el que existe la red de nube privada virtual (VPC). Para configurar varias redes de VPC, debes especificar el proyecto en el que se encuentra cada red.

    • NETWORK_NAME es el nombre de la red de VPC que tiene permiso para acceder al bucket. Para configurar varias redes de VPC, debes especificar un nombre para cada red.

    • ALLOW_CROSS_ORG_VPCS es un valor booleano que indica si se permite que las redes de VPC definidas en vpcNetworkSources se originen en una organización diferente. Este campo es opcional. Si se establece en true, la solicitud permite redes de VPC entre organizaciones. Si se establece en false, la solicitud restringe las redes de VPC a la misma organización que el bucket. Si no se especifica, el valor predeterminado es false. Este campo solo se aplica si vpcNetworkSources no está vacío.

    • ALLOW_ALL_SERVICE_AGENT_ACCESS es un valor booleano que indica si se debe permitir que los agentes de servicio accedan al bucket, independientemente de la configuración del filtro de IP. Si el valor es true, otros servicios de Cloud de Confiance pueden usar agentes de servicio para acceder al bucket sin validación basada en IP.

  4. Para crear un bucket con reglas de filtrado de IP, ejecuta el comando gcloud storage buckets create en tu entorno de desarrollo:

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

    Aquí:

    • BUCKET_NAME es el nombre que quieres asignar a tu bucket, sujeto a los requisitos de nomenclatura. Por ejemplo: my-bucket.
    • IP_FILTER_CONFIG_FILE es el archivo JSON que define las reglas para las solicitudes entrantes.

API de JSON

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Crea un archivo JSON que contenga la configuración del bucket, que debe incluir los campos de configuración name y ipFilter para el bucket. Para obtener ejemplos y más información sobre cómo estructurar las reglas de filtrado de IP de bucket, consulta Parámetros de configuración del filtrado de IP de buckets.

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

    Aquí:

    • MODE es el estado de la configuración del filtro de IP. Los valores válidos son Enabled y Disabled. Cuando se establece en Enabled, las reglas de filtrado de IP se aplican a un bucket y todas las solicitudes entrantes al bucket se evalúan en función de estas reglas. Cuando se establece en Disabled, todas las solicitudes entrantes pueden acceder al bucket y a sus datos sin ninguna evaluación si tienes los permisos de IAM necesarios.

    • RANGE_CIDR es un rango de direcciones IPv4 o IPv6 de red pública que tiene permitido acceder al bucket. Puedes ingresar uno o varios rangos de direcciones como una lista.

    • PROJECT_ID es el ID del proyecto en el que existe la red de VPC. Para configurar varias redes de VPC, debes especificar el proyecto en el que se encuentra cada red.

    • NETWORK_NAME es el nombre de la red de VPC que tiene permiso para acceder al bucket. Para configurar varias redes de VPC, debes especificar un nombre para cada red.

    • ALLOW_ALL_SERVICE_AGENT_ACCESS es un valor booleano que indica si se debe permitir que los agentes de servicio accedan al bucket, independientemente de la configuración del filtro de IP. Si el valor es true, otros servicios de Cloud de Confiance pueden usar agentes de servicio para acceder al bucket sin validación basada en IP.

    • ALLOW_CROSS_ORG_VPCS es un valor booleano que indica si se permite que las redes de VPC definidas en vpcNetworkSources se originen en una organización diferente. Este campo es opcional. Si se establece en true, la solicitud permite redes de VPC entre organizaciones. Si se establece en false, la solicitud restringe las redes de VPC a la misma organización que el bucket. Si no se especifica, el valor predeterminado es false. Este campo solo se aplica si vpcNetworkSources no está vacío.

  3. Usa cURL para llamar a la API de JSON con una solicitud de bucket POST:

    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"

    Aquí:

    • JSON_FILE_NAME es el nombre del archivo JSON que contiene la configuración del bucket.
    • PROJECT_ID es el ID del proyecto al que se asocia tu bucket. Por ejemplo, my-project.

Parámetros de configuración del filtrado de IP de buckets

En esta sección, se proporcionan ejemplos de configuraciones de archivos JSON de filtrado de IP de bucket para controlar el acceso a tus buckets de Cloud Storage. Puedes otorgar acceso a las solicitudes entrantes con cualquiera de los siguientes ejemplos:

  • Cualquier dirección IP pública (IPv4 o IPv6):

    La siguiente configuración otorga acceso a cualquier dirección IPv4 o IPv6 pública, pero bloquea el tráfico que se origina en cualquier VPC:

    gcloud

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

    API de JSON

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

    • En el siguiente ejemplo de configuración, se otorga acceso al rango de direcciones IPv4 públicas 192.0.2.0/24, pero se bloquea el tráfico que se origina en cualquier VPC:

      gcloud

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

      API de JSON

      {
        "name": "my-bucket",
        "ipFilter": {
          "mode": "Enabled",
          "publicNetworkSource": {
            "allowedIpCidrRanges": ["192.0.2.0/24"]
          },
          "allowAllServiceAgentAccess": false
        }
      }
    • En el siguiente ejemplo de configuración, se otorga acceso al rango de direcciones IPv6 públicas 2001:db8::/32, pero se bloquea el tráfico que se origina en cualquier VPC:

      gcloud

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

      API de JSON

      {
        "name": "my-bucket",
        "ipFilter": {
          "mode": "Enabled",
          "publicNetworkSource": {
            "allowedIpCidrRanges": ["2001:db8::/32"]
          },
          "allowAllServiceAgentAccess": false
        }
      }
  • Redes de VPC: Con los siguientes parámetros de configuración, puedes otorgar acceso a los recursos dentro de tu red de VPC. Puedes otorgar acceso a todas las direcciones IP dentro de la VPC o a rangos de IP específicos dentro de la VPC. En cada uno de estos ejemplos, PROJECT_ID es el ID del proyecto en el que existe la red de VPC y NETWORK_NAME es el nombre de la red de VPC que tiene permiso para acceder al bucket.

    • En el siguiente ejemplo de configuración, se otorga acceso a una solicitud desde cualquier dirección IPv4 o IPv6 que provenga de una VPC específica y se bloquea el tráfico que se origina en una dirección IP pública:

      gcloud

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

      API de 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
        }
      }
    • En el siguiente ejemplo de configuración, solo se otorga acceso a una solicitud de una VPC asociada a una VM con una dirección IPv4 externa como 192.0.2.0/24 y se bloquea el tráfico que se origina en una dirección IP pública:

      gcloud

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

      API de JSON

      {
        "name": "my-bucket",
        "ipFilter": {
          "mode": "Enabled",
          "vpcNetworkSources": [
            {
              "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
              "allowedIpCidrRanges": ["192.0.2.0/24"]
            },
          ],
          "allowAllServiceAgentAccess": false
        }
      }
    • En el siguiente ejemplo de configuración, solo se otorga acceso a una solicitud que proviene de una VPC con un rango de subred IPv4 interno asociado a una VM sin dirección IP externa y se bloquea el tráfico que se origina en una dirección IP pública:

      gcloud

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

      Aquí:

      IP_ADDRESS es un rango de subred IPv4 interno.

      API de JSON

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

      Aquí:

      IP_ADDRESS es un rango de subred IPv4 interno.

    • En el siguiente ejemplo de configuración, solo se otorga acceso a una solicitud que proviene de una VPC con un rango de subred IPv4 e IPv6 de pila doble asociado a una VM con un rango de direcciones IPv6 externas como 2001:db8::/32 y se bloquea el tráfico que se origina en una dirección IP pública:

      gcloud

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

      API de JSON

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

¿Qué sigue?