Compartir a través de


Entidad de certificación (CA) personalizada en Azure Kubernetes Service (AKS)

La entidad de certificación personalizada (CA) permite agregar hasta 10 certificados codificados en base64 al almacén de confianza del nodo. Esta característica suele ser necesaria cuando es necesario que las CA estén presentes en el nodo, por ejemplo, al conectarse a un registro privado.

En este artículo se muestra cómo crear entidades de certificación personalizadas y aplicarlas a los clústeres de AKS.

Note

La función de Confianza CA Personalizada añade sus certificados personalizados al almacén de confianza del sistema del nodo de AKS. Los certificados añadidos mediante esta función no estarán disponibles para los contenedores que se ejecutan en pods. Si los certificados también son necesarios dentro de los contenedores, debe agregarlos por separado, ya sea agregándolos a la imagen usada por los pods o al momento de ejecución mediante el uso de scripts y un recurso secreto.

Prerequisites

  • Suscripción a Azure. If you don't have an Azure subscription, create a free account.
  • Necesita la versión 2.72.0 o posterior de la CLI de Azure instalada y configurada. Para buscar la versión de la CLI, ejecute az --version. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.
  • Cadena de certificado codificada en base64 o un archivo de texto con certificado.

Limitations

  • No se admiten los grupos de nodos de Windows.
  • No se admite la instalación de diferentes CA en el mismo clúster.

Instalación de las CA en el almacén de confianza del nodo

  1. Cree un archivo que contenga entidades de certificación.

    Cree un archivo de texto que contenga hasta 10 certificados separados por líneas en blanco. Cuando este archivo se pasa al clúster, estos certificados se instalan en los almacenes de confianza del nodo.

    Archivo de texto de ejemplo:

        -----BEGIN CERTIFICATE-----
        cert1
        -----END CERTIFICATE-----
    
        -----BEGIN CERTIFICATE-----
        cert2
        -----END CERTIFICATE-----
    

    Antes de continuar con el paso siguiente, asegúrese de que no haya espacios en blanco en el archivo de texto. Estos espacios en blanco producirán un error en el paso siguiente si no se quitan.

  2. Usa el az aks create o az aks update para pasar certificados al clúster. Una vez completada la operación, los certificados se instalan en los almacenes de confianza del nodo.

    • Instale las CA durante la creación del clúster mediante el comando az aks create y especifique el archivo de texto para el parámetro --custom-ca-trust-certificates.

      az aks create \
          --resource-group <resource-group-name> \
          --name <cluster-name> \
          --node-count 2 \
          --custom-ca-trust-certificates FileWithCAs \
          --generate-ssh-keys
      
    • Instale CAs durante la actualización del clúster utilizando el comando az aks update y especifique su archivo de texto para el parámetro --custom-ca-trust-certificates.

      az aks update \
          --resource-group <resource-group-name> \
          --name <cluster-name> \
          --custom-ca-trust-certificates <path-to-ca-file>
      

    Note

    Esta operación desencadena una actualización del modelo para asegurarse de que todos los nodos existentes tienen instaladas las mismas CA para el aprovisionamiento correcto. AKS crea nuevos nodos, purga los nodos existentes, elimina los nodos existentes y los reemplaza por los nodos que tienen instalado el nuevo conjunto de CA.

  3. Compruebe que las CA están instaladas.

Use el az aks show comando para comprobar que las CA están instaladas.

az aks show -g <resource-group-name> -n <cluster-name> | grep securityProfile -A 4

La salida securityProfile debe incluir los certificados de confianza de CA personalizados.

  "securityProfile": {
    "azureKeyVaultKms": null,
    "customCaTrustCertificates": [
        "values"

Troubleshooting

Formatting error

Agregar certificados a un clúster puede producir un error si el archivo con los certificados no tiene el formato correcto.

failed to decode one of SecurityProfile.CustomCATrustCertificates to PEM after base64 decoding

Si se produce este error, debe comprobar que el archivo de entrada no tiene líneas, espacios en blanco ni datos adicionales que no tengan el formato correcto de los certificados, como se muestra en el archivo de ejemplo.

La característica está habilitada y se agrega el secreto con entidades de certificación, pero se producen errores en las operaciones con el certificado X.509 firmado por un error de entidad desconocida.

Certificados con formato incorrecto pasados en el secreto

AKS requiere que los certificados pasados en el secreto creado por el usuario tenga el formato correcto y la codificación base64. Asegúrese de que las entidades de certificación que ha pasado están codificadas correctamente en base64 y que los archivos con entidades de certificación no tienen saltos de línea CRLF.

Los certificados pasados a --custom-ca-trust-certificates no deben estar codificados en base64.

Containerd no recoge nuevos certificados

En el shell del nodo, ejecute systemctl restart containerd. Una vez reiniciado containerd, el entorno de ejecución del contenedor acepta los nuevos certificados.

Next steps

Para obtener más información sobre los procedimientos recomendados de seguridad de AKS, puede consultar los Procedimientos recomendados para administrar la seguridad y las actualizaciones de los clústeres en Azure Kubernetes Service (AKS).