En esta página, se describe cómo crear un bucket con reglas de filtrado de IP. Si creas un bucket con filtrado de IP, puedes controlar el acceso a tus buckets examinando las solicitudes entrantes en función de las direcciones IP especificadas en las reglas de filtrado de IP del bucket. Para obtener más detalles, consulta Filtrado de IP de buckets.
Si deseas obtener información para 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 por 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 Usa IAM con buckets.
Crea un bucket con reglas de filtrado de IP
gcloud
Verifica que tengas instalada la versión 526.0.0 o posterior de Google Cloud CLI:
gcloud version | head -n1
Si tienes instalada una versión anterior de gcloud CLI, actualízala:
gcloud components update --version=526.0.0
Crea un archivo JSON que defina las reglas para las solicitudes entrantes. Para obtener ejemplos e información sobre cómo estructurar las reglas de filtrado de IP del bucket, consulta Configuraciones de filtrado de IP del 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 }
Aquí:
MODE
es el modo de configuración del filtrado de IP del bucket. Los valores válidos sonEnabled
yDisabled
. Cuando se establece enEnabled
, se aplican reglas de filtrado de IP a un bucket. Todas las solicitudes entrantes al bucket se evalúan en función de estas reglas. Cuando se establece enDisabled
, se permite que todas las solicitudes entrantes accedan al bucket.RANGE_CIDR
es un rango de direcciones IPv4 o IPv6 de red pública al que se le permite 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 permiten redes de VPC definidas envpcNetworkSources
que provienen de una organización diferente. Este campo es opcional. Si se configura comotrue
, la solicitud permite redes de VPC entre organizaciones. Si se configura comofalse
, la solicitud restringe las redes de VPC a la misma organización que el bucket. Si no se especifica, el valor predeterminado esfalse
.ALLOW_ALL_SERVICE_AGENT_ACCESS
es un valor booleano que indica si se permite que los agentes de servicio accedan al bucket, independientemente de la configuración del filtro de IP. Si el valor estrue
, otros servicios de Google Cloud pueden usar agentes de servicio para acceder al bucket sin validación basada en IP.
Para crear un bucket con reglas de filtrado por IP, ejecuta el comando
gcloud alpha storage buckets create
en tu entorno de desarrollo:gcloud alpha 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 REST
API de JSON
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization
.Crea un archivo JSON que contenga la configuración del bucket, que debe incluir los campos de configuración
name
yipFilter
para el bucket. Para obtener ejemplos e información sobre cómo estructurar las reglas de filtrado de IP del bucket, consulta Configuraciones de filtrado de IP del 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 }, }
Aquí:
MODE
es el estado de la configuración del filtro de IP. Los valores válidos sonEnabled
yDisabled
. Cuando se establece enEnabled
, 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 configura enDisabled
, 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 al que se permite 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 estrue
, otros servicios de Google Cloud 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 permiten redes de VPC definidas envpcNetworkSources
que provienen de una organización diferente. Este campo es opcional. Si se configura comotrue
, la solicitud permite redes de VPC entre organizaciones. Si se configura comofalse
, la solicitud restringe las redes de VPC a la misma organización que el bucket. Si no se especifica, el valor predeterminado esfalse
.
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.googleapis.com/storage/v1/b?project=PROJECT_IDENTIFIER"
Aquí:
JSON_FILE_NAME
es el nombre del archivo JSON que contiene la configuración del bucket.PROJECT_IDENTIFIER
es el ID o el número del proyecto con el que se asocia tu bucket. Por ejemplo,my-project
.
Configuraciones de filtrado de IP del bucket
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 REST
API de JSON
{ "ipFilter": { "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"] }, "allowAllServiceAgentAccess": false } }
Rangos de IP públicas específicos:
La siguiente configuración de ejemplo otorga acceso al rango de direcciones IPv4 públicas
192.0.2.0/24
, pero bloquea el tráfico que se origina en cualquier VPC:gcloud
{ "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["192.0.2.0/24"] }, "allowAllServiceAgentAccess": false }
API de REST
API de JSON
{ "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 REST
API de JSON
{ "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 yNETWORK_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 proveniente 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 REST
API de JSON
{ "ipFilter": { "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"] }, ], "allowAllServiceAgentAccess": false } }
La siguiente configuración de ejemplo solo 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 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 REST
API de JSON
{ "ipFilter": { "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["192.0.2.0/24"] }, ], "allowAllServiceAgentAccess": false } }
El siguiente ejemplo de configuración solo otorga acceso a una solicitud proveniente de una VPC con un rango de subred IPv4 interna asociado a una VM sin dirección IP externa y 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 REST
API de JSON
{ "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.El siguiente ejemplo de configuración solo otorga acceso a una solicitud proveniente de una VPC con un rango de subred de pila doble IPv4 e IPv6 asociado a una VM con un rango de direcciones IPv6 externas como
2001:db8::/32
y 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 REST
API de JSON
{ "ipFilter": { "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["2001:db8::/32"] }, ], "allowAllServiceAgentAccess": false } }
¿Qué sigue?
- Crea o actualiza reglas de filtrado de IP en un bucket existente.
- Obtén las reglas de filtrado de IP del bucket.
- Enumera las reglas de filtrado de IP del bucket.
- Inhabilita el filtrado de IP del bucket.
Pruébalo tú mismo
Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud Storage en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
Probar Cloud Storage gratis