Share via


Administre los secretos de la implementación de la versión preliminar de Operaciones de IoT de Azure

Importante

Operaciones de IoT de Azure, habilitado por Azure Arc, está actualmente en VERSIÓN PRELIMINAR. No se debería usar este software en versión preliminar en entornos de producción.

Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

La administración de secretos en la versión preliminar de Operaciones de IoT de Azure usa Azure Key Vault como solución de almacén administrado en la nube y utiliza el controlador CSI del almacén de secretos para extraer secretos de la nube y almacenarlos en el perímetro.

Requisitos previos

  • Un clúster de Kubernetes habilitado para Arc. Para obtener más información, vea Preparar el clúster.

Configuración de un almacén de secretos en el clúster

Azure IoT Operations admite Key Vault para almacenar secretos y certificados. El comando az iot ops init CLI de Azure automatiza los pasos para configurar una entidad de servicio para conceder acceso al almacén de claves y configurar los secretos que necesita para ejecutar operaciones de Azure IoT.

Para obtener más información, vea Implementación de extensiones de Operaciones de IoT de Azure (versión preliminar) en un clúster de Kubernetes.

Configuración de la entidad de servicio y Key Vault manualmente

Si la cuenta de Azure que ejecuta el comando az iot ops init no tiene permisos para consultar Microsoft Graph y crear entidades de servicio, puede preparar estos argumentos iniciales y usar argumentos adicionales al ejecutar el comando de la CLI, tal como se describe en Implementación de extensiones de operaciones de Azure IoT.

Configuración de la entidad de servicio para interactuar con Key Vault a través de Microsoft Entra ID

Siga estos pasos para crear un nuevo registro de aplicaciones para usar la aplicación de Operaciones de IoT de Azure para autenticarse en Key Vault.

En primer lugar, registre una aplicación con Microsoft Entra ID:

  1. En la barra de búsqueda de Azure Portal, busque y seleccione Microsoft Entra ID.

  2. Seleccione Registros de aplicaciones en la sección Administrar del menú Microsoft Entra ID.

  3. Seleccione Nuevo registro.

  4. En la página Registrar una aplicación, proporcione la siguiente información:

    Campo Valor
    Nombre Proporcione un nombre para la aplicación.
    Tipos de cuenta admitidos Asegúrese de que solo Cuentas de este directorio organizativo (solo<YOUR_TENANT_NAME> - Inquilino único) esté seleccionada.
    URI de redirección Seleccione Web como plataforma. Puede dejar la dirección web vacía.
  5. Seleccione Registrar.

    Cuando se crea la aplicación, se le dirige a su página de recursos.

  6. Copie la id. de aplicación (cliente) desde la página de información general del registro de la aplicación. Usará este valor como argumento al ejecutar la implementación de operaciones de IoT de Azure con el comando az iot ops init.

A continuación, asigne permisos a la aplicación para Key Vault:

  1. En la página de recursos de la aplicación, seleccione permisos de API en la sección Administrar del menú de la aplicación.

  2. Seleccione Agregar permiso.

  3. En la página Solicitud de permisos de API, desplácese hacia abajo y seleccione Azure Key Vault.

  4. Seleccione Permisos delegados.

  5. Active la casilla para seleccionar user_impersonation permisos.

  6. Seleccione Agregar permisos.

Cree un secreto de cliente que se agrega al clúster de Kubernetes para autenticarse en el almacén de claves:

  1. En la página de recursos de la aplicación, seleccione certificados y secretos en la sección Administrar del menú de la aplicación.

  2. Seleccione Nuevo secreto de cliente.

  3. Proporcione una descripción opcional para el secreto y seleccione Agregar.

  4. Copie el Valor del nuevo secreto. Usará este valor más adelante al ejecutar az iot ops init.

Recupere el identificador de objeto de la entidad de servicio:

  1. En la página información general de la aplicación, en la sección Essentials, seleccione el vínculo de nombre de aplicación en Aplicación administrada en el directorio local. Se abrirán las propiedades de la aplicación empresarial. Copie el identificador de objeto que se va a usar al ejecutar az iot ops init.

Creación de un Almacén de claves

Cree una nueva instancia de Azure Key Vault y asegúrese de que tiene el modelo de permisos establecido en directiva de acceso del almacén.

az keyvault create --enable-rbac-authorization false --name "<your unique key vault name>" --resource-group "<the name of the resource group>"

Si tiene un almacén de claves existente, puede cambiar el modelo de permisos ejecutando lo siguiente:

az keyvault update --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --enable-rbac-authorization false 

Necesitará el identificador de recurso de Key Vault al ejecutar az iot ops init. Para recuperar el identificador de recurso, ejecute:

az keyvault show --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --query id  -o tsv

Establecimiento de la directiva de acceso de la entidad de servicio en Key Vault

La entidad de servicio recién creada necesita secretolist y get directiva de acceso para que las operaciones de Azure IoT funcionen con el almacén de secretos.

Para administrar las directivas de acceso de Key Vault, la entidad de seguridad que ha iniciado sesión en la CLI necesita permisos suficientes de Azure. En el modelo de Control de acceso basado en rol (RBAC), este permiso se incluye en los roles de colaborador o superior de Key Vault.

Sugerencia

Si usó la entidad de seguridad de la CLI de inicio de sesión para crear el almacén de claves, probablemente ya tenga los permisos adecuados. Sin embargo, si apunta a un almacén de claves diferente o existente, debe comprobar que tiene permisos suficientes para establecer directivas de acceso.

Ejecute lo siguiente para asignar secretoslist y permisos get a la entidad de servicio.

az keyvault set-policy --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --object-id <Object ID copied from Enterprise Application SP in Microsoft Entra ID> --secret-permissions get list

Pasar argumentos de entidad de servicio y Key Vault a la implementación de operaciones de Azure IoT

Al seguir la guía Implementación de extensiones de Azure IoT Operations, pase marcas adicionales al comando az iot ops init para poder usar la entidad de servicio y el almacén de claves preconfigurados.

En el ejemplo siguiente se muestra cómo preparar el clúster para operaciones de Azure IoT sin implementarlo completamente mediante --no-deploy marca. También puede ejecutar el comando sin este argumento para una implementación predeterminada de operaciones de IoT de Azure.

az iot ops init --name "<your unique key vault name>" --resource-group "<the name of the resource group>" \
    --kv-id <Key Vault Resource ID> \
    --sp-app-id <Application registration App ID (client ID) from Microsoft Entra ID> \
    --sp-object-id <Object ID copied from Enterprise Application in Microsoft Entra ID> \
    --sp-secret "<Client Secret from App registration in Microsoft Entra ID>" \
    --no-deploy

Un paso que toma el comando init es asegurarse de que todas las clases de proveedor de secretos (SPC) requeridas por Operaciones de IoT de Azure tienen un secreto predeterminado configurado en el almacén de claves. Si no existe un valor para el secreto predeterminado init creará uno. Este paso requiere que la entidad de seguridad iniciada en la CLI tenga permisos de set secretos. Si desea usar un secreto existente como secreto SPC predeterminado, puede especificarlo con el parámetro --kv-sat-secret-name, en cuyo caso la entidad de seguridad registrada solo necesita permisos get secretos.

Adición de un secreto a un componente de Operaciones de IoT de Azure

Una vez configurado el almacén de secretos en el clúster, puede crear y agregar secretos de Key Vault.

  1. Cree el secreto en Key Vault con el nombre y el valor que necesite. Puede crear un secreto mediante Azure Portal o el comando az keyvault secret set.

  2. En el clúster, identifique la clase de proveedor de secretos (SPC) para el componente al que desea agregar el secreto. Por ejemplo, aio-default-spc. Use el siguiente comando para enumerar todos los SPC del clúster:

    kubectl get secretproviderclasses -A
    
  3. Abre el archivo en su editor de texto preferido. Si usa k9s, escriba e para editar.

  4. Agregue el objeto secreto a la lista en spec.parameters.objects.array. Por ejemplo:

    spec:
      parameters:
        keyvaultName: my-key-vault
        objects: |
          array:
            - |
              objectName: PlaceholderSecret
              objectType: secret
              objectVersion: ""
    
  5. Guarde los cambios y aplíquelos al clúster. Si usa k9s, los cambios se aplicarán automáticamente.

El controlador CSI actualiza los secretos mediante un intervalo de sondeo, por lo que el nuevo secreto no está disponible para el pod hasta el siguiente intervalo de sondeo. Para actualizar un componente de inmediato, reinicie los pods del mismo. Por ejemplo, para reiniciar el componente del procesador de datos, ejecute los siguientes comandos:

kubectl delete pod aio-dp-reader-worker-0 -n azure-iot-operations
kubectl delete pod aio-dp-runner-worker-0 -n azure-iot-operations

Secretos de la versión preliminar de Azure IoT MQ

Los pasos para administrar secretos con la versión preliminar de Azure Key Vault para Azure IoT MQ son diferentes. Para obtener más información, consulte Administración de secretos de MQ mediante Key Vault.