En esta página, se describe cómo crear reglas de filtrado de IP de bucket. Si habilitas el filtrado de IP de bucket, puedes controlar el acceso a ellos examinando las solicitudes entrantes en función de las direcciones IP especificadas en las reglas de filtrado de IP de los bucket. Para obtener más detalles, consulta Filtrado de IP de bucket.
Roles obligatorios
Para obtener los permisos necesarios para crear reglas de filtrado de IP de bucket, 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 reglas de filtrado de IP de bucket.
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 reglas de filtrado de IP de bucket
Línea de comandos
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
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 Configuraciones de filtrado de IP de bucket.
{ "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": [RANGE_CIDR, ... ] }, "vpcNetworkSources": [ {"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": [RANGE_CIDR, ... ] }, ... ] }
Aquí:
mode
es el modo de la configuración de filtrado de IP del bucket. Los valores válidos sonEnabled
yDisabled
. Cuando se establece enEnabled
, las reglas de filtrado de IP se aplican a un bucket. Cualquier solicitud entrante al bucket se evalúa según estas reglas. Cuando se establece enDisabled
, 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 una.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 una.
Para crear un bucket con reglas de filtrado de 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
del bucket. Para obtener ejemplos y más información sobre cómo estructurar las reglas de filtrado de IP de bucket, consulta Configuraciones de filtrado de IP de bucket.{ "name": "BUCKET_NAME" "ipFilter": { "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": [RANGE_CIDR, ... ] }, "vpcNetworkSources": [ {"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": [RANGE_CIDR, ... ] }, ... ] } }
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 establece enDisabled
, todas las solicitudes entrantes pueden acceder al bucket y a sus datos sin ninguna evaluación si tienes los permisos de IAM necesarios. Para habilitar de forma segura las reglas de filtrado de IP del bucket, primero configura tus reglas conmode
establecido enDisabled
para que puedas agregar y ajustar reglas sin bloquear las solicitudes de inmediato. Después de verificar que tus reglas estén definidas correctamente, actualizamode
aEnabled
para activar el filtrado de IP de 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 VPC. Para configurar varias redes de VPC, debes especificar el proyecto en el que se encuentra cada una.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 una.
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&projection=full"
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 al que se asocia tu bucket. Por ejemplo,my-project
.
Configuraciones de filtrado de IP de 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 cualquier 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 proviene de cualquier VPC:
{ "ipFilterConfig": { "mode": "Enabled" "publicNetworkSource": { "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"] } } }
Rangos de IP públicas específicos:
En la siguiente configuración de ejemplo, se otorga acceso al rango de direcciones IPv4 públicas
192.0.2.0/24
, pero se bloquea el tráfico que se origine en cualquier VPC:{ "ipFilterConfig": { "mode": "Enabled" "publicNetworkSource": { "allowedIpCidrRanges": ["192.0.2.0/24"] } } }
En la siguiente configuración de ejemplo, se otorga acceso al rango de direcciones IPv6 públicas
2001:db8::/32
, pero se bloquea el tráfico que proviene de cualquier VPC:{ "ipFilterConfig": { "mode": "Enabled" "publicNetworkSource": { "allowedIpCidrRanges": ["2001:db8::/32"] } } }
Redes de VPC: Con las siguientes configuraciones, puedes otorgar acceso a los recursos de tu red de VPC. Puedes otorgar acceso a todas las direcciones IP de la VPC o a rangos de IP específicos dentro de ella. 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 que provenga de una VPC específica y se bloquea el tráfico que se origina en una dirección IP pública:
{ "ipFilterConfig": { "mode": "Enabled" "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"] }, ] } }
En la siguiente configuración de ejemplo, 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 proviene de una dirección IP pública:{ "ipFilterConfig": { "mode": "Enabled" "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["192.0.2.0/24"] }, ] } }
En la siguiente configuración de ejemplo, 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 proviene de una dirección IP pública:
{ "ipFilterConfig": { "mode": "Enabled" "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["IP_ADDRESS"] }, ] } }
Donde
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 y 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 proviene de una dirección IP pública:{ "ipFilterConfig": { "mode": "Enabled" "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["2001:db8::/32"] }, ] } }
¿Qué sigue?
- Actualiza las reglas de filtrado de IP del bucket.
- Obtén las reglas de filtrado de IP del bucket.
- Lista de 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