En esta página se describe cómo crear un contenedor con reglas de filtrado por IP. Si creas un contenedor con filtrado por IP, puedes controlar el acceso a tus contenedores examinando las solicitudes entrantes en función de las direcciones IP especificadas en las reglas de filtrado por IP del contenedor. Para obtener más información, consulta Filtrado de IP de un bucket.
Para obtener información sobre cómo crear o actualizar las reglas de filtrado por IP de un cubo ya creado, consulta Actualizar las reglas de filtrado por IP de un cubo.
Roles obligatorios
Para obtener los permisos necesarios para crear un segmento con reglas de filtrado por IP, pide a tu administrador que te conceda el rol Administrador de Storage (roles/storage.admin
) en el segmento. Este rol contiene los permisos necesarios para crear un segmento con reglas de filtrado por IP.
Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
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 a qué permisos, consulta Roles de gestión de identidades y accesos para Cloud Storage.
Para obtener instrucciones sobre cómo conceder roles en los contenedores, consulta el artículo Usar IAM con contenedores.
Crear un contenedor con reglas de filtrado por IP
gcloud
Verifica que tienes instalada la versión 526.0.0 o una posterior de Google Cloud CLI:
gcloud version | head -n1
Si tienes instalada una versión anterior de la CLI de gcloud, actualízala:
gcloud components update --version=526.0.0
Crea un archivo JSON que defina las reglas de las solicitudes entrantes. Para ver ejemplos e información sobre cómo estructurar las reglas de filtrado por IP de los contenedores, consulta Configuraciones de filtrado por IP de los contenedores.
{ "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 }
Donde:
MODE
es el modo de la configuración del filtro de IP del contenedor. Los valores válidos sonEnabled
yDisabled
. Si se define comoEnabled
, las reglas de filtrado por IP se aplican a un contenedor. Cualquier solicitud entrante al contenedor se evalúa en función de estas reglas. Si se le asigna el valorDisabled
, todas las solicitudes entrantes podrán acceder al contenedor.RANGE_CIDR
es un intervalo de direcciones IPv4 o IPv6 de una red pública que tiene permiso para acceder al segmento. Puedes introducir uno o varios intervalos de direcciones en forma de lista.PROJECT_ID
es el ID del proyecto en el que se encuentra 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 las redes de VPC definidas envpcNetworkSources
que proceden de otra organización. Este campo es opcional. Si se define comotrue
, la solicitud permite redes de VPC entre organizaciones. Si se define comofalse
, la solicitud restringe las redes de VPC a la misma organización que el cubo. Si no se especifica ningún valor, se utilizafalse
de forma predeterminada. Este campo solo se aplica sivpcNetworkSources
no está vacío.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 Google Cloud servicios pueden usar agentes de servicio para acceder al segmento sin validación basada en IP.
Para crear un contenedor 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
Donde:
BUCKET_NAME
es el nombre que quieres dar al segmento, sujeto a los requisitos de nomenclatura. Por ejemplo,my-bucket
.IP_FILTER_CONFIG_FILE
es el archivo JSON que define las reglas de las solicitudes entrantes.
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Crea un archivo JSON que contenga los ajustes del segmento, que debe incluir los campos de configuración
name
yipFilter
del segmento. Para ver ejemplos e información sobre cómo estructurar las reglas de filtrado por IP de los contenedores, consulta Configuraciones de filtrado por IP de los contenedores.{ "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 }, }
Donde:
MODE
es el estado de la configuración del filtro de IP. Los valores válidos sonEnabled
yDisabled
. Si se define comoEnabled
, las reglas de filtrado de IP se aplican a un contenedor y todas las solicitudes entrantes al contenedor se evalúan en función de estas reglas. Si se define comoDisabled
, todas las solicitudes entrantes pueden acceder al segmento y a sus datos sin ninguna evaluación si tienes los permisos de IAM necesarios.RANGE_CIDR
es un intervalo de direcciones IPv4 o IPv6 de una red pública que tiene permiso para acceder al segmento. Puedes introducir uno o varios intervalos de direcciones como una lista.PROJECT_ID
es el ID del proyecto en el que se encuentra 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 permite que los agentes de servicio accedan al segmento, independientemente de la configuración del filtro de IP. Si el valor estrue
, otros Google Cloud servicios pueden usar agentes de servicio para acceder al segmento 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 procedan de otra organización. Este campo es opcional. Si se define comotrue
, la solicitud permite redes de VPC entre organizaciones. Si se define comofalse
, la solicitud restringe las redes de VPC a la misma organización que el cubo. Si no se especifica ningún valor, se utilizafalse
de forma predeterminada. Este campo solo se aplica sivpcNetworkSources
no está vacío.
Usa
cURL
para llamar a la API JSON con una solicitud 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.googleapis.com/storage/v1/b?project=PROJECT_IDENTIFIER"
Donde:
JSON_FILE_NAME
es el nombre del archivo JSON que contiene la configuración del segmento.PROJECT_IDENTIFIER
es el ID o el número del proyecto al que está asociado tu contenedor. Por ejemplo,my-project
.
Configuraciones de filtrado de IP de un bucket
En esta sección se proporcionan ejemplos de configuraciones de archivos JSON de filtrado de IP de segmentos para controlar el acceso a tus segmentos de Cloud Storage. Puede conceder acceso a las solicitudes entrantes con cualquiera de los siguientes ejemplos:
Cualquier dirección IP pública (IPv4 o IPv6):
La siguiente configuración concede acceso a cualquier dirección IPv4 o IPv6 pública, pero bloquea el tráfico procedente de cualquier VPC:
gcloud
{ "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"] }, "allowAllServiceAgentAccess": false }
APIs REST
API JSON
{ "ipFilter": { "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"] }, "allowAllServiceAgentAccess": false } }
Intervalos de IPs públicas específicos:
La siguiente configuración de ejemplo concede acceso al intervalo de direcciones IPv4 públicas
192.0.2.0/24
, pero bloquea el tráfico procedente de cualquier VPC:gcloud
{ "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["192.0.2.0/24"] }, "allowAllServiceAgentAccess": false }
APIs REST
API JSON
{ "ipFilter": { "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["192.0.2.0/24"] }, "allowAllServiceAgentAccess": false } }
La siguiente configuración de ejemplo concede acceso al intervalo de direcciones IPv6 públicas
2001:db8::/32
, pero bloquea el tráfico procedente de cualquier VPC:gcloud
{ "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["2001:db8::/32"] }, "allowAllServiceAgentAccess": false }
APIs REST
API JSON
{ "ipFilter": { "mode": "Enabled", "publicNetworkSource": { "allowedIpCidrRanges": ["2001:db8::/32"] }, "allowAllServiceAgentAccess": false } }
Redes de VPC: con las siguientes configuraciones, puedes conceder acceso a los recursos de tu red de VPC. Puedes conceder acceso a todas las direcciones IP de la VPC o a intervalos de IP específicos de la VPC. En cada uno de estos ejemplos,
PROJECT_ID
es el ID del proyecto en el que se encuentra la red de VPC yNETWORK_NAME
es el nombre de la red de VPC que tiene permiso para acceder al cubo.La siguiente configuración de ejemplo concede acceso a una solicitud de cualquier dirección IPv4 o IPv6 procedente de una VPC específica 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": ["0.0.0.0/0", "::/0"] }, ], "allowAllServiceAgentAccess": false }
APIs REST
API 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 concede 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 procedente de 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 }
APIs REST
API JSON
{ "ipFilter": { "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["192.0.2.0/24"] }, ], "allowAllServiceAgentAccess": false } }
La siguiente configuración de ejemplo solo concede acceso a una solicitud procedente de una VPC con un intervalo de subred IPv4 interno asociado a una VM sin dirección IP externa y bloquea el tráfico procedente de una dirección IP pública:
gcloud
{ "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["IP_ADDRESS"] }, ], "allowAllServiceAgentAccess": false }
Donde:
IP_ADDRESS
es un intervalo de subred IPv4 interno.APIs REST
API JSON
{ "ipFilter": { "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["IP_ADDRESS"] }, ], "allowAllServiceAgentAccess": false } }
Donde:
IP_ADDRESS
es un intervalo de subred IPv4 interno.La siguiente configuración de ejemplo solo concede acceso a una solicitud procedente de una VPC con un intervalo de subred IPv4 e IPv6 de pila dual asociado a una VM con un intervalo de direcciones IPv6 externas como
2001:db8::/32
y bloquea el tráfico procedente de una dirección IP pública:gcloud
{ "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["2001:db8::/32"] }, ], "allowAllServiceAgentAccess": false }
APIs REST
API JSON
{ "ipFilter": { "mode": "Enabled", "vpcNetworkSources": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME", "allowedIpCidrRanges": ["2001:db8::/32"] }, ], "allowAllServiceAgentAccess": false } }
Siguientes pasos
- Crea o actualiza reglas de filtrado por IP en un segmento.
- Obtener reglas de filtrado por IP de un bucket
- Reglas de filtrado por IP de los contenedores de listas.
- Inhabilita el filtrado por IP de los contenedores.
Pruébalo
Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud Storage en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.
Probar Cloud Storage gratis