En esta página, se describe cómo usar la opción de autoridad certificadora (AC) administrada por el cliente como el modo de AC del servidor para tu instancia de Cloud SQL.
Descripción general
Con la opción de CA administrada por el cliente, configuras tu propio grupo de AC y AC en Certificate Authority Service (servicio de AC). Cuando seleccionas la opción de AC administrada por el cliente, configuras la jerarquía de AC y administras la rotación de los certificados de la AC para tus instancias de Cloud SQL.
Antes de configurar una instancia de Cloud SQL para usar la opción de CA administrada por el cliente, debes crear un grupo de AC en la misma región que tu instancia y, al menos, una AC en ese grupo con el Servicio de AC. La AC puede ser una AC raíz o una AC subordinada. También tienes la opción de crear una AC subordinada en CA Service y, luego, encadenarla a una AC raíz externa. Cuando configuras tu instancia, especificas el grupo de AC. Tu solicitud se delega a una cuenta de servicio específica del proyecto, que tiene permiso para usar el grupo de AC. La cuenta de servicio solicita una CA del grupo, y Cloud SQL usa esa CA para firmar el certificado del servidor de la instancia.
En el modo de CA del servidor para tu instancia en Cloud SQL, puedes elegir entre las siguientes tres opciones:
- AC interna por instancia
- AC compartida administrada por Google
- AC administrada por el cliente
Puedes elegir la opción de AC administrada por el cliente si necesitas administrar tu propia AC por motivos de cumplimiento. Para obtener más información sobre el uso de las otras opciones, consulta Autoriza con certificados SSL/TLS.
Flujo de trabajo
Para usar la opción de AC administrada por el cliente, el flujo de trabajo es el siguiente:
- Crea una cuenta de servicio para tu proyecto de Cloud SQL.
- Crea un grupo de AC en CA Service.
- Crea una CA en el Servicio de CA.
- Configura la instancia de Cloud SQL para que use la CA. Cuando configuras tu instancia, delegas el permiso a la cuenta de servicio para que firme el certificado del servidor con el grupo de AC que creaste.
Antes de comenzar
Antes de usar la opción de CA administrada por el cliente, asegúrate de cumplir con los siguientes requisitos.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that you have the permissions required to complete this guide.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Certificate Authority Service API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the gcloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Roles obligatorios
Para obtener los permisos que
necesitas para crear una cuenta de servicio específica de Cloud SQL,
pídele a tu administrador que te otorgue el
rol de IAM de Creador de cuentas de servicio (roles/iam.serviceAccountCreator) en cada proyecto individual.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Para obtener los permisos que
necesitas para crear un grupo de AC y una AC,
pídele a tu administrador que te otorgue el
rol de IAM de Administrador de operaciones del Servicio de AC(roles/privateca.caManager)
en el Servicio de AC.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Crea una cuenta de servicio específica del proyecto
En el proyecto en el que planeas crear tus instancias de Cloud SQL, crea una cuenta de servicio dedicada que controle la solicitud para crear y firmar los certificados de servidor de tus instancias de Cloud SQL.
gcloud
Ejecuta el siguiente comando para crear una cuenta de servicio para tu proyecto de Cloud SQL:
gcloud beta services identity create \ --service=sqladmin.googleapis.com \ --project=PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto en el que
planeas crear tus instancias de Cloud SQL.
El comando crea una cuenta de servicio llamada
service-PROJECT_ID@gcp-sa-cloud-sql.
en el proyecto. Toma nota del nombre de la cuenta de servicio del solicitante del certificado del Servicio de CA.
Crea un grupo de AC
Crea un grupo de AC en CA Service.
Puedes crear un grupo de AC en el mismo proyecto en el que planeas crear tus instancias de Cloud SQL o puedes crear el grupo de AC en un proyecto diferente. Sin embargo, si creas el grupo de AC en un proyecto diferente, los Controles del servicio de VPC podrían impedirte crear instancias de Cloud SQL según la política de la organización. Para solucionar el problema, asegúrate de que el proyecto que aloja el grupo de AC y la AC, y el proyecto que aloja Cloud SQL pertenezcan al mismo perímetro de servicio. Para obtener más información, consulta Perímetros de servicio y Administra perímetros de servicio.
Para crear un grupo de AC, sigue las instrucciones en Crea un grupo de AC. Puedes aceptar los valores predeterminados para el grupo de AC, con los siguientes parámetros de configuración obligatorios:
- Crea el grupo de AC en la misma región en la que planeas crear tu instancia de Cloud SQL. Para obtener una lista de las regiones compatibles con Cloud SQL, consulta Regiones.
- Permitir solicitudes de certificados basadas en la configuración
- Permitir nombres de DNS en nombres alternativos del sujeto (SAN). Cuando configures las restricciones de identidad del grupo de AC, no establezcas ninguna restricción en el formato de los nombres de DNS que puedan entrar en conflicto con lo que Cloud SQL podría agregar al SAN.
- Si configuras las restricciones de identidad para el grupo de AC, asegúrate de permitir las direcciones IP como un formato en el SAN.
Proporciona a la cuenta de servicio acceso al grupo de AC
Para asegurarte de que la cuenta de servicio tenga los permisos necesarios para solicitar y firmar certificados para tus instancias de Cloud SQL, otorga el siguiente rol a la cuenta de servicio del grupo de AC que creaste:
roles/privateca.certificateRequester
gcloud
Ejecuta el comando
gcloud privateca pools para otorgar a la cuenta de servicio acceso al grupo de AC:
gcloud privateca pools add-iam-policy-binding CA_POOL_ID \ --project=PROJECT_ID \ --location=REGION \ --member serviceAccount:SERVICE_ACCOUNT_NAME \ --role=roles/privateca.certificateRequester
Realiza los siguientes reemplazos:
CA_POOL_IDpor el ID del grupo de AC que creaste.PROJECT_IDpor el ID del proyecto en el que planeas crear tus instancias de Cloud SQL.REGIONpor la región en la que creaste el grupo de AC.SERVICE_ACCOUNT_NAMEpor el nombre de la cuenta de servicio del solicitante de certificados del Servicio de CA que creaste para el proyecto anteriormente.
Crea una CA en el grupo de AC
Crea al menos una CA en el grupo de AC que creaste.
Puedes crear una AC raíz o una AC subordinada.
Para crear una AC raíz, sigue las instrucciones en Crea una AC raíz. Puedes aceptar los valores predeterminados para la AC, pero asegúrate de crearla en el estado Habilitada.
Cuando configuras el tamaño y el algoritmo de la clave de la AC, puedes seleccionar cualquier tamaño y algoritmo de clave. Cloud SQL genera sus certificados de servidor con claves de curva elíptica EC P-256 (SHA 256), pero las claves criptográficas de tu AC no tienen que coincidir.Si creas una AC subordinada, primero debes crear y configurar tu AC raíz.
Para crear una AC subordinada en CA Service, sigue las instrucciones en Crea una AC subordinada.
Para crear una AC subordinada a partir de una AC raíz externa, sigue las instrucciones que se indican en Crea una AC subordinada a partir de una AC raíz externa.
Configura una instancia de Cloud SQL para usar una CA administrada por el cliente
Puedes configurar una instancia de Cloud SQL para que use la opción de CA administrada por el cliente cuando crees la instancia. También puedes actualizar el modo de AC del servidor de una instancia existente para que use la opción de AC por instancia o de AC compartida y, en su lugar, use una AC administrada por el cliente.
Crea una instancia
Para crear una instancia de Cloud SQL que use la opción de CA administrada por el cliente, haz lo siguiente.
Console
-
En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.
- En ID de instancia, ingresa un nombre para la instancia.
- Selecciona un motor de base de datos, una versión de base de datos, una edición de Cloud SQL, una región y un tipo de disponibilidad, o acepta los valores predeterminados como se describe en Crea una instancia.
- En la sección Personaliza tu instancia, expande Mostrar opciones de configuración.
- Haz clic en Seguridad.
- En la sección Modo de autoridad certificadora del servidor, selecciona Autoridad certificadora de CAS administrada por el cliente.
- En el menú Grupo de AC, selecciona un grupo de AC para tu instancia. El grupo de AC debe estar en la misma región que selecciones para tu instancia. Si aún no tienes un grupo de AC, haz clic en Nuevo grupo para crear uno nuevo.
- Opcional: Para habilitar la rotación automática de tus certificados de servidor, selecciona la casilla de verificación Rotar automáticamente los certificados de servidor.
- Haz clic en Crear instancia.
gcloud
gcloud sql instances create "INSTANCE_NAME" \ --database-version=DATABASE_VERSION \ --project=PROJECT_ID \ --region=REGION \ --server-ca-mode=CUSTOMER_MANAGED_CAS_CA \ --server-ca-pool=projects/PROJECT_ID_CAS/locations/REGION/caPools/CA_POOL_ID
Realiza los siguientes reemplazos:
INSTANCE_NAMEpor el nombre de la instancia de Cloud SQL que deseas crear.DATABASE_VERSIONpor elenumde la versión de la instancia de Cloud SQL que deseas crear.PROJECT_IDpor el ID del proyecto en el que planeas crear tus instancias de Cloud SQL.PROJECT_ID_CASpor el ID del proyecto en el que creaste tu CA_POOL_ID. Este proyecto puede ser el mismo o diferente de donde deseas crear tu instancia de Cloud SQL.REGIONpor la región en la que creaste el grupo de AC. Debes crear tu instancia en la misma región que el grupo de AC.CA_POOL_IDpor el ID del grupo de AC que creaste.
REST
Para crear una instancia de Cloud SQL que use la opción de CA administrada por el cliente,
usa el método instances.insert
y especifica las siguientes propiedades:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Es el ID del proyecto en el que planeas crear tus instancias de Cloud SQL.PROJECT_ID_CASes el ID del proyecto en el que creaste tu CA_POOL_ID. Este proyecto puede ser el mismo o diferente de donde deseas crear tu instancia de Cloud SQL.INSTANCE_IDes el nombre de la instancia de Cloud SQL que deseas crear.REGIONes la región en la que creaste el grupo de AC. Debes crear tu instancia en la misma región que el grupo de AC.CA_POOL_IDpor el ID del grupo de AC que creaste.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{
"name":"INSTANCE_ID",
"region":"REGION",
"databaseVersion": "DATABASE_VERSION",
"settings":{
"ipConfiguration":
{
"serverCaPool": "projects/PROJECT_ID_CAS/locations/REGION/caPools/CA_POOL_ID",
"serverCaMode": "CUSTOMER_MANAGED_CAS_CA"
}
}
}
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2025-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID_CSQL/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Actualiza una instancia para usar una AC administrada por el cliente
Antes de actualizar una instancia para usar una CA administrada por el cliente, haz lo siguiente:
- Revisa la lista de servicios de Google Cloud que no admiten conexiones a instancias de Cloud SQL configuradas para usar una AC administrada por el cliente. Si tu implementación es necesaria para usar el servicio, es posible que debas retrasar la actualización.
- Si usas el proxy de autenticación de Cloud SQL o cualquiera de los conectores de lenguaje de Cloud SQL para conectarte a la instancia, asegúrate de que ejecuten las versiones mínimas requeridas. Para el proxy de autenticación de Cloud SQL, asegúrate de usar la versión 2.14.3 o una posterior. Para conocer las versiones mínimas requeridas de los conectores de lenguaje de Cloud SQL, consulta Requisitos de los conectores de lenguaje de Cloud SQL.
- Asegúrate de haber creado un grupo de AC y de haber proporcionado a la cuenta de servicio acceso al grupo de AC.
- Asegúrate de que haya, al menos, una AC en el grupo de AC.
- Para evitar interrupciones después de la actualización, descarga los certificados de tu CA administrada por el cliente y configura los clientes de la base de datos para que confíen en tu CA.
Usa el siguiente procedimiento para actualizar una instancia de Cloud SQL y usar la opción de CA administrada por el cliente.
Console
-
En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Editar.
- En la sección Personaliza tu instancia, expande Mostrar opciones de configuración.
- Haz clic en Seguridad.
- En la sección Modo de autoridad certificadora del servidor, selecciona Autoridad certificadora de CAS administrada por el cliente.
- En el menú Grupo de AC, selecciona un grupo de AC para tu instancia. El grupo de AC debe estar en la misma región que selecciones para tu instancia. Si aún no tienes un grupo de AC, haz clic en Nuevo grupo para crear uno nuevo.
- Opcional: Para habilitar la rotación automática de tus certificados de servidor, selecciona la casilla de verificación Rotar automáticamente los certificados de servidor.
- Haz clic en Guardar.
gcloud
Para actualizar tu instancia, ejecuta el siguiente comando:
gcloud sql instances patch INSTANCE_NAME \ --server-ca-mode=CUSTOMER_MANAGED_CAS_CA \ --server-ca-pool=projects/PROJECT_ID_CAS/locations/REGION/caPools/CA_POOL_ID
Para la marca --server-ca-mode, asegúrate de especificar CUSTOMER_MANAGED_CAS_CA.
Reemplaza lo siguiente:
INSTANCE_NAME: Es el nombre de la instancia de Cloud SQL que deseas parchar.PROJECT_ID_CASpor el ID del proyecto en el que se encuentra tu CA_POOL_ID. Este proyecto puede ser el mismo o diferente de donde se encuentra tu instancia de Cloud SQL.REGIONpor la región en la que creaste el grupo de AC. La instancia debe estar en la misma región que el grupo de AC.CA_POOL_ID: Es el ID del grupo de AC que deseas asignar a la instancia. También puedes usar este comando para cambiar el grupo de AC de una instancia que ya está configurada para usarCUSTOMER_MANAGED_CAS_CA
REST
Para actualizar una instancia de Cloud SQL y usar la opción de CA administrada por el cliente,
usa el método instances.patch
y especifica las siguientes propiedades:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_IDes el ID del proyecto en el que se encuentra tu instancia de Cloud SQL.INSTANCE_IDes el nombre de la instancia de Cloud SQL que deseas parchear.PROJECT_ID_CASes el ID del proyecto en el que creaste tu CA_POOL_ID. Este proyecto puede ser el mismo o diferente de donde se encuentra tu instancia de Cloud SQL.REGIONes la región en la que creaste el grupo de AC. Debes crear tu instancia en la misma región que el grupo de AC.CA_POOL_ID: Es el ID del grupo de AC que deseas asignar a la instancia. También puedes usar este comando para cambiar el grupo de AC de una instancia que ya está configurada para usarCUSTOMER_MANAGED_CAS_CA.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{
"settings":{
"ipConfiguration":
{
"serverCaPool": "projects/PROJECT_ID_CAS/locations/REGION/caPools/CA_POOL_ID",
"serverCaMode": "CUSTOMER_MANAGED_CAS_CA"
}
}
}
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2025-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Cambia una instancia de una AC administrada por el cliente a una AC compartida
Puedes actualizar una instancia que usa una AC administrada por el cliente para usar una
AC compartida
(GOOGLE_MANAGED_CAS_CA). Sin embargo, no puedes actualizar una instancia que esté
configurada para usar una AC administrada por el cliente para usar
la AC por instancia (GOOGLE_MANAGED_INTERNAL_CA).
Antes de actualizar una instancia para usar una CA compartida, descarga los paquetes de CA globales y regionales, cópialos en tus clientes de base de datos y permite que confíen en estas CA. Configurar los certificados antes de cambiar la configuración del modo de AC del servidor puede ayudar a evitar posibles interrupciones para los clientes de tu base de datos.
Para cambiar el modo de AC del servidor de tu instancia y usar la AC compartida, usa el siguiente procedimiento.
Console
-
En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Editar.
- En la sección Personaliza tu instancia, expande Mostrar opciones de configuración.
- Haz clic en Seguridad.
- En la sección Modo de autoridad certificadora del servidor, selecciona Autoridad certificadora de CAS administrada por Google.
- Opcional: Para habilitar la rotación automática de tus certificados de servidor , selecciona la casilla de verificación Rotar automáticamente los certificados de servidor.
- Haz clic en Guardar.
gcloud
Para actualizar tu instancia, ejecuta el siguiente comando:
gcloud sql instances patch INSTANCE_NAME \ --server-ca-mode=GOOGLE_MANAGED_CAS_CA \ --server-ca-pool=""
En el comando, haz lo siguiente:
- Reemplaza
INSTANCE_NAMEpor el nombre de la instancia de Cloud SQL que deseas parchar. - En la marca
--server-ca-mode, especificaGOOGLE_MANAGED_CAS_CA. - Para la marca
--server-ca-pool, debes especificar una cadena vacía o"".
REST
Para actualizar una instancia de Cloud SQL que usa la CA administrada por el cliente
para usar la opción de CA compartida,
usa el método instances.patch
y especifica las siguientes propiedades:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_IDes el ID del proyecto en el que se encuentra tu instancia de Cloud SQL.INSTANCE_IDes el nombre de la instancia de Cloud SQL que deseas parchear.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{
"settings":{
"ipConfiguration":
{
"serverCaPool": "",
"serverCaMode": "GOOGLE_MANAGED_CAS_CA"
}
}
}
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2025-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Solucionar problemas
| Problema | Soluciona problemas |
|---|---|
Recibes el siguiente mensaje de error: PERMISSION_DENIED: Permission
|
Asegúrate de haber otorgado el rol roles/privateca.certificateRequester
a la cuenta de servicio que creaste para tu proyecto de Cloud SQL.
Para obtener más información, consulta Proporciona a la cuenta de servicio acceso al grupo de AC.
|
Recibes el siguiente mensaje de error: PERMISSION_DENIED: Request is prohibited by organization's policy vpcServiceControlsUniqueIdentifier VPC_SERVICE_CONTROLS_UNIQUE_IDENTIFIER.
|
Asegúrate de configurar los Controles del servicio de VPC para que el proyecto que aloja el grupo de AC y la AC del Servicio de AC, y el proyecto que aloja Cloud SQL pertenezcan al mismo perímetro de servicio. Para obtener más información, consulta Perímetros de servicio y Administra perímetros de servicio. |
Recibes uno de los siguientes mensajes de error de
|
Verifica los parámetros de configuración de tu grupo de AC y de tu AC. Asegúrate de cumplir con todos los requisitos que se indican en Crea un grupo de AC y Crea una AC en el grupo de AC. |
Recibes el siguiente mensaje de error:
|
Esto representa problemas de cuota con CA Service. Verifica la cuota del Servicio de AC en tu proyecto. Verifica si estás usando solicitudes en tu grupo de AC fuera de Cloud SQL. Para obtener más información, consulta Cuotas y límites. |
|
Recibes el siguiente mensaje de error: NOT FOUND: parent resource CA_POOL_ID not found.
|
Verifica el ID del proyecto, la ubicación y el nombre del grupo de AC que especificaste cuando creaste la instancia de Cloud SQL. Asegúrate de no haber cometido errores tipográficos. |
|
Recibes el siguiente mensaje de error: FAILED_PRECONDITION: There are no enabled CAs in the CaPool.
Please ensure that there is at least one enabled Certificate Authority to
issue a certificate.
|
Asegúrate de haber creado al menos una CA en el grupo de AC que especificaste cuando creaste la instancia de Cloud SQL y de que la CA esté habilitada. |
|
Recibes el siguiente mensaje de error: FAILED_PRECONDITION: Per-Product Per-Project Service Account (P4 SA) SERVICE_ACCOUNT_NAME not found for project PROJECT_ID.
|
Asegúrate de haber creado la cuenta de servicio para tu proyecto de Cloud SQL. Para obtener más información, consulta Crea una cuenta de servicio específica del proyecto. |
|
Recibes el siguiente mensaje de error: INVALID ARGUMENT: Invalid format for server CA pool.
|
Asegúrate de haber especificado el grupo de AC en el formato correcto: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL_ID
|
|
Recibes el siguiente mensaje de error: INVALID ARGUMENT: The instance's server CA pool must be in the same region as the instance.
|
Asegúrate de que el grupo de AC esté en la misma región que la instancia de Cloud SQL que quieres crear. |
¿Qué sigue?
- Obtén más información sobre las jerarquías de AC en Cloud SQL.
- Configura un nombre de DNS personalizado para tu instancia.