Compartir vía


Conexión a Azure Storage mediante una identidad administrada (Búsqueda de Azure AI)

En este artículo se explica cómo configurar una conexión de servicio de búsqueda a una cuenta de Azure Storage mediante una identidad administrada en lugar de proporcionar credenciales en la cadena de conexión.

Puede usar una identidad administrada asignada por el sistema o asignada por el usuario. Las identidades administradas son inicios de sesión de Microsoft Entra y requieren asignaciones de roles para acceder a Azure Storage.

Requisitos previos

Nota:

Si el almacenamiento está protegido por la red y se encuentra en la misma región que el servicio de búsqueda, debe usar una identidad administrada asignada por el sistema y una de las siguientes opciones de red: conectarse como un servicio de confianza o conectarse mediante la regla de instancia de recursos.

Creación de una asignación de roles en Azure Storage

  1. Inicie sesión en Azure Portal y localice su cuenta de almacenamiento.

  2. Seleccione Control de acceso (IAM).

  3. Seleccione Agregar y, a continuación, seleccione Asignación de roles.

  4. En la lista de roles de función de trabajo, seleccione los roles necesarios para el servicio de búsqueda:

    Tarea Asignación de roles
    Indexación de blobs mediante un indexador Agregar Lector de datos de Storage Blob
    Indexación de ADLS Gen2 mediante un indexador Agregar Lector de datos de Storage Blob
    Indexación de tablas mediante un indexador Agregar Lector y acceso a datos
    Indexación de archivos mediante un indexador Agregar Lector y acceso a datos
    Escribir en un almacén de conocimiento Agregar Colaborador de datos de Storage Blob para proyecciones de objetos y archivos, y Lector y acceso a datos para proyecciones de tablas.
    Escribir en una caché de enriquecimiento Agregar Colaborador de datos de Storage Blob
    Guardar el estado de la sesión de depuración Agregar Colaborador de datos de Storage Blob
  5. Seleccione Siguiente.

  6. Seleccione Identidad administrada y, después, seleccione Miembros.

  7. Filtre por identidades administradas asignadas por el sistema o identidades administradas asignadas por el usuario. Debería ver la identidad administrada que creó anteriormente para el servicio de búsqueda. Si no tiene una, consulte Configuración de la búsqueda para usar una identidad administrada. Si ya ha configurado una pero no está disponible, espere unos minutos.

  8. Seleccione la identidad y guarde la asignación de roles.

Especificación de una identidad administrada en una cadena de conexión

Una vez que tenga una asignación de roles, puede configurar una conexión a Azure Storage que funcione con ese rol.

Los indexadores usan un objeto de origen de datos para las conexiones a un origen de datos externo. En esta sección se explica cómo especificar una identidad administrada asignada por el sistema o una identidad administrada asignada por el usuario en una cadena de conexión del origen de datos. Puede encontrar más ejemplos de cadenas de conexión en el artículo sobre la identidad administrada.

Sugerencia

Puede crear una conexión de origen de datos a Azure Storage en Azure Portal, especificando una identidad administrada asignada por el usuario o por el sistema y, luego, ver la definición JSON para examinar cómo se formula la cadena de conexión.

Identidad administrada asignada por el sistema

Debe tener una identidad administrada asignada por el sistema ya configurada y debe tener una asignación de roles en Azure Storage.

En el caso de las conexiones realizadas mediante una identidad administrada asignada por el sistema, el único cambio en la definición del origen de datos es el formato de la propiedad credentials.

Proporcione un valor ResourceId que no tenga ninguna clave de cuenta ni contraseña. El valor ResourceId debe incluir el identificador de suscripción de la cuenta de almacenamiento, el grupo de recursos de la cuenta de almacenamiento y el nombre de la cuenta de almacenamiento.

POST https://[service name].search.windows.net/datasources?api-version=2024-07-01

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    }
}   

Identidad administrada asignada por el usuario

Debe tener una identidad administrada asignada por el usuario ya configurada y asociada al servicio de búsqueda, y la identidad debe tener una asignación de roles en Azure Storage.

Las conexiones realizadas a través de identidades administradas asignadas por el usuario usan las mismas credenciales que una identidad administrada asignada por el sistema, además de una propiedad de identidad adicional que contiene la colección de identidades administradas asignadas por el usuario. Solo se debe proporcionar una identidad administrada asignada por el usuario al crear el origen de datos. Establezca userAssignedIdentity en la identidad administrada asignada por el usuario.

Proporcione un valor ResourceId que no tenga ninguna clave de cuenta ni contraseña. El valor ResourceId debe incluir el identificador de suscripción de la cuenta de almacenamiento, el grupo de recursos de la cuenta de almacenamiento y el nombre de la cuenta de almacenamiento.

Proporcione un valor identity mediante la sintaxis que se muestra en el ejemplo siguiente.

POST https://[service name].search.windows.net/datasources?api-version=2024-07-01

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    },
    "identity" : { 
        "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
        "userAssignedIdentity" : "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MY-DEMO-USER-MANAGED-IDENTITY" 
    }
}   

La información de conexión y los permisos en el servicio remoto se validan en tiempo de ejecución durante la ejecución del indexador. Si el indexador se realizó correctamente, la sintaxis de conexión y las asignaciones de roles son válidas. Para más información, consulte Ejecución o restablecimiento de indexadores, aptitudes o documentos.

Acceso a datos de red seguros en cuentas de almacenamiento

Las cuentas de almacenamiento de Azure se pueden proteger aún más mediante firewalls y redes virtuales. Si desea indexar el contenido de una cuenta de almacenamiento protegida mediante un firewall o una red virtual, consulte Establecimiento de conexiones de indexador a Azure Storage como un servicio de confianza.

Consulte también