Configuración del cifrado secreto de clúster

Nube privada virtual Infraestructura clásica Satellite

Después de crear un clúster, puede proteger los secretos de Kubernetes y cualquier credencial almacenada en sus secretos habilitando un proveedor de servicios de gestión de claves (KMS), como IBM® Key Protect for IBM Cloud®.

Habilitación del cifrado secreto desde la CLI

Puede habilitar un proveedor de KMS, actualizar la instancia del proveedor de KMS o actualizar la clave raíz a través de la CLI.

La configuración del cifrado entre cuentas utilizando un KMS en una cuenta diferente está soportada en la CLI o la API.

  1. Cree una instancia de KMS y una clave raíz. Si desea utilizar el cifrado de KMS entre cuentas, asegúrese de crear el KMS y la clave raíz en la cuenta cuya instancia de KMS desea utilizar.

  2. Obtenga el ID de la instancia de KMS que ha creado anteriormente.

    ibmcloud oc kms instance ls
    
  3. Obtenga el ID de la clave raíz que ha creado anteriormente.

    ibmcloud oc kms crk ls --instance-id KMS_INSTANCE_ID
    
  4. Habilite el proveedor de KMS para cifrar secretos en el clúster. Completa las opciones con la información que has recuperado previamente. El punto final de servicio en la nube privado del proveedor KMS se utiliza de forma predeterminada para descargar las claves de cifrado. Para utilizar en su lugar el punto de conexión del servicio en la nube pública, incluye la opción « --public-endpoint ». El proceso de habilitación puede tardar un rato en completarse.

    ibmcloud oc kms enable -c CLUSTER_NAME_OR_ID --instance-id KMS_INSTANCE_ID --crk ROOT_KEY_ID [--public-endpoint]
    

    Durante la habilitación, es posible que no pueda acceder al nodo maestro de Kubernetes, como en el caso de actualización de configuraciones de YAML para despliegues.

  5. Verifique que el proceso de habilitación de KMS ha finalizado. El proceso finaliza cuando el estado del nodo maestro (Master Status) es Ready y el servicio de gestión de claves está habilitado (Key management service tiene el valor enabled).

    ibmcloud oc cluster get -c CLUSTER_NAME_OR_ID
    

    Salida de ejemplo cuando la habilitación está en curso

    NAME:                   <cluster_name>
    ID:                     <cluster_ID>
    ...
    Master Status:          Key management service feature enablement in progress.
    

    Salida de ejemplo cuando el nodo maestro está listo

    NAME:                   <cluster_name>
    ID:                     <cluster_ID>
    ...
    Master Status:          Ready (1 min ago)
    ...
    Key Management Service: enabled
    

    Después de habilitar el proveedor de KMS en el clúster, todos los secretos de clúster se cifran automáticamente.

  6. Opcional: compruebe que los secretos se han cifrado.

La habilitación de claves, que se inicia a través de Red Hat OpenShift, significa que el cifrado cambia a una nueva clave del proveedor de KMS. La rotación de claves, que se inicia a través del proveedor de KMS, significa que el cifrado cambia a una nueva versión de la clave existente. No elimine ninguna clave raíz en su instancia KMS si esta es rotada por el proveedor de KMS. Una clave raíz solo puede eliminarse cuando ya no se utiliza. Por ejemplo, después de habilitar una nueva clave y verificar que el clúster ya no utiliza la clave antigua, puede eliminar la clave antigua. Si suprime una clave raíz que utiliza un clúster, el clúster deja de ser utilizable, pierde todos sus datos y no se puede recuperar. Cuando se rota una clave raíz, no se puede reutilizar una clave raíz anterior para el mismo clúster. Del mismo modo, si inhabilita una clave raíz, las operaciones que dependen de los secretos de lectura fallan. Sin embargo, a diferencia de lo que ocurre al eliminar una clave raíz, puedes volver a habilitar una clave desactivada para que tu clúster vuelva a estar operativo.

Habilitación del cifrado secreto desde la consola

Puede habilitar un proveedor de KMS, actualizar la instancia del proveedor de KMS o actualizar la clave raíz a través de la consola de IBM Cloud.

  1. Cree una instancia de KMS y una clave raíz. Si desea utilizar el cifrado de KMS entre cuentas, asegúrese de crear el KMS y la clave raíz en la cuenta cuya instancia de KMS desea utilizar.

  2. En la consola, selecciona el clúster para el que deseas habilitar el cifrado.

  3. En la sección Servicio de gestión de claves, haga clic en Habilitar. Si ha habilitado el proveedor de KMS, pulse Actualizar.

  4. Seleccione la Instancia de servicio de gestión de claves y la Clave raíz que desea utilizar para el cifrado.

    Durante la habilitación, es posible que no pueda acceder al nodo maestro de Kubernetes, como en el caso de actualización de configuraciones de YAML para despliegues.

  5. Pulse Habilitar (o Actualizar).

  6. Verifique que el proceso de habilitación de KMS ha finalizado. Salida de ejemplo cuando la habilitación está en curso.

    Master status   KMS feature enablement in progress.
    

    Salida de ejemplo cuando el nodo maestro está preparado.

    Master status   Ready
    

    Después de habilitar el proveedor de KMS en el clúster, todos los secretos de clúster se cifran automáticamente.

  7. Opcional: compruebe que los secretos se han cifrado.

La habilitación de claves, que se inicia a través de Red Hat OpenShift, significa que el cifrado cambia a una nueva clave del proveedor de KMS. La rotación de claves, que se inicia a través del proveedor de KMS, significa que el cifrado cambia a una nueva versión de la clave existente. No elimine ninguna clave raíz en su instancia KMS si esta es rotada por el proveedor de KMS. Una clave raíz solo puede eliminarse cuando ya no se utiliza. Por ejemplo, después de habilitar una nueva clave y verificar que el clúster ya no utiliza la clave antigua, puede eliminar la clave antigua. Si suprime una clave raíz que utiliza un clúster, el clúster deja de ser utilizable, pierde todos sus datos y no se puede recuperar. Cuando se rota una clave raíz, no se puede reutilizar una clave raíz anterior para el mismo clúster. Del mismo modo, si inhabilita una clave raíz, las operaciones que dependen de los secretos de lectura fallan. Sin embargo, a diferencia de lo que ocurre al eliminar una clave raíz, puedes volver a habilitar una clave desactivada para que tu clúster vuelva a estar operativo.

Rotación de la clave raíz para el clúster

Para rotar la clave raíz que se utiliza para cifrar el clúster, repita los pasos para habilitar el cifrado KMS. Cuando se rota una clave raíz, no se puede reutilizar una clave raíz anterior para el mismo clúster.

Puede rotar la clave raíz manualmente desde la instancia de KMS. Esta acción vuelve a habilitar automáticamente el KMS en el clúster con la nueva clave raíz. Para girar las teclas manualmente, consulta Girar las teclas.

Verificación del cifrado de secretos

Después de habilitar un proveedor KMS en el clúster de Red Hat OpenShift on IBM Cloud, puede verificar que los secretos del clúster están cifrados inhabilitando la clave raíz. Cuando se inhabilita la clave raíz, el clúster ya no puede descifrar los secretos y queda inutilizable, lo que significa que los secretos se han cifrado.

Asegúrese de tener el rol de plataforma de Administrador de IBM Cloud IAM y el rol de acceso al servicio de Gestor para el clúster.

  1. Para comprobar que el cifrado KMS está habilitado, verifique que el estado del servicio de gestión de claves (Key Management Service) esté establecido en enabled en la salida del siguiente mandato.

    ibmcloud oc cluster get -c <cluster_name_or_ID>
    
  2. Acceda al clúster de Red Hat OpenShift.

  3. Verifique que puede obtener una lista de los secretos del clúster.

    oc get secrets --all-namespaces
    
  4. En la instancia de KMS, inhabilite la clave raíz que se utiliza para cifrar el clúster. Si ha cifrado el clúster con un KMS y una CRK de una cuenta diferente, la CRK sólo se puede inhabilitar desde la cuenta donde se encuentra.

  5. Espere a que el clúster detecte el cambio en la clave raíz.

  6. Intente obtener una lista de sus secretos. Obtendrá un error de tiempo de espera porque ya no se puede conectar con el clúster. Si intenta establecer el contexto para el clúster ejecutando ibmcloud oc cluster config, el mandato falla.

    oc get secrets --all-namespaces
    

    Salida de ejemplo

    Unable to connect to the server: dial tcp 169.48.110.250:32346: i/o timeout
    
  7. Compruebe que el clúster esté en un estado de aviso. El clúster permanece en este estado y no se puede utilizar hasta que vuelva a habilitar la clave raíz.

    ibmcloud oc cluster get -c <cluster_name_or_ID>
    
  8. En tu instancia de KMS, activa la clave raíz para que tu clúster vuelva a su estado normal y pueda volver a utilizarse.