En este documento, se proporciona una descripción general de varios controles que admiten la seguridad de AlloyDB para PostgreSQL en Google Cloud y se incluyen vínculos a más información sobre cómo configurar los controles. Los controles de seguridad, como las opciones de seguridad de red, las políticas y la administración de acceso, también pueden ayudarte a abordar los riesgos de tu empresa y cumplir con los requisitos regulatorios y de privacidad que se aplican a tu empresa.
La seguridad, la privacidad, el riesgo y el cumplimiento de AlloyDB para PostgreSQL utilizan un modelo de responsabilidad compartida. Por ejemplo, Google protege la infraestructura en la que se ejecutan AlloyDB para PostgreSQL y otros Google Cloud servicios, y te proporciona las capacidades que te ayudan a administrar el acceso a tus servicios y recursos. Para obtener más información sobre cómo protegemos la infraestructura, consulta la descripción general del diseño de seguridad de la infraestructura de Google.
Arquitectura de AlloyDB
En el siguiente diagrama, se muestran los componentes de la arquitectura de AlloyDB.
Los componentes incluyen lo siguiente:
- Las instancias de AlloyDB se implementan en varias zonas para habilitar la alta disponibilidad y la resiliencia.
- Una aplicación en Google Cloud o en otro entorno que se conecta a la instancia principal de AlloyDB. En el diagrama, se muestra la aplicación que se ejecuta en el mismo proyecto de Google Cloud que AlloyDB, aunque también puedes ejecutar la aplicación en otro proyecto de tu organización deGoogle Cloud .
- En un entorno híbrido, Cloud VPN o Cloud Interconnect pueden proporcionar acceso a los recursos de tu red corporativa.
- Es un perímetro de servicio creado con los Controles del servicio de VPC. Los Controles del servicio de VPC te permiten controlar el movimiento de datos entre los servicios o recursos de Google y configurar la seguridad perimetral basada en el contexto.
Para obtener información sobre el extremo de AlloyDB, consulta la API de AlloyDB. De forma predeterminada, este extremo no es un extremo que se pueda enrutar de forma pública y no puede recibir tráfico entrante de redes públicas. Para permitir que las instancias de AlloyDB reciban tráfico entrante a través de redes públicas, consulta Conéctate con una IP pública.
Para obtener información sobre los conectores de AlloyDB, consulta Conectividad de aplicaciones.
Servicios aprovisionados
Cuando comienzas a usar AlloyDB, habilitas las siguientes APIs:
alloydb.googleapis.com
compute.googleapis.com
cloudresourcemanager.googleapis.com
servicenetworking.googleapis.com
Para obtener más información, consulta Guía de inicio rápido: Crea una base de datos y conéctate a ella.
Autenticación para la administración de Google Cloud
Los administradores y desarrolladores que crean y administran instancias de AlloyDB deben autenticarse en Google Cloud para verificar su identidad y sus privilegios de acceso. Debes configurar cada usuario con una cuenta de usuario administrada por Cloud Identity, Google Workspace o un proveedor de identidad con el que hayas federado Cloud Identity o Google Workspace. Si quieres obtener más información, consulta la Descripción general de la administración de identidades y accesos.
Después de crear las cuentas de usuario, implementa prácticas recomendadas de seguridad, como el acceso único y la verificación en 2 pasos. Para conocer más prácticas recomendadas de autenticación, consulta Administra la identidad y el acceso.
Identity and Access Management
Para administrar los roles de Identity and Access Management (IAM) a gran escala para tus administradores y desarrolladores, considera crear grupos funcionales separados para los distintos roles de usuario y aplicaciones de la base de datos. Otorga a tus grupos los roles o permisos de IAM necesarios para administrar AlloyDB. Cuando asignes roles a tus grupos, sigue el principio de privilegio mínimo y otras prácticas recomendadas de seguridad de IAM. Para obtener más información, consulta Prácticas recomendadas para usar Grupos de Google.
Para obtener más información sobre la configuración de IAM, consulta la Descripción general de IAM.
Cuando los clientes usan la autenticación de base de datos de IAM para acceder a AlloyDB, también puedes usar IAM para controlar su acceso a AlloyDB. Para obtener más información sobre los roles de IAM necesarios para AlloyDB, consulta Roles y permisos de IAM para AlloyDB.
Si usas el proxy de autenticación o los conectores de lenguaje (como se describe en Conectividad de la aplicación), puedes usar IAM para controlar qué cargas de trabajo de la aplicación pueden conectarse a AlloyDB. Para obtener más información sobre el uso de IAM con el proxy de autenticación, consulta Cómo elegir la principal de IAM y prepararla para la autorización. Para usar la autenticación automática de IAM con los conectores de lenguaje de AlloyDB, consulta Administra la autenticación de IAM.
Cuentas de servicio y agentes de servicio predeterminados
Una cuenta de servicio
es un tipo especial de Cuenta de Google no interactiva que representa a un
usuario no humano que necesita autenticarse y tener autorización para acceder a los datos de
las APIs de Google. Dado que AlloyDB es un servicio completamente administrado, Google administra tu cuenta de servicio de AlloyDB en tu nombre. Cuando habilitas AlloyDB, se crea una cuenta de servicio de AlloyDB para tu proyecto (service-PROJECT_NUMBER-gcp-sa-alloydb-iam.gserviceaccount.com
). Los recursos de AlloyDB, como el servidor de PostgreSQL, usan esta cuenta de servicio para ejecutarse.
Los agentes de servicio son los roles y permisos de IAM que usan algunos servicios de Google Cloudpara poder acceder a tus recursos y actuar en tu nombre. La cuenta de servicio de AlloyDB administrada usa los privilegios de IAM del agente de servicio de AlloyDB.
Políticas de AlloyDB
Las políticas de la organización predefinidas que se aplican a AlloyDB definen si AlloyDB puede usar claves de encriptación administradas por el cliente (CMEK) para encriptar tus datos. Configura AlloyDB para que use CMEK si tus obligaciones reglamentarias requieren que tengas un mayor control sobre las claves que se usan para encriptar los datos de AlloyDB en reposo. Las políticas incluyen lo siguiente:
- Restringe los servicios que pueden crear recursos sin CMEK (
constraints/gcp.restrictNonCmekServices
) - Restringe los proyectos que pueden proporcionar CryptoKeys de Cloud KMS para CMEK (
constraints/gcp.restrictCmekCryptoKeyProjects
)
Para obtener más información, consulta Usa políticas de la organización predefinidas.
Puedes usar políticas de la organización personalizadas para configurar restricciones en AlloyDB a nivel del proyecto, la carpeta o la organización. Si habilitas las direcciones IP públicas, te recomendamos que configures una restricción de política personalizada para aplicar quién puede usar la dirección IP pública. Para definir mejor tus políticas, puedes agregar campos de instancias de AlloyDB (por ejemplo, habilitar la dirección IP pública o habilitar la dirección IP pública saliente) a la política. Para obtener más información, consulta Usa políticas de la organización personalizadas.
Seguridad de red
De forma predeterminada, Google aplica protecciones predeterminadas a los datos en tránsito para todos los servicios deGoogle Cloud , incluidas las instancias de AlloyDB que se ejecutan en Google Cloud. Para obtener más información sobre las protecciones de red predeterminadas, consulta Encriptación en tránsito.
AlloyDB admite la encriptación TLS 1.3 para la comunicación entre la instancia de base de datos y los clientes. AlloyDB genera automáticamente el certificado del servidor para esta conexión. Para usar certificados de cliente para la autenticación mutua, debes configurar un conector de lenguaje de AlloyDB (que usa la autenticación de mTLS) o el proxy de autenticación de AlloyDB.
Si tu organización lo requiere, puedes configurar controles de seguridad adicionales para proteger aún más el tráfico en la red Google Cloud y el tráfico entre la red Google Cloud y tu red corporativa. Ten en cuenta lo siguiente:
AlloyDB admite los Controles del servicio de VPC. Los Controles del servicio de VPC te permiten controlar el movimiento de datos en los servicios de Google y configurar la seguridad perimetral basada en el contexto. Para obtener más información sobre cómo configurar los Controles del servicio de VPC, consulta Configura los Controles del servicio de VPC.
- Si habilitas las direcciones IP públicas, usa los conectores de lenguaje de AlloyDB y una política personalizada de la organización para controlar quién tiene acceso a las instancias de AlloyDB.
En Google Cloud, considera la VPC compartida como tu topología de red. La VPC compartida proporciona una administración centralizada de la configuración de red, a la vez que mantiene la separación de los entornos.
Usa Cloud VPN o Cloud Interconnect para maximizar la seguridad y la confiabilidad de la conexión entre tu red corporativa yGoogle Cloud. Para obtener más información, consulta Elige un producto de Conectividad de red.
Para obtener más información sobre las prácticas recomendadas de seguridad de la red, consulta Implementa la confianza cero y Decide el diseño de red de tu zona de destino de Google Cloud .
Conectividad de la aplicación
Puedes proteger la conexión entre las aplicaciones y AlloyDB con los siguientes métodos:
- El proxy de autenticación de AlloyDB o el conector de lenguaje de AlloyDB para configurar un túnel TCP seguro a la instancia de AlloyDB
- Autenticación de la base de datos.
- Acceso a VPC sin servidores para conectar AlloyDB directamente con Cloud Run
- Private Service Connect o acceso a servicios privados para conectarte a una aplicación en otra VPC en Google Cloud con la dirección IP privada de AlloyDB Usa este método para mantener el tráfico en Google Cloud. Si deseas usar Private Service Connect, debes configurarlo cuando crees el clúster de base de datos de AlloyDB.
En el siguiente diagrama, se muestran las opciones de conectividad.
Para obtener más información sobre las opciones para configurar conexiones a servicios sin una dirección IP externa, consulta Opciones de acceso privado a los servicios.
Autenticación de la base de datos
AlloyDB proporciona los siguientes métodos de autenticación para los clientes de bases de datos:
- Autenticación de base de datos integrada con un nombre de usuario y una contraseña La autorización se determina con las instrucciones
GRANT
oREVOKE
. Para obtener más información, consulta Cómo administrar roles de usuario de AlloyDB. - Autenticación de IAM con principales de IAM, como usuarios y cuentas de servicio
Los conectores de lenguaje de AlloyDB pueden automatizar el proceso de autenticación de IAM. Para obtener más información, consulta la descripción general de los conectores de lenguaje de AlloyDB.
La autenticación de IAM tiene los siguientes beneficios:
- Control de acceso unificado: IAM centraliza el control de acceso en todos los recursos de Google Cloud , incluidas las bases de datos. El control de acceso unificado implica políticas coherentes y una administración más sencilla de usuarios y roles.
- Administración de credenciales reducida: Los usuarios no necesitan contraseñas de bases de datos independientes. La autenticación de IAM usa las credenciales existentes de la Cuenta de Google.
- Tokens de corta duración: La autenticación de IAM usa tokens de acceso de corta duración, lo que reduce el riesgo de contraseñas filtradas o credenciales comprometidas.
Conectores
Puedes usar el proxy de autenticación de AlloyDB o un conector de lenguaje de AlloyDB para configurar una conexión encriptada al cliente de la base de datos. El proxy de autenticación de AlloyDB es un proxy del cliente que actualiza de forma transparente las conexiones que no son TLS a conexiones TLS 1.3. Los conectores de lenguaje son bibliotecas cliente que se conectan a un servidor proxy en el clúster de AlloyDB. Ambos conectores usan IAM para autorizar la conexión y protegerla con mTLS. De manera opcional, puedes configurar la autenticación sin contraseña en lugar de la autenticación de IAM.
Si usas el proxy de autenticación, revisa las prácticas recomendadas para usar el proxy de autenticación de AlloyDB.
Protección y privacidad de los datos
En esta sección, se describe cómo AlloyDB protege tus datos y la privacidad de esos datos.
AlloyDB encripta los datos almacenados en tu clúster (por ejemplo, el nombre de la instancia, la configuración de la instancia, el contenido de la tabla, los nombres de las filas y las funciones personalizadas) con la encriptación predeterminada. Solo las instancias de AlloyDB pueden acceder a estos datos.
Puedes habilitar las claves de encriptación administradas por el cliente (CMEK) para encriptar los datos del clúster en reposo. Con CMEK, las claves se almacenan en Cloud KMS como claves protegidas por software o claves protegidas por hardware (con Cloud HSM), pero tú las administras. Para aprovisionar claves de encriptación automáticamente, puedes habilitar Autokey de Cloud KMS. Cuando habilitas Autokey, un desarrollador puede solicitar una clave de Cloud KMS, y el agente de servicio aprovisiona una clave que coincide con la intención del desarrollador. Con la clave automática de Cloud KMS, las claves están disponibles a pedido, son coherentes y siguen las prácticas estándar de la industria.
Además, AlloyDB admite Cloud External Key Manager (Cloud EKM), que te permite almacenar tus claves en un administrador de claves externo fuera de Google Cloud. Si usas Cloud EKM, Key Access Justifications agrega un campo a tus solicitudes de Cloud EKM que te permite ver el motivo de cada solicitud. Con determinados socios de administración de claves externas, puedes aprobar o rechazar automáticamente estas solicitudes, según la justificación.
Dónde se procesan los datos
AlloyDB admite la residencia de datos para los datos almacenados en tu clúster. La residencia de datos te permite elegir las regiones en las que deseas que se almacenen tus datos con la restricción de la política de restricción de ubicación de recursos. Puedes usar Cloud Asset Inventory para verificar la ubicación de los recursos de AlloyDB.
Si necesitas residencia de datos para los datos en uso, puedes configurar Assured Workloads. Para obtener más información, consulta Assured Workloads y residencia de datos.
Privacidad de los datos
Para ayudar a proteger la privacidad de tus datos, AlloyDB cumple con los Principios de Privacidad Comunes.
AlloyDB actúa como encargado del tratamiento de datos para los Datos del Cliente. Google también actúa como responsable del tratamiento de datos para la información, como la facturación y la administración de cuentas, y la detección de abusos. Para obtener más información, consulta el Google Cloud Aviso de Privacidad.
Registros de auditoría
AlloyDB escribe los siguientes tipos de registros de auditoría:
- Registros de auditoría de actividad del administrador: Incluyen operaciones de
ADMIN WRITE
que escriben metadatos o información de configuración. - Registros de auditoría de acceso a los datos: Incluyen operaciones de
ADMIN READ
que leen metadatos o información de configuración. También incluye las operacionesDATA READ
yDATA WRITE
que leen o escriben datos proporcionados por el usuario. - Registros de auditoría de eventos del sistema: Identifican acciones automatizadas Google Cloud que modifican la configuración de los recursos.
Para obtener más información, consulta Registros de auditoría de AlloyDB.
Además, para cumplir con los requisitos reglamentarios, puedes usar la extensión pgAudit para habilitar un registro de auditoría de los comandos de la base de datos. Los registros de la extensión pgAudit incluyen detalles sobre qué comandos se realizaron, cuándo se realizaron y quién los realizó.
Transparencia de acceso
Puedes usar la Aprobación de acceso y la Transparencia de acceso para controlar el acceso a las instancias de AlloyDB por parte del personal de Google que brinda asistencia para el servicio. La Aprobación de acceso te permite aprobar o descartar las solicitudes de acceso de los empleados de Google. Los registros de Transparencia de acceso ofrecen estadísticas casi en tiempo real cuando los administradores acceden a los recursos.Google Cloud
Supervisión y respuesta ante incidentes
Puedes usar una variedad de herramientas para supervisar el rendimiento y la seguridad de AlloyDB. Ten en cuenta lo siguiente:
- Usa el Explorador de registros para ver y analizar los registros de eventos, y crear métricas personalizadas y alertas.
- Usa el panel de estadísticas del sistema de AlloyDB o el panel de Cloud Monitoring para supervisar el rendimiento de las instancias de AlloyDB. Para obtener más información, consulta Supervisa instancias.
- Habilita la extensión pgAudit para auditar las operaciones de AlloyDB (como los comandos y las consultas que se realizan en una instancia de AlloyDB). Estos registros incluyen los registros de la base de datos de PostgreSQL y los registros de contenedores para los agentes del plano de datos.
- Configura Security Command Center para detectar vulnerabilidades y amenazas de SQL en AlloyDB (como la escalada de privilegios). Puedes configurar alertas y guías para los analistas de tu centro de operaciones de seguridad (SOC) de modo que puedan responder a los hallazgos.
Certificaciones y cumplimiento
Cumplir con tus requisitos reglamentarios es una responsabilidad compartida entre tú y Google.
AlloyDB recibió muchas certificaciones, incluidas las siguientes:
- Organización Internacional de Normalización (ISO) 27001, ISO 27017, ISO 27018, ISO 27701
- Controles de organización y servicio (SOC) 1, SOC 2 y SOC 3
- Normas de Seguridad de Datos de la Industria de Tarjetas de Pago (PCI DSS)
- Ley de Responsabilidad y Portabilidad de Seguros Médicos (HIPAA)
Para obtener más información sobre el cumplimiento de diferentes marcos regulatorios y certificaciones, consulta el Centro de recursos de cumplimiento. Google Cloud
AlloyDB también admite Assured Workloads, que te permite aplicar controles a carpetas específicas de tu organización de Google que satisfacen requisitos reglamentarios, regionales o de soberanía. Para obtener más información, consulta Productos admitidos por paquete de controles.
¿Qué sigue?
- Configura la resiliencia con clústeres.
- Habilita las copias de seguridad.
- Usa Terraform para implementar AlloyDB.
- Utiliza Google Threat Intelligence para hacer un seguimiento de las amenazas externas que se aplican a tu empresa.