En esta página se describen los pasos para crear una autoridad de certificación (CA) raíz en Google Distributed Cloud (GDC) air-gapped.
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 de la PKI. Para usar certificados en una infraestructura de clave pública, los dispositivos, el software y los componentes deben confiar en la AC raíz. Esta configuración asegura la confianza en todos los certificados emitidos por la AC raíz, lo que permite confiar en la propia PKI.
Antes de empezar
Para obtener los permisos que necesitas para crear una autoridad de certificación raíz, pide al administrador de gestión de identidades y accesos de tu organización que te asigne el rol Administrador del servicio de autoridad de certificación (certificate-authority-service-admin
). Para obtener más información sobre los roles, consulta Definiciones de roles.
Obtener el archivo kubeconfig
Para ejecutar comandos en el servidor de la API Management, asegúrate de tener los siguientes recursos:
Inicia sesión y genera el archivo kubeconfig del servidor de la API Management si no tienes uno.
Usa la ruta al archivo kubeconfig del servidor de la API de gestión para sustituir
MANAGEMENT_API_SERVER_KUBECONFIG
en estas instrucciones.
Crear una autoridad de certificación raíz
Para crear una CA raíz, aplica un recurso personalizado a tu instancia aislada de Distributed Cloud.
Crea un recurso
CertificateAuthority
y 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_ENABLED
Sustituye las siguientes variables:
Variable Descripción ROOT_CA_NAME Nombre de la CA 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 Duración solicitada del certificado de la CA. SECRET_NAME El nombre del secreto de Kubernetes que contiene la clave privada y el certificado de CA firmado. Las siguientes variables son valores opcionales:
Variable Descripción RENEW_BEFORE El tiempo de rotación antes de que caduque el certificado de AC. ORGANIZATION Organización que se va a usar en el certificado. ORGANIZATIONAL_UNITS Unidades organizativas que se van a usar en el certificado. COUNTRIES Países que se usarán en el certificado. LOCALITIES Ciudades que se usarán en el certificado. PROVINCES Estado o provincia que se usará en el certificado. STREET_ADDRESSES Direcciones postales que se usarán en el certificado. POSTAL_CODES Códigos postales que se usarán en el certificado. EXTENDED_KEY_USAGE Uso adicional de la clave del certificado. Si se proporciona, los valores permitidos son serverAuth
yclientAuth
.KEY_ALGORITHYM Algoritmo de clave privada usado en este certificado. Los valores permitidos son RSA
,Ed25519
yECDSA
. Si no se indica el tamaño, se asigna el valor predeterminado de 256 aECDSA
y de 2048 aRSA
. El tamaño de la clave se ignora enEd25519
.KEY_SIZE El tamaño, en bits, de la clave privada de este certificado depende del algoritmo. RSA
permite 2048, 3072, 4096 u 8192 (2048 de forma predeterminada).ECDSA
permite 256, 384 o 521 (256 de forma predeterminada).Ed25519
ignora el tamaño.ACME_ENABLED Si se define como true
, la AC se ejecuta en modo ACME y genera la URL del servidor ACME. Después, puedes usar el cliente y el protocolo ACME para gestionar los certificados.Aplica el recurso personalizado a tu instancia de Distributed Cloud:
kubectl apply -f root-ca.yaml –kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG
Sustituye
MANAGEMENT_API_SERVER_KUBECONFIG
por la ruta del archivo kubeconfig del servidor de la API Management.Verifica que la CA raíz esté lista. Normalmente, la autoridad certificadora tarda unos 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" }
Mostrar autoridades de certificación
Para enumerar todos los recursos del servicio de autoridad de certificación de tu instancia de Distributed Cloud con air gap, 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