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
.
Si Chandra intenta leer un blob sin la etiqueta Project=Cascade
, no se permite el acceso.
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
Inicie sesión en Azure Portal como propietario de una suscripción.
Seleccione Microsoft Entra ID.
Cree un usuario o busque uno existente. En este tutorial se usa Chandra como ejemplo.
Paso 2: Configuración del almacenamiento
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.
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).
En el contenedor, seleccione Cargar para abrir el panel Cargar blob.
Busque el archivo de texto que desee cargar.
Seleccione Opciones avanzadas para expandir el panel.
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
Seleccione el botón Cargar para cargar el archivo.
Cargue un segundo archivo de texto.
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
Abra el grupo de recursos.
Seleccione Access Control (IAM) .
Seleccione la pestaña Asignaciones de roles para ver las asignaciones de roles en este ámbito.
Seleccione Agregar>Agregar asignación de roles. Se abre la página Agregar asignación de roles:
- En la pestaña Roles, seleccione el rol Lector de datos de Storage Blob.
- En la pestaña Miembros, seleccione el usuario que creó anteriormente.
(Opcional) En el cuadro Descripción, escriba Acceso de lectura a blobs con la etiqueta Project=Cascade.
Seleccione Siguiente.
Paso 4: Incorporación de una condición
- En la pestaña Condiciones (opcional), seleccione Agregar condición. Aparece la página de condiciones de Agregar asignación de roles:
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:
En la sección Generar expresión, seleccione Agregar expresión.
Se expande la sección Expresión.
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
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.
Seleccione Guardar para agregar la condición y volver a la página Agregar asignación de roles.
Seleccione Siguiente.
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.
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
En una nueva ventana, inicie sesión en Azure Portal.
Inicie sesión como el usuario que creó anteriormente.
Abra la cuenta de almacenamiento y el contenedor que ha creado.
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.
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.
Seleccione el archivo de texto Cascade.
Debería poder ver y descargar el blob.
Paso 7: Limpieza de recursos
Quite la asignación de roles que agregó.
Elimine la cuenta de almacenamiento de prueba que ha creado.
Elimine el usuario que ha creado.