Compartir a través de


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 quiera proporcionar un control de acceso más granular agregando 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 list blob incluye el atributo de solicitud y el atributo de solicitud de instantánea para el espacio de nombres jerárquico 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.

Prerrequisitos

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 los blobs con una etiqueta específica. Por ejemplo, agrega 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.

Así es como se ve 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: Crear 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 un usuario 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 funcionalidad 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 en 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 un archivo de texto para cargarlo.

  5. Seleccione Opciones avanzadas para expandir el panel.

  6. En la sección Etiquetas de índice de blobs , agregue la siguiente etiqueta de índice de blobs 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 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 pares de clave y valor definidos por el usuario. Aunque los metadatos son similares a las etiquetas de índice de blobs, debe usar las etiquetas de índice de blobs para las condiciones.

    Clave Importancia
    Proyecto 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 Importancia
    Proyecto Panadero

Paso 3: Asignar un rol de datos de blob de almacenamiento

  1. Abra el grupo de recursos.

  2. Seleccione Control de acceso (IAM).

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

  4. Seleccione Agregar>Agregar asignación de rol. La página Asignar roles se abre:

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: Agregar una condición

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

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

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

    Aparece el panel Seleccionar 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. Marque la casilla junto a Leer un blob y seleccione Seleccionar:

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

  1. En la sección Build expression (Expresión de compilación), seleccione Add expression (Agregar expresión).

    La sección Expresión se expande.

  2. Especifique la siguiente configuración de expresión:

    Configuración Importancia
    Origen de atributo Recurso
    Atributo Etiquetas de índice de blobs [Valores de la clave]
    Clave Proyecto
    Operator StringEqualsIgnoreCase
    Importancia Cascade

Captura de pantalla de la sección Construcción de expresión para etiquetas de índice de blobs.

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

    La condición se muestra como código. Puede realizar cambios en la condición en este editor de código. Para volver al editor visual, seleccione Visual.

Captura de pantalla de la condición mostrada 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: Asignar el rol lector

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

    Nota:

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

Paso 6: Probar 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 creó.

  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 Cascade text file (Archivo de texto en cascada).

    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 creó.

Pasos siguientes