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
- Búsqueda de Azure AI, nivel Básico o superior, con una identidad administrada.
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
Inicie sesión en Azure Portal y localice su cuenta de almacenamiento.
Seleccione Control de acceso (IAM).
Seleccione Agregar y, a continuación, seleccione Asignación de roles.
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 Seleccione Siguiente.
Seleccione Identidad administrada y, después, seleccione Miembros.
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.
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.