En este documento, se describen los pasos para crear una autoridad de certificación raíz (AC) en Google Distributed Cloud (GDC) aislado.
Una AC raíz, que se encuentra en la parte superior de la jerarquía de la infraestructura de clave pública (PKI), establece el anclaje de confianza para la PKI. Para usar certificados dentro de una PKI, los dispositivos, el software y los componentes deben confiar en la AC raíz. Esta configuración garantiza la confianza en todos los certificados emitidos por la AC raíz, lo que permite la confianza en la PKI.
Este documento está destinado a públicos dentro del grupo de operadores de aplicaciones, como desarrolladores de aplicaciones o científicos de datos, que administran los ciclos de vida de los certificados dentro de su proyecto. Para obtener más información, consulta Públicos para la documentación de GDC air-gapped.
Antes de comenzar
Antes de crear una autoridad de certificación raíz, debes solicitar los permisos necesarios y preparar tu entorno.
Solicita roles de IAM
Para crear, actualizar y borrar una autoridad certificadora raíz, comunícate con tu administrador de IAM de la organización para solicitar el rol Administrador del servicio de autoridad certificadora (certificate-authority-service-admin).
Prepara el entorno
Genera un archivo kubeconfig para configurar el acceso a
kubectl.
Crea una autoridad de certificación raíz
Para crear una AC raíz, aplica un recurso personalizado a tu instancia de Distributed Cloud air-gapped.
Crea un recurso
CertificateAuthorityy guárdalo como un archivo YAML llamadoroot-ca.yaml:apiVersion: pki.security.gdc.goog/v1 kind: CertificateAuthority metadata: name: ROOT_CA_NAME namespace: USER_PROJECT_NAMESPACE spec: caProfile: commonName: COMMON_NAME duration: DURATION renewBefore: RENEW_BEFORE organizations: - ORGANIZATION organizationalUnits: - ORGANIZATIONAL_UNITS countries: - COUNTRIES localities: - LOCALTIES provinces: - PROVINCES streetAddresses: - STREET_ADDRESSES postalCodes: - POSTAL_CODES caCertificate: selfSignedCA: {} certificateProfile: keyUsage: - digitalSignature - keyCertSign - crlSign extendedKeyUsage: - EXTENDED_KEY_USAGE secretConfig: secretName: SECRET_NAME privateKeyConfig: algorithm: KEY_ALGORITHM size: KEY_SIZE acme: enabled: ACME_ENABLEDReemplaza las siguientes variables:
Variable Descripción ROOT_CA_NAME El nombre de la AC raíz. USER_PROJECT_NAMESPACE El nombre del espacio de nombres en el que reside el proyecto del usuario. COMMON_NAME El nombre común del certificado de la AC. DURATION La vida útil solicitada del certificado de la AC. Especifica como una duración en horas (por ejemplo, 1000h). No se admiten unidades como días (d) o años (y) soportados.SECRET_NAME El nombre del Secret de Kubernetes que contiene la clave privada y el certificado de la AC firmado. Las siguientes variables son valores opcionales:
Variable Descripción RENEW_BEFORE El tiempo de rotación antes de que venza el certificado de la AC. ORGANIZATION Organización que se usará en el certificado. ORGANIZATIONAL_UNITS Unidades organizacionales que se usarán en el certificado. COUNTRIES Países que se usarán en el certificado. LOCALITIES Ciudades que se usarán en el certificado. PROVINCES Estados o provincias que se usarán en el certificado. STREET_ADDRESSES Direcciones que se usarán en el certificado. POSTAL_CODES Códigos postales que se usarán en el certificado. EXTENDED_KEY_USAGE El uso de clave extendida para el certificado. Si se proporciona, los valores permitidos son serverAuthyclientAuth.KEY_ALGORITHYM El algoritmo de clave privada que se usa para este certificado. Los valores permitidos son RSA,Ed25519oECDSA. Si no se proporciona el tamaño, el valor predeterminado es 256 paraECDSAy 2048 paraRSA. El tamaño de la clave se ignora paraEd25519.KEY_SIZE El tamaño, en bits, de la clave privada para este certificado depende de el algoritmo. RSApermite 2048, 3072, 4096 u 8192 (2048 predeterminado).ECDSApermite 256, 384 o 521 (256 predeterminado).Ed25519ignora el tamaño.ACME_ENABLED Si se configura como true, la AC se ejecuta en modo ACME y genera la URL del servidor ACME. Luego, puedes usar el cliente y el protocolo ACME para administrar certificados.Aplica el recurso personalizado a tu instancia de Distributed Cloud:
kubectl apply -f root-ca.yaml –kubeconfig MANAGEMENT_API_SERVER_KUBECONFIGReemplaza
MANAGEMENT_API_SERVER_KUBECONFIGpor la ruta de acceso al archivo kubeconfig del servidor de la API de administración.Verifica la preparación de la AC raíz. Por lo general, la AC tarda alrededor de 40 minutos en estar lista:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG -n USER_PROJECT_NAMESPACE get certificateauthority.pki.security.gdc.goog/ROOT_CA_NAME -ojson | jq -r ' .status.conditions[] | select( .type as $id | "Ready" | index($id))El resultado es similar al siguiente:
{ "lastTransitionTime": "2025-01-24T17:09:19Z", "message": "CA reconciled", "observedGeneration": 2, "reason": "Ready", "status": "True", "type": "Ready" }
Enumera las ACs
Para enumerar todos los recursos de Certificate Authority Service en tu instancia de Distributed Cloud air-gapped, haz lo siguiente:
Usa el parámetro certificateauthorities para enumerar todos los recursos CertificateAuthority:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG -n USER_PROJECT_NAMESPACE get certificateauthorities
El resultado es similar al siguiente:
NAMESPACE NAME READY REASON AGE
foo root-ca True Ready 7h24m
foo sub-ca True Ready 7h24m