En esta página, se describe cómo usar la opción de la 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 AC administrada por el cliente, configuras tu propio grupo 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 AC para tus instancias de Cloud SQL.
Antes de poder crear una instancia de Cloud SQL con la opción de AC 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 el servicio de AC y, luego, encadenarla a una AC raíz externa. Cuando creas la 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 AC del grupo, y Cloud SQL usa esa AC para firmar el certificado del servidor de la instancia.
Para el modo de AC del servidor de 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 Cómo autorizar 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 el Servicio de AC.
- Crea una AC en el Servicio de AC.
- Crea una instancia de Cloud SQL que use la AC. Cuando creas 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 AC administrada por el cliente, asegúrate de cumplir con los siguientes requisitos.
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 mediante 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
Administrador de operaciones de servicios 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 mediante 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 controlará la solicitud para crear y firmar los certificados del 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.iam.gserviceaccount.com
en el proyecto. Anota el nombre de la cuenta de servicio Solicitante del certificado de servicio de AC.
Crear grupo de CA
Crea un grupo de AC en el Servicio de AC.
Puedes crear un grupo de AC en el mismo proyecto en el que planeas crear tus instancias de Cloud SQL o en un proyecto diferente. Sin embargo, si creas el grupo de AC en un proyecto diferente, es posible que los Controles del servicio de VPC te bloqueen para 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 Périmetros 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 del grupo de AC con los siguientes ajustes de configuración necesarios:
- 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.
- Permite solicitudes de certificados basadas en la configuración.
- Permite nombres de DNS en los nombres alternativos de entidad (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 a la SAN.
Proporciona a la cuenta de servicio acceso al grupo de AC
Para asegurarte de que la cuenta de servicio tenga los permisos 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 otorgarle 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_ID
por el ID del grupo de AC que creaste.PROJECT_ID
por el ID del proyecto en el que planeas crear tus instancias de Cloud SQL.REGION
por la región en la que creaste el grupo de AC.SERVICE_ACCOUNT_NAME
con el nombre de la cuenta de servicio de Solicitante de certificados de servicio de AC que creaste para el proyecto anteriormente.
Crea una AC en el grupo de AC
Crea al menos una AC 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 Cómo crear una AC raíz. Puedes aceptar los valores predeterminados de la AC, pero asegúrate de crearla en el estado Habilitada.
Cuando configures el algoritmo y el tamaño de la clave de AC, podrás seleccionar cualquier algoritmo y tamaño de clave. Cloud SQL genera sus certificados de servidor con claves de curva elíptica EC P-384 (SHA-384), pero tus claves criptográficas de 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 el servicio de AC, sigue las instrucciones en Cómo crear una AC subordinada.
Para crear una AC subordinada a partir de una AC raíz externa, sigue las instrucciones que se indican en Cómo crear una AC subordinada a partir de una AC raíz externa.
Cree una instancia de Cloud SQL
Para crear una instancia de Cloud SQL que use la opción de AC administrada por el cliente, haz lo siguiente.
Console
No puedes usar la consola de Google Cloud para crear instancias que usen la opción de AC administrada por el cliente durante la versión preliminar.
En su lugar, usa el comando gcloud beta sql instances create
.
gcloud
gcloud beta sql instances create "INSTANCE_NAME" \ --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_NAME
por el nombre de la instancia de Cloud SQL que deseas crear.PROJECT_ID
por el ID del proyecto en el que planeas crear tus instancias de Cloud SQL.PROJECT_ID_CAS
por el ID del proyecto en el que creaste tu CA_POOL_ID. Este proyecto puede ser el mismo o diferente del que quieres crear tu instancia de Cloud SQL.REGION
por 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
por el ID del grupo de AC que creaste.
REST
Para crear una instancia de Cloud SQL que use la opción de AC 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
el ID del proyecto en el que planeas crear tus instancias de Cloud SQL.PROJECT_ID_CAS
es el ID del proyecto en el que creaste tu CA_POOL_ID. Este proyecto puede ser el mismo o diferente del que quieres crear tu instancia de Cloud SQL.INSTANCE_ID
es el nombre de la instancia de Cloud SQL que deseas crear.REGION
es 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
por 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" }
Solucionar problemas
Problema | Soluciona problemas |
---|---|
Recibirás 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 Cómo proporcionar a la cuenta de servicio acceso al grupo de AC.
|
Recibirás 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 de modo que el proyecto que aloja el grupo de AC y la AC de CA Service y el proyecto que aloja Cloud SQL pertenezcan al mismo perímetro de servicio. Para obtener más información, consulta Périmetros de servicio y Administra perímetros de servicio. |
Recibes uno de los siguientes mensajes de error de
|
Verifica la configuración del grupo de AC y de la 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. |
Recibirás el siguiente mensaje de error:
|
Esto representa problemas de cuota con el servicio de AC. Verifica la cuota del servicio de CA en tu proyecto. Verifica si es posible que estés usando solicitudes en tu grupo de AC fuera de Cloud SQL. Para obtener más información, consulta Cuotas y límites. |
Recibirás el siguiente mensaje de error: NOT FOUND: parent resource CA_POOL_ID not found.
|
Verifica el ID, la ubicación y el nombre del grupo de AC que especificaste cuando creaste tu instancia de Cloud SQL. Asegúrate de no haber cometido errores tipográficos. |
Recibirás 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 AC en el grupo de AC que especificaste cuando creaste tu instancia de Cloud SQL y de que la AC esté en estado habilitado. |
Recibirás 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 Cómo crear una cuenta de servicio específica del proyecto. |
Recibirás 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
|
Recibirás 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 deseas crear. |