This is not an officially supported Google product. This code creates PoC demo environment for CSA Certificate Authority Service demo. This demo code is not built for production workload.
Esta guía de arquitectura permite una implementación optimizada y segura del Servicio de autoridad de certificación (CAS). Crea una autoridad de certificación raíz junto con dos autoridades de certificación subordinadas y un certificado de hoja. Estas autoridades de certificación son altamente disponibles, escalables y fáciles de mantener, lo que le permite crear una infraestructura de clave pública (PKI) privada para afirmar identidades a través de certificados y establecer una raíz de confianza en todas sus cargas de trabajo.
Si bien esta guía de arquitectura se centra en una implementación completa de CAS, denominada arquitectura 1 en la figura siguiente (es decir, una en la que todas las autoridades de certificación están alojadas en Google Cloud), CAS es extremadamente flexible y permite a su organización crear una PKI privada en una variedad de formas. de diferentes maneras como se muestra en el siguiente diagrama.
También brindaremos detalles sobre cómo usar CSR (Solicitud de firma de certificado) para implementar una arquitectura híbrida, en la que las CA pueden residir fuera de GCP (arquitecturas n.° 2 y 3).
Servicio de autoridad de certificación (CAS): el servicio de autoridad de certificación es un servicio de Google Cloud escalable y de alta disponibilidad que le permite simplificar, automatizar y personalizar la implementación, administración y seguridad de autoridades de certificación (CA) privadas.
Servicio de administración de claves (KMS): el servicio de administración de claves en la nube le permite crear, importar y administrar claves criptográficas y realizar operaciones criptográficas en un único servicio en la nube centralizado. Puede usar estas claves y realizar estas operaciones usando Cloud KMS directamente, usando Cloud HSM o Cloud External Key Manager, o usando integraciones de claves de cifrado administradas por el cliente (CMEK) dentro de otros servicios de Google Cloud.
Google Cloud Storage (GCS): Cloud Storage es un servicio administrado para almacenar datos no estructurados. Almacene cualquier cantidad de datos y recupérelos tantas veces como desee.
Al diseñar PKI con GCP CAS, se deben tener en cuenta los siguientes límites, así como las cuotas y los límites y limitaciones conocidas:
Recurso | Unidad | Valor |
---|---|---|
CA pendientes 1 | por Ubicación por Proyecto | 100 |
CA | por Ubicación por Proyecto | 1.000 |
Certificados revocados vigentes 2 | por CA o lista de revocación de certificados (CRL) | 500.000 |
1 autoridad de certificación (CA) pendiente es una CA subordinada que se creó pero aún no se activó y, por lo tanto, se encuentra en el estado AWAITING_USER_ACTIVATION.
2 CRL puede contener como máximo 500.000 certificados revocados vigentes. Si intenta revocar más de este límite, la solicitud de revocación falla. Si necesita revocar más de 500.000 certificados, le recomendamos esperar hasta que los certificados revocados existentes hayan caducado o revocar el certificado de CA emisor.
##Instrucciones de Terraformación:
Inicie sesión en su organización y asígnese un rol de administrador de servicios de CA y administrador de Cloud KMS en el proyecto que se utilizará para la implementación.
Si es necesario crear un nuevo proyecto y habilitar la facturación. Siga los pasos de esta guía.
Abra Cloud Shell y clone el siguiente repositorio de git usando el siguiente comando:
git clone https://github.com/GCP-Architecture-Guides/csa-certificate-authority-service.git
Navegue hasta la carpeta csa-certificate-authority-service.
cd csa-certificate-authority-service</th>
Exportar la identificación del proyecto en la variable Terraform
export TF_VAR_demo_project_id=[YOUR_PROJECT_ID]
Mientras esté en la carpeta csa-certificate-authority-service, ejecute los siguientes comandos en orden.
terraform init terraform plan terraform apply
si se le solicita, autorice la llamada a la API.
Una vez finalizada la implementación, publicará el resumen de resultados de los activos orquestados. Despliega los recursos en cinco minutos.
Después de completar la demostración, navegue hasta la carpeta de servicio de autoridad de certificación y ejecute el siguiente comando para destruir todos los recursos de demostración.
terraform destroy
##Resumen de Terraformación:
Piscina | California | Validez | Estado | Nombre del sujeto | Región | Nivel |
---|---|---|---|---|---|---|
Grupo raíz de demostración | CA raíz | 10 años | Activado | Organización: Demostración CA CN: Demostración ID de recurso: [predeterminado] | us-central1 (Iowa) | Empresa |
Subgrupo de demostración | Sub CA con CA raíz en Google Cloud | 3 años | Activado | Organización: Demostración CA CN: Demostración ID de recurso: [predeterminado] | us-central1 (Iowa) | Empresa |
Subgrupo de demostración-2 | Sub CA con CA raíz en Google Cloud | 3 años | Activado | Organización: Demostración CA CN: Demostración ID de recurso: [predeterminado] | nosotros-este1 | Empresa |
Piscina | Métodos de RSC aceptados | Claves y algoritmos permitidos | Tamaño de clave y algoritmo | Opciones de publicación | Valores de referencia configurados | Restricciones de extensión configuradas | Restricciones de identidad configuradas |
---|---|---|---|---|---|---|---|
Grupo raíz de demostración | Permitir todo | Sin restricciones | RSA_PKCS1_4096_SHA256 | Al depósito GCS en formato PEM | Ninguno | Copie todas las extensiones de las solicitudes de certificado | Copie el asunto y las SAN de las solicitudes de certificado |
Subgrupo de demostración | Permitir todo | Sin restricciones | RSA_PKCS1_4096_SHA256 | Al depósito GCS en formato PEM | Ninguno | Copie todas las extensiones de las solicitudes de certificado | Copie el asunto y las SAN de las solicitudes de certificado |
Subgrupo de demostración-2 | Permitir todo | Sin restricciones | RSA_PKCS1_4096_SHA256 | Al depósito GCS en formato PEM | Ninguno | Copie todas las extensiones de las solicitudes de certificado | Copie el asunto y las SAN de las solicitudes de certificado |
Mejores prácticas para el servicio de autoridad certificadora
El servicio de autoridad de certificación de Google Cloud tiene varios requisitos de registro y monitoreo para garantizar la seguridad y la integridad del servicio. Estos requisitos incluyen lo siguiente:
Registro de auditoría: las operaciones de registro realizadas en el servicio, como la emisión, renovación y revocación de certificados, se registran y los clientes pueden auditarlas.
Notificaciones de eventos: los clientes pueden recibir notificaciones de eventos importantes, como la caducidad del certificado, por correo electrónico o mediante un webhook.
Transparencia de certificados: todos los certificados emitidos se registran en registros de transparencia, lo que permite auditar la emisión y revocación de certificados.
Monitoreo de seguridad y disponibilidad: los equipos de seguridad y operaciones monitorean constantemente el servicio en busca de posibles amenazas a la seguridad y problemas de disponibilidad.
Cumplimiento: el servicio de autoridad de certificación de Google Cloud cumple con varios estándares que especifican los requisitos operativos y de seguridad para las autoridades de certificación.
En general, estos requisitos de registro y monitoreo tienen como objetivo brindar a los clientes transparencia y visibilidad del servicio, al mismo tiempo que garantizan la seguridad y disponibilidad del servicio.
Los servicios de Google Cloud escriben registros de auditoría para ayudarle a responder las preguntas: "¿Quién hizo qué, dónde y cuándo?". dentro de sus recursos de Google Cloud.
Los siguientes tipos de registros de auditoría están disponibles para CA Service:
Registros de auditoría de actividad administrativa
Incluye operaciones de "escritura de administrador" que escriben metadatos o información de configuración.
No puede deshabilitar los registros de auditoría de actividad administrativa.
Registros de auditoría de acceso a datos
Incluye operaciones de "lectura de administrador" que leen metadatos o información de configuración. También incluye operaciones de "lectura de datos" y "escritura de datos" que leen o escriben datos proporcionados por el usuario.
Para recibir registros de auditoría de acceso a datos, debe habilitarlos explícitamente.
Para obtener registros de auditoría específicos creados por el Servicio de autoridad de certificación, consulte.
Los registros de auditoría de actividad administrativa siempre están habilitados; no puedes desactivarlos.
Los registros de auditoría de acceso a datos están deshabilitados de forma predeterminada y no se escriben a menos que se habiliten explícitamente.
Para obtener información sobre cómo habilitar algunos o todos los registros de auditoría de acceso a datos, consulte Habilitar registros de auditoría de acceso a datos.
En la consola de Google Cloud, puedes usar el Explorador de registros para recuperar las entradas del registro de auditoría de tu proyecto, carpeta u organización en la nube:
En la consola de Google Cloud, vaya a la página Registro> Explorador de registros.
Seleccione un proyecto, carpeta u organización de la nube existente.
En el panel Generador de consultas, haga lo siguiente:
protoPayload.serviceName="privateca.googleapis.com"
Cloud Monitoring se puede utilizar para monitorear las operaciones realizadas en los recursos del Servicio de autoridad de certificación.
Utilice las siguientes instrucciones para habilitar las alertas recomendadas.
Vaya a la página Descripción general del servicio de CA en la consola de Google Cloud.
En la parte superior derecha de la página Descripción general, haga clic en + 5 alertas recomendadas .
Activa o desactiva cada alerta, leyendo su descripción.
Algunas alertas admiten umbrales personalizados. Por ejemplo, puede especificar cuándo desea recibir una alerta sobre un certificado de CA que vence o la tasa de error para una tasa alta de fallas en la creación de certificados.
Todas las alertas admiten canales de notificación.
Haga clic en Enviar una vez que haya habilitado todas las alertas deseadas.
Políticas y plantillas de certificados de documentos
Restricciones de identidad
Restricciones de extensión
Condiciones clave de uso
Identificadores de políticas
Extensiones
Para mitigar el riesgo de abuso, se deben revisar las políticas de certificados para garantizar que las plantillas tengan una funcionalidad aprobada y definida.
Crear un plan de respuesta de compromiso de CA
Educar a todas las partes interesadas
Revisar las políticas de seguridad y comunicación de CA al menos una vez al año.
Establecer planes de CA de respaldo
CA de inventario
Verificar que solo se utilicen CA aprobadas
Asegúrese de que solo se confíe en las raíces aprobadas
Inventario de CA raíz en las que se confía en los sistemas de terceros
Revisar y verificar permisos para plantillas de certificados existentes
Hacer cumplir la verificación de revocación en los sistemas de terceros que confían
Habilitar registros de auditoría y alertas
Identifique el compromiso basándose en el diseño de alertas e informes
Establecer una comprensión clara de lo que ocurrió.
Quién detectó el incidente.
Si está disponible, quién perpetró el incidente.
Cuando la CA se vio comprometida.
Dónde ocurrió el incidente.
Qué raíces, subCA y número de certificados de usuario final afectados por el incidente.
La causa subyacente que se cree del incidente.
Qué medidas correctivas se tomaron o se tomarán para abordar la causa subyacente del incidente.
Una lista de certificados y dominios involucrados en la infracción.
¿Cómo se detectó el incidente?
Descripción detallada del exploit.
Detalles sobre qué infraestructura se vio comprometida.
Detalles sobre cómo se vio comprometida la infraestructura.
Una cronología detallada de los acontecimientos.
¿Se detectó la vulnerabilidad mediante operaciones normales? Si no fue así, ¿por qué?
¿Se descubrió la vulnerabilidad en la auditoría más reciente? En caso afirmativo, ¿se solucionó la vulnerabilidad? Si no se solucionó la vulnerabilidad, ¿por qué no?
¿Se detectó esta vulnerabilidad en la auditoría más reciente? En caso contrario, explique por qué.
¿Qué cambios de política es necesario hacer?
Cualquier otra información pertinente.
Activar el equipo de respuesta a incidentes
Contener y aislar el entorno de CA afectado a. Para impedir que una CA pueda emitir certificados, consulte
Establecer un plan para comunicar el impacto y las mitigaciones a seguir a las partes interesadas afectadas (internas/externas)
Al finalizar una investigación y una contención verificada, realice lo siguiente:
Revocar y restablecer las credenciales de cualquier identidad comprometida que se haya asignado a una función que proporcione permisos elevados para las CA y las políticas/plantillas asociadas.referencia-1 y referencia-2
Revocar las CA comprometidas y los certificados asociados y establecer nuevas referencias de CA
Agregar a CRL/actualizar estado en OCSP Responder (si no está automatizado) para notificar a los sujetos, partes confiantes y proveedores
Revocar certificados existentes y volver a emitir certificados de referencia de nuevas CA
Eliminar/reemplazar certificados raíz
Validar que la verificación de revocación esté habilitada en los sistemas de terceros
Validar reemplazos de certificados y raíz
Seguimiento e informe sobre el progreso
Consulte el costo mensual estimado para ejecutar este entorno de demostración a continuación. Tenga en cuenta que esto se estimó en el momento de la creación del patrón, la estimación puede cambiar con el tiempo y puede variar según la región; revise el costo de cada recurso en la Calculadora de precios de Google Cloud.
SKU de DevOps | SKU empresarial | |
---|---|---|
Tarifa mensual de CA | $20 | $200 |
Tarifas de certificado | 0-50K @ $0.3 50.000 -100.000 a 0,03 $ 100.000+ a $0,0009 Niveles ENTRE CA | 0-50K @ $0.5 50.000 -100.000 a 0,05 USD 100.000+ a 0,001 $ Niveles ENTRE CA |
Soporte HSM para clave CA | ||
Tecla BYO CA | incógnita | |
Certificados rastreados y revocados | incógnita | |
QPS | 25 | 7 |
Optimizado para... | Alto volumen, corta duración | Volumen bajo, larga duración |
Descripción general de CAS
Presentamos el blog de CAS
Vídeos instructivos de CAS
Repositorio CAS GitHub