Administre los secretos de la implementación de las Operaciones IoT de Azure

Operaciones de IoT de Azure utiliza Azure Key Vault como solución de almacén administrado en la nube y utiliza la extensión de almacén secreto de Azure Key Vault para Kubernetes para sincronizar los secretos desde la nube y almacenarlos en el borde como secretos de Kubernetes. Los recursos perimetrales, como conectores y flujos de datos, pueden usar estos secretos para la autenticación al conectarse a sistemas externos.

Entre los ejemplos de secretos que puede almacenar en Azure Key Vault para su uso por Operaciones de IoT de Azure se incluyen:

  • Nombres de usuario y contraseñas para sistemas externos en los que los conectores o flujos de datos deben autenticarse.
  • Certificados X.509 y claves privadas para dispositivos o servicios que usan TLS mutua (mTLS).

Requisitos previos

Para administrar secretos, necesita una instancia de Operaciones de IoT de Azure implementada con la configuración segura. Si ha implementado Operaciones de Azure IoT con la configuración de prueba, primero debe habilitar la configuración segura.

Configuración de permisos de Azure Key Vault

Para usar la experiencia de operaciones para crear secretos en el almacén de claves, el usuario requiere permisos del Oficial de secretos de Key Vault en el nivel de recurso de Azure.

En un entorno de prueba o desarrollo, siga estos pasos para asignar el rol De oficial de secretos de Key Vault al usuario en el nivel de grupo de recursos en el que se implementan la instancia de Operaciones de IoT de Azure y la instancia de Azure Key Vault:

  1. Para buscar el nombre del grupo de recursos, vaya a la interfaz de usuario web de la experiencia de operaciones , vaya a la página Instancias y busque la instancia de Operaciones de IoT de Azure. El nombre del grupo de recursos se muestra en el campo Grupo de recursos.

  2. Vaya a Azure Portal y, a continuación, vaya al grupo de recursos donde se implementa la instancia de Operaciones de IoT de Azure y la instancia de Azure Key Vault.

    Sugerencia

    Use el cuadro de búsqueda en la parte superior de Azure Portal para encontrar rápidamente el grupo de recursos escribiendo el nombre.

  3. Seleccione Control de acceso (IAM) en el menú izquierdo. Seleccione Agregar + >Agregar asignación de roles.

  4. En la pestaña Rol , seleccione Key Vault Secrets Officer en la lista de roles y, a continuación, seleccione Siguiente.

  5. En la pestaña Miembros , seleccione Usuario, grupo o entidad de servicio, seleccione Seleccionar miembros, seleccione el usuario al que desea asignar el rol Oficial de secretos de Key Vault y, a continuación, seleccione Siguiente.

  6. Seleccione Revisar y asignar para completar la asignación de roles.

En un entorno de producción, siga los procedimientos recomendados para proteger Azure Key Vault que se usa con Operaciones de IoT de Azure. Para más información, consulte Procedimientos recomendados para usar Azure Key Vault.

Adición y uso de secretos

La administración de secretos para operaciones de Azure IoT usa la extensión de almacén de secretos de Azure Key Vault para sincronizar los secretos de un Azure Key Vault y almacenarlos en el borde como secretos de Kubernetes. Al habilitar la configuración segura durante la implementación, ha seleccionado una instancia de Azure Key Vault para la administración de secretos. En esta instancia de Key Vault, se almacenan todos los secretos que se usarán en Operaciones de IoT de Azure.

Nota

Las instancias de Operaciones de IoT de Azure solo funcionan con una instancia de Azure Key Vault; no se admiten varios almacenes de claves por instancia.

Una vez completados los pasos para configurar la administración de secretos, puede agregar secretos a Azure Key Vault y sincronizarlos con el clúster de Kubernetes para usarlos en puntos de conexión de entrada del dispositivo o puntos de conexión de flujo de datos. Los secretos suelen ser nombres de usuario, contraseñas, certificados o claves privadas necesarias para la autenticación en sistemas externos.

Puede crear un secreto sincronizado en el clúster mediante la interfaz de usuario web de la experiencia de operaciones o el CLI de Azure. Los dos flujos se superponen parcialmente: la experiencia de operaciones puede cargar un nuevo valor en Azure Key Vault y sincronizarlo con el clúster, mientras que el flujo de CLI de Azure supone que el secreto ya existe en Azure Key Vault y solo controla la sincronización:

En esta sección se utilizan los endpoints de entrada del dispositivo con autenticación mediante nombre de usuario y contraseña como ejemplo. El mismo proceso se aplica a los puntos de conexión de flujo de datos.

La experiencia de operaciones puede cargar un nuevo valor para un nombre de usuario o una contraseña en Azure Key Vault y sincronizarlo con el clúster en un paso o sincronizar un secreto de Key Vault existente en el clúster.

  1. Vaya a la página Puntos de conexión de entrada de dispositivo en la interfaz de usuario web de la experiencia de operaciones.

  2. Para agregar una nueva referencia de secreto, seleccione Agregar referencia al crear un nuevo punto de conexión de entrada de dispositivo:

    Recorte de pantalla en el que se muestran las opciones Agregar desde Azure Key Vault y Crear nuevo al seleccionar un secreto en la experiencia de operaciones.

    • Crear un nuevo secreto: crea un secreto en Azure Key Vault y sincroniza el secreto con el clúster mediante la extensión del almacén de secretos.

    • Agregar desde Azure Key Vault: sincroniza un secreto existente en el almacén de claves hasta el clúster si no estaba sincronizado antes. Al seleccionar esta opción se muestra la lista de secretos en el almacén de claves seleccionado. Solo se sincroniza la versión más reciente del secreto con el clúster.

  3. Al agregar las referencias de nombre de usuario y contraseña a los dispositivos o puntos de conexión de flujo de datos, debe asignar un nombre al secreto sincronizado. Las referencias de secretos se almacenan en el clúster bajo este nombre, actuando como un único recurso de sincronización de secretos. En el ejemplo de la captura de pantalla siguiente, las referencias de nombre de usuario y contraseña se guardan en el clúster como edp1secrets.

    Captura de pantalla que muestra el campo de nombre de secreto sincronizado cuando se selecciona el modo de autenticación con nombre de usuario y contraseña en la experiencia de operaciones.

Sincronización de un certificado de cliente y una clave privada para TLS mutua

Varios conectores son compatibles con la autenticación mTLS para orígenes de datos southbound. Con mTLS, el conector presenta un certificado de cliente y una clave privada al punto de conexión de entrada sur para autenticarse a sí mismo, además de validar el certificado TLS del servidor. Actualmente, los siguientes conectores admiten mTLS para fuentes de datos southbound:

Otros conectores, como el conector para medios y el conector para ONVIF, no admiten actualmente mTLS en orígenes de datos de entrada sur.

Para configurar mTLS en el punto de conexión de entrada del dispositivo, haga referencia a un secreto sincronizado en el clúster que contiene el certificado de cliente y la clave privada. Puede crear el secreto sincronizado con la interfaz de operaciones o con la CLI de Azure. Seleccione la pestaña que coincida con la herramienta que desea usar.

Al crear el punto de conexión de entrada y elegir el modo de autenticación de certificado X509, puede cargar un nuevo certificado y una clave privada (la experiencia de operaciones los carga en Azure Key Vault y los sincroniza) o seleccionar secretos existentes de Key Vault para sincronizarlos.

Administración de secretos sincronizados

En esta sección se usan puntos de conexión de entrada de dispositivo como ejemplo. El mismo proceso se puede aplicar a los puntos de conexión de flujo de datos:

  1. Vaya a la página Dispositivos en la interfaz de usuario web de la experiencia de operaciones.

  2. Para ver la lista de secretos, seleccione Administrar certificados y secretos y, a continuación, Secretos:

    Recorte de pantalla que muestra la lista de secretos sincronizados en la página secretos de la experiencia de operaciones.

Puede usar la página Secretos para ver los secretos sincronizados en los dispositivos y los puntos de conexión de flujo de datos. La página Secretos muestra la lista de todos los secretos sincronizados actuales en el perímetro del recurso que está viendo. Un secreto sincronizado representa una o varias referencias de secretos, según el recurso que lo use. Cualquier operación aplicada a un secreto sincronizado se aplica a todas las referencias secretas contenidas en el secreto sincronizado.

Puede eliminar secretos sincronizados de la página Secretos . Al eliminar un secreto sincronizado, solo elimina el secreto sincronizado del clúster de Kubernetes y no elimina la referencia de secreto independiente de Azure Key Vault. Debe eliminar manualmente el secreto de certificado del almacén de claves.

También puede usar el CLI de Azure para ver los secretos sincronizados en el clúster:

Advertencia

La edición directa de los recursos personalizados SecretProviderClass y SecretSync en el clúster de Kubernetes puede interrumpir el flujo de secretos en operaciones de Azure IoT. Para cualquier operación relacionada con secretos, utilice la interfaz web de la experiencia operativa.

Antes de eliminar un secreto sincronizado, asegúrese de que se quiten todas las referencias al secreto de los componentes de Operaciones de IoT de Azure.

Adición de secretos a Azure Key Vault

Si usa la experiencia de operaciones para seleccionar los secretos existentes que se agregaron anteriormente a Azure Key Vault, asegúrese de que los secretos están en un formato y codificación compatibles con Operaciones de IoT de Azure.

Para agregar un secreto de certificado PEM a Azure Key Vault, puede usar un comando como el ejemplo siguiente:

az keyvault secret set \
  --vault-name <your-key-vault-name> \
  --name client-cert-pem \
  --file ./client-cert.pem \
  --encoding hex \
  --content-type 'application/x-pem-file'

Para agregar un secreto de certificado DER binario a Azure Key Vault, puede usar un comando como el ejemplo siguiente:

az keyvault secret set \
  --vault-name <your-key-vault-name> \
  --name cert-file-der \
  --file ./cert-file.der \
  --encoding hex \
  --content-type 'application/pkix-cert'