Tutorial: Adición de una condición de asignación de roles para restringir el acceso a blobs mediante Azure Portal

En la mayoría de los casos, una asignación de roles concede los permisos necesarios para los recursos de Azure. Sin embargo, en algunos casos es posible que desee proporcionar un control de acceso más preciso, para lo que puede agregar una condición de asignación de roles.

En este tutorial, aprenderá a:

  • Agregar una condición a una asignación de roles
  • Restringir el acceso a blobs en función de una etiqueta de índice de blobs

Importante

Actualmente, el control de acceso basado en atributos de Azure (Azure ABAC) está disponible con carácter general para controlar el acceso solo a Azure Blob Storage, Azure Data Lake Storage Gen2 y Azure Queues mediante los atributos request, resource, environment y principal en el nivel de rendimiento de las cuentas de almacenamiento premium y estándar. Actualmente, el atributo de recurso de metadatos del contenedor y el atributo de solicitud de inclusión de blobs de lista se encuentran en VERSIÓN PRELIMINAR. Para información completa sobre el estado de las características de ABAC para Azure Storage, consulte Estado de las características de condición en Azure Storage.

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.

Requisitos previos

Para obtener información sobre los requisitos previos para agregar o editar condiciones de asignación de roles, consulte Requisitos previos de las condiciones.

Condición

En este tutorial, restringirá el acceso a blobs con una etiqueta específica. Por ejemplo, agregue una condición a una asignación de roles para que Chandra solo pueda leer archivos con la etiqueta Project=Cascade.

Diagrama de asignación de roles con una condición.

Si Chandra intenta leer un blob sin la etiqueta Project=Cascade, no se permite el acceso.

Diagrama que muestra el acceso de lectura a blobs con la etiqueta Project=Cascade.

Este es el aspecto de la condición en el código:

(
    (
        !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
        AND NOT
        SubOperationMatches{'Blob.List'})
    )
    OR
    (
        @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'
    )
)

Paso 1: Creación de un usuario

  1. Inicie sesión en Azure Portal como propietario de una suscripción.

  2. Seleccione Microsoft Entra ID.

  3. Cree un usuario o busque uno existente. En este tutorial se usa Chandra como ejemplo.

Paso 2: Configuración del almacenamiento

  1. Cree una cuenta de almacenamiento que sea compatible con la característica de etiquetas de índice de blobs. Para obtener más información, consulte Administración y búsqueda de datos de Azure Blob con etiquetas de índice de blobs.

  2. Cree un contenedor de blobs dentro de la cuenta de almacenamiento y establezca el nivel de acceso anónimo en Privado (sin acceso anónimo).

  3. En el contenedor, seleccione Cargar para abrir el panel Cargar blob.

  4. Busque el archivo de texto que desee cargar.

  5. Seleccione Opciones avanzadas para expandir el panel.

  6. En la sección Blob index tags (Etiquetas de índice de blob), agregue la siguiente etiqueta de índice de blob al archivo de texto.

    Si no ve la sección y acaba de registrar la suscripción, es posible que tenga que esperar unos minutos hasta que los cambios se propaguen. Para obtener más información, consulte Uso de etiquetas de índice de blobs para administrar y buscar datos en Azure Blob Storage.

    Nota:

    Los blobs también admiten la capacidad de almacenar metadatos arbitrarios de clave-valor definidos por el usuario. Aunque los metadatos son similares a las etiquetas de índice de blobs, debe usar etiquetas de índice de blobs con condiciones.

    Clave Value
    Project Cascade

Captura de pantalla que muestra el panel Cargar blob con la sección Blog index tags (Etiquetas de índice de blog).

  1. Seleccione el botón Cargar para cargar el archivo.

  2. Cargue un segundo archivo de texto.

  3. Agregue la siguiente etiqueta de índice de blobs al segundo archivo de texto.

    Clave Value
    Project Baker

Paso 3: Asignación de un rol de datos de blobs de almacenamiento

  1. Abra el grupo de recursos.

  2. Seleccione Access Control (IAM) .

  3. Seleccione la pestaña Asignaciones de roles para ver las asignaciones de roles en este ámbito.

  4. Seleccione Agregar>Agregar asignación de roles. Se abre la página Agregar asignación de roles:

Captura de pantalla del menú Agregar > Agregar asignación de roles.

  1. En la pestaña Roles, seleccione el rol Lector de datos de Storage Blob.

Captura de pantalla de la página Agregar asignación de roles con la pestaña Roles.

  1. En la pestaña Miembros, seleccione el usuario que creó anteriormente.

Captura de pantalla de la página Agregar asignación de roles con la pestaña Miembros.

  1. (Opcional) En el cuadro Descripción, escriba Acceso de lectura a blobs con la etiqueta Project=Cascade.

  2. Seleccione Siguiente.

Paso 4: Incorporación de una condición

  1. En la pestaña Condiciones (opcional), seleccione Agregar condición. Aparece la página de condiciones de Agregar asignación de roles:

Captura de pantalla de la página de condiciones de Agregar asignación de roles para una nueva condición.

  1. En la sección Agregar acción, seleccione Agregar acción.

    Se muestra el panel Selección de una acción. Este panel es una lista filtrada de acciones de datos basada en la asignación de roles que será el destino de la condición. Active la casilla situada junto a Leer un blob y, a continuación, seleccione Seleccionar:

Captura de pantalla del panel Seleccionar una acción con una acción seleccionada.

  1. En la sección Generar expresión, seleccione Agregar expresión.

    Se expande la sección Expresión.

  2. Especificar los siguientes valores de la expresión:

    Configuración Valor
    Origen del atributo Resource
    Atributo Etiquetas de índice de blobs [Valores en clave]
    Clave Project
    Operador StringEqualsIgnoreCase
    Valor Cascade

Captura de pantalla de la sección Build expression (Generar expresión) para etiquetas de índice de blob.

  1. Desplácese hacia arriba hasta Tipo de editor y seleccione Código.

    La condición se muestra en forma de código. En este editor de código se pueden realizar cambios en la condición. Para volver al editor de objetos visuales, seleccione Objeto visual.

Captura de pantalla de la condición que se muestra en el editor de código.

  1. Seleccione Guardar para agregar la condición y volver a la página Agregar asignación de roles.

  2. Seleccione Siguiente.

  3. En la pestaña Revisar y asignar, seleccione Revisar y asignar para asignar el rol con una condición.

    Transcurridos unos instantes, se asigna el rol a la entidad de seguridad en el ámbito seleccionado.

Captura de pantalla de la lista de asignación de roles después de asignar el rol.

Paso 5: Asignación del rol de lector

  • Repita los pasos anteriores para asignar el rol de lector al usuario que creó anteriormente en el ámbito del grupo de recursos.

    Nota

    Normalmente no es necesario asignar el rol de lector. Sin embargo, esto se hace para que pueda probar la condición mediante Azure Portal.

Paso 6: Prueba de la condición

  1. En una nueva ventana, inicie sesión en Azure Portal.

  2. Inicie sesión como el usuario que creó anteriormente.

  3. Abra la cuenta de almacenamiento y el contenedor que ha creado.

  4. Asegúrese de que el método de autenticación esté establecido en Cuenta de usuario de Microsoft Entra y no en Clave de acceso.

Captura de pantalla del contenedor de almacenamiento con archivos de prueba.

  1. Seleccione el archivo de texto Baker.

    NO debería poder ver ni descargar el blob y se debería mostrar un mensaje de error de autorización.

  2. Seleccione el archivo de texto Cascade.

    Debería poder ver y descargar el blob.

Paso 7: Limpieza de recursos

  1. Quite la asignación de roles que agregó.

  2. Elimine la cuenta de almacenamiento de prueba que ha creado.

  3. Elimine el usuario que ha creado.

Pasos siguientes