Añadir CAs personalizadas al paquete de confianza del sistema

En esta página se explica cómo añadir certificados de autoridades de certificación (ACs) personalizadas al paquete de confianza del sistema en Google Distributed Cloud (GDC) air-gapped. Un paquete de confianza es un conjunto de ACs de confianza que los servicios de tu organización utilizan para verificar la identidad de otros servicios. Si añades tus propias ACs personalizadas, puedes controlar qué certificados confía tu organización, lo que permite establecer conexiones seguras con tus recursos internos y otros endpoints de confianza.

En esta página se explica cómo añadir ACs personalizadas al paquete de confianza del sistema trust-store-root-ext. Cuando modificas el paquete de confianza trust-store-root-ext, los cambios se propagan automáticamente al paquete trust-store-global-root-ext, lo que hace que tus ACs personalizadas estén disponibles en todas las zonas.

Esta página está dirigida a los usuarios del grupo de administradores de la plataforma (como los administradores de TI) que necesitan gestionar y proteger los recursos de su organización en GDC. Para obtener más información, consulta el artículo Audiencias de la documentación de GDC air-gapped.

Antes de empezar

Para añadir certificados de ACs personalizadas al paquete de confianza del sistema, debes solicitar los permisos necesarios y preparar tu entorno.

Solicitar roles de IAM

Para crear, leer, actualizar y eliminar secretos, ponte en contacto con el administrador de IAM de tu organización y solicita el rol Administrador del almacén de confianza (trust-store-admin).

Prepara tu entorno

Generar un archivo kubeconfig

Sigue estos pasos para generar el archivo kubeconfig del clúster de infraestructura de la organización y definirlo como la variable KUBECONFIG para usarlo más adelante.

  1. Consulta todas las zonas disponibles:

    gdcloud zones list
    

    Apunta el nombre de la zona que aloja tu recurso personalizado.

  2. Define la variable de entorno ZONE como la zona que aloja el clúster de infraestructura de la organización:

    export ZONE="ZONE"
    

    Sustituye ZONE por el nombre de la zona.

  3. Define la variable de entorno ORG_INFRA_CLUSTER:

    export ORG_INFRA_CLUSTER="ORG_NAME-infra"
    

    Sustituye ORG_NAME por el nombre de tu organización, como org-1.

  4. Genera el archivo kubeconfig del clúster de infraestructura de la organización para la zona de destino y valida las credenciales:

    export KUBECONFIG=${HOME}/${ORG_INFRA_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${ORG_INFRA_CLUSTER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${ORG_INFRA_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    El comando rm ${KUBECONFIG:?} elimina el archivo kubeconfig del directorio principal. Cuando generas un archivo kubeconfig, se sobrescribe el archivo anterior. Si no quieres sobrescribir ni eliminar el archivo anterior, haz una copia de seguridad en otra ubicación segura.

Añadir ACs personalizadas al paquete de confianza del sistema

Para añadir ACs personalizadas al paquete de confianza del sistema trust-store-root-ext, debes preparar el recurso de AC personalizada y, a continuación, aplicarlo al clúster de infraestructura de la organización.

  1. Define la variable de entorno para el archivo PEM de tu AC personalizada:

    export CUSTOM_CA_PEM_FILE=CUSTOM_CA_PEM_FILE
    

    Sustituye CUSTOM_CA_PEM_FILE por la ruta del archivo que contiene los certificados de tu AC personalizada, codificados en formato PEM.

  2. Codifica los certificados de AC mediante base64:

    export ENCODED_CA=$(cat "${CUSTOM_CA_PEM_FILE:?}" | base64 -w 0)
    
  3. Crea el archivo YAML secreto (custom-ca.yaml) que tiene como destino el paquete de confianza del sistema trust-store-root-ext:

    cat > custom-ca.yaml <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        security.private.gdc.goog/bundles: trust-store-root-ext
      name: custom-ca
      namespace: cert-manager
    data:
      ca.crt: ${ENCODED_CA:?}
    EOF
    

    A continuación, se muestra un ejemplo de archivo custom-ca.yaml:

    apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        security.private.gdc.goog/bundles: trust-store-root-ext
      name: custom-ca
      namespace: cert-manager
    data:
       ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSU...LQWZRSUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    
  4. Aplica el secreto al clúster de infraestructura de la organización mediante el comando kubectl:

     kubectl apply -f custom-ca.yaml --kubeconfig ${KUBECONFIG:?}
    

    Con este paso, tus ACs personalizadas estarán disponibles para los servicios de GDC, ya que se actualizarán automáticamente los paquetes de confianza trust-store-root-ext y trust-store-global-root-ext.

Verificar que las ACs estén disponibles

Comprueba que tus ACs personalizadas se hayan añadido al paquete de confianza:

  1. Descarga la versión más reciente del paquete de confianza trust-store-root-ext siguiendo los pasos que se indican en el artículo Obtener paquetes de confianza de GDC.

    Si quieres obtener las ACs personalizadas de otra zona, usa el paquete de confianza trust-store-global-root-ext.

  2. Abre el archivo del paquete de confianza descargado y comprueba que esté presente cada certificado de AC personalizada especificado por CUSTOM_CA_PEM_FILE.

    Busca cada certificado de AC personalizada por separado. El orden en que aparecen puede variar y no se garantiza que aparezcan al final de la lista.

    A continuación, se muestra un ejemplo de trust-store-root-ext:

    -----BEGIN CERTIFICATE-----
    MIIC8DCCAdigAwIBAgIQPLOPa...
    -----END CERTIFICATE-----
    ... other CAs ...
    -----BEGIN CERTIFICATE-----
       < Imported CA data>
    -----END CERTIFICATE-----
    ... other CAs ...
    -----BEGIN CERTIFICATE-----
    MIIDAzCCAeugAwIBAgIRAIV2...
    -----END CERTIFICATE-----