Autorizar con redes autorizadas

En esta página, se describe cómo usar la configuración de redes autorizadas para conectar a instancias de Cloud SQL que usan direcciones IP.

Configura redes autorizadas

La dirección IP o el rango de direcciones IP de tu aplicación cliente deben configurarse como authorized networks para las siguientes condiciones:

  • La aplicación cliente se conecta directamente a una instancia de Cloud SQL desde su dirección IP pública.
  • La aplicación cliente se conecta directamente a una instancia de Cloud SQL desde su dirección IP privada, y la dirección IP del cliente no es RFC 1918.

La dirección IP puede ser un solo extremo o un rango en notación CIDR.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Haz clic en la pestaña Red.
  5. Selecciona la casilla de verificación IP pública.
  6. Haz clic en Agregar una red.
  7. En el campo Nombre, ingresa un nombre para la Red nueva.
  8. En el campo Red*, ingresa la dirección IPv4 pública o el rango de direcciones desde el que deseas permitir las conexiones.

    Para el rango de direcciones, debes usar una notación CIDR válida (por ejemplo, 10.10.10.0/24).

  9. Haz clic en Listo.
  10. Haz clic en Guardar.

gcloud

La configuración de redes autorizadas reemplaza la lista de redes autorizadas existente.

gcloud sql instances patch INSTANCE_ID \
--authorized-networks=NETWORK_RANGE_1,NETWORK_RANGE_2...
    

Terraform

Para configurar redes autorizadas, usa un recurso de Terraform.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance-with-authorized-network"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
    ip_configuration {
      authorized_networks {
        name            = "Network Name"
        value           = "192.0.2.0/24"
        expiration_time = "3021-11-15T16:19:00.094Z"
      }
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Aplique los cambios

Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.

Prepara Cloud Shell

  1. Inicia Cloud Shell
  2. Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.

    Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.

Prepara el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión .tf, por ejemplo, main.tf. En este instructivo, el archivo se denomina main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.

    Copia el código de muestra en el main.tf recién creado.

    De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.

  3. Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo debes hacerlo una vez por directorio.
    terraform init

    De manera opcional, incluye la opción -upgrade para usar la última versión del proveedor de Google:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
    terraform plan

    Corrige la configuración según sea necesario.

  2. Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe yes cuando se te solicite:
    terraform apply

    Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.

  3. Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.

Borra los cambios

Para borrar tus cambios, haz lo siguiente:

  1. Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento deletion_protection en false.
    deletion_protection =  "false"
  2. Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa yes cuando se te solicite:
    terraform apply
  1. Quita los recursos que se aplicaron antes con tu configuración de Terraform a través de la ejecución del siguiente comando y, luego, ingresa yes cuando se te solicite:

    terraform destroy

REST v1

La configuración de redes autorizadas reemplaza la lista de redes autorizadas existente.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID del proyecto
  • instance-id: El ID de la instancia
  • network_range_1: Un rango o una dirección IP autorizados
  • network_range_2: Otro rango o dirección IP autorizados

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Cuerpo JSON de la solicitud:

{
  "settings":
  {
    "ipConfiguration":
    {
      "authorizedNetworks":
        [{"value": "network_range_1"}, {"value": "network_range_2"}]
    }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

La configuración de redes autorizadas reemplaza la lista de redes autorizadas existente.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID del proyecto
  • instance-id: El ID de la instancia
  • network_range_1: Un rango o una dirección IP autorizados
  • network_range_2: Otro rango o dirección IP autorizados

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Cuerpo JSON de la solicitud:

{
  "settings":
  {
    "ipConfiguration":
    {
      "authorizedNetworks":
        [{"value": "network_range_1"}, {"value": "network_range_2"}]
    }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Limitaciones

Algunos rangos de direcciones IP no se pueden agregar como redes autorizadas.

Rango de direcciones Notas
10.0.0.0/8 Rango de direcciones RFC 1918. Cloud SQL las incluye de manera implícita y automática en las redes autorizadas
172.16.0.0/12 Rango de direcciones RFC 1918. Cloud SQL las incluye de manera implícita y automática en las redes autorizadas
192.168.0.0/16 Rango de direcciones RFC 1918. Cloud SQL las incluye de manera implícita y automática en las redes autorizadas

¿Qué sigue?