¿Qué es el control de acceso basado en atributos de Azure (Azure ABAC)?
El control de acceso basado en atributos (ABAC) es un sistema de autorización que define el acceso en función de los atributos asociados a las entidades de seguridad, los recursos y el entorno de una solicitud de acceso. Con ABAC, puede conceder a una entidad de seguridad acceso a un recurso en función de los atributos. Azure ABAC hace referencia a la implementación del control de acceso basado en atributos para Azure.
¿Qué son las condiciones de asignación de roles?
El control de acceso basado en roles de Azure (Azure RBAC) es un sistema de autorización que ayuda a administrar quién tiene acceso a los recursos de Azure, qué puede hacer con esos recursos y a qué áreas puede acceder. En la mayoría de los casos, Azure RBAC proporcionará la administración de acceso que necesita mediante definiciones de roles y asignaciones de roles. Pero en algunos casos es posible que quiera proporcionar una administración de acceso más precisa o simplificar la administración de cientos de asignaciones de roles.
Azure ABAC se basa en Azure RBAC con la adición de condiciones de asignación de roles basadas en atributos en el contexto de acciones específicas. Una condición de asignación de roles es una comprobación adicional que puede agregar opcionalmente a la asignación de roles para proporcionar un control de acceso más preciso. Una condición filtra los permisos concedidos como parte de la definición de roles y la asignación de roles. Por ejemplo, puede agregar una condición que requiera que un objeto tenga una etiqueta específica para leer el objeto. No se puede denegar explícitamente el acceso a recursos específicos mediante condiciones.
¿Por qué usar condiciones?
El uso de condiciones de asignación de roles ofrece tres ventajas principales:
- Proporcionar un control de acceso más preciso: una asignación de roles usa una definición de roles con acciones y acciones de datos para conceder permisos a una entidad de seguridad. Puede escribir condiciones para filtrar esos permisos para un control de acceso más preciso. También puede agregar condiciones a acciones específicas. Por ejemplo, puede conceder a John acceso de lectura a los blobs de la suscripción solo si los blobs tienen la etiqueta Project=Blue.
- Ayudar a reducir el número de asignaciones de roles: cada suscripción de Azure tiene actualmente un límite de asignación de roles. Hay escenarios que requieren miles de asignaciones de roles. Todas esas asignaciones de roles tendrían que administrarse. En estos escenarios, podría agregar condiciones para usar una cantidad de asignaciones de roles considerablemente menor.
- Usar atributos que tienen un significado empresarial específico: las condiciones le permiten usar atributos que tienen un significado empresarial específico en el control de acceso. Algunos ejemplos de atributos son el nombre del proyecto, la fase de desarrollo de software y los niveles de clasificación. Los valores de estos atributos de recursos son dinámicos y cambian a medida que los usuarios se mueven entre equipos y proyectos.
Escenarios de ejemplo para condiciones
Hay varios escenarios en los que es posible que desee agregar una condición a la asignación de roles. Estos son algunos ejemplos.
- Acceso de lectura a blobs con la etiqueta Project=Cascade.
- Nuevos blobs que deben incluir la etiqueta Project=Cascade.
- Blobs existentes que deben etiquetarse con al menos una clave de proyecto o clave de programa.
- Blobs existentes que deben etiquetarse con una clave de proyecto y los valores Cascade, Baker o Skagit.
- Lectura, escritura o eliminación de blobs en contenedores denominados blobs-example-container.
- Acceso de lectura a blobs en contenedores denominados blobs-example-container con una ruta de acceso de solo lectura.
- Acceso de escritura a blobs en contenedores denominados Contosocorp con una ruta de acceso de uploads/contoso.
- Acceso de lectura a blobs con la etiqueta Program=Alpine y una ruta de acceso de registros.
- Acceso de lectura a blobs con la etiqueta Project=Baker y el usuario tiene un atributo de coincidencia Project=Baker
- Acceso de lectura a blobs durante un intervalo de fecha y hora específico.
- Acceso de escritura a blobs solo a través de un vínculo privado o desde una subred específica.
A fin de obtener más información sobre cómo crear estos ejemplos, vea Ejemplo de condiciones de asignación de roles de Azure para Blob Storage.
¿Dónde se pueden agregar condiciones?
Actualmente, se pueden agregar condiciones a asignaciones de roles integradas o personalizadas que tienen acciones de datos de Blob Storage o Queue Storage. Las condiciones se agregan en el mismo ámbito que la asignación de roles. Al igual que con las asignaciones de roles, debe tener permisos Microsoft.Authorization/roleAssignments/write
para agregar una condición.
Estos son algunos de los atributos de Blob Storage que puede usar en sus condiciones.
- Nombre de cuenta
- Etiquetas de índice de blobs
- Ruta del blob
- Prefijo de blobs
- Nombre del contenedor
- Nombre del ámbito de cifrado
- Es la versión actual
- Está habilitado un espacio de nombres jerárquico
- Es un vínculo privado
- Instantánea
- UTC ahora (la fecha y hora actuales en hora universal coordinada)
- Id. de la versión
¿Qué aspecto tiene una condición?
Puede agregar condiciones a asignaciones de roles nuevas o existentes. Este es el rol Lector de datos de blobs de almacenamiento que se ha asignado a un usuario denominado Chandra en un ámbito de grupo de recursos. También se ha agregado una condición que solo permite el acceso de lectura a blobs con la etiqueta Project=Cascade.
Si Chandra intenta leer un blob sin la etiqueta Project=Cascade, no se permitirá el acceso.
Este es el aspecto de la condición en Azure Portal:
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'
)
)
Para más información sobre el formato de las condiciones, consulte Sintaxis y formato de las condiciones de asignación de roles de Azure.
Estado de las características de condición
En la tabla siguiente se muestra el estado de las características de condición:
Característica | Status | Date |
---|---|---|
Uso de atributos de entorno en una condición | GA | Abril de 2024 |
Agregar condiciones mediante el editor de condiciones en Azure Portal | GA | Octubre de 2022 |
Agregar condiciones mediante Azure PowerShell, la CLI de Azure o la API REST | Disponibilidad general | Octubre de 2022 |
Usar atributos de recursos y solicitud para combinaciones específicas de recursos de almacenamiento de Azure, tipos de atributos de acceso y niveles de rendimiento de la cuenta de almacenamiento. Para más información, consulte Estado de las características de condición en Azure Storage. | Disponibilidad general | Octubre de 2022 |
Uso de atributos de seguridad personalizados en una entidad de seguridad en una condición | GA | noviembre de 2023 |
Condiciones y Microsoft Entra PIM
También puede agregar condiciones a las asignaciones de roles que cumplan los requisitos mediante Microsoft Entra Privileged Identity Management (Microsoft Entra PIM) para los recursos de Azure. Con Microsoft Entra PIM, los usuarios finales deben activar una asignación de roles apta para obtener permiso para realizar determinadas acciones. El uso de condiciones en Microsoft Entra PIM permite no solo limitar el acceso de un usuario a un recurso mediante condiciones específicas, sino también usar Microsoft Entra PIM para protegerlo con una configuración de límite de tiempo, un flujo de trabajo de aprobación y un registro de auditoría, entre otros. Para más información, vea Asignación de roles de recursos de Azure en Privileged Identity Management.
Terminología
Para comprender mejor Azure RBAC y Azure ABAC, puede consultar la siguiente lista de términos.
Término | Definición |
---|---|
control de acceso basado en atributos (ABAC) | Sistema de autorización que define el acceso en función de los atributos asociados a las entidades de seguridad, los recursos y el entorno. Con ABAC, puede conceder a una entidad de seguridad acceso a un recurso en función de los atributos. |
Azure ABAC | Hace referencia a la implementación del control de acceso basado en atributos para Azure. |
condición de asignación de roles | Comprobación adicional que puede agregar opcionalmente a la asignación de roles para proporcionar un control de acceso más preciso. |
atributo | En este contexto, un par clave-valor como Project=Blue, donde Project es la clave de atributo y Blue es el valor del atributo. Los atributos y etiquetas son sinónimos en lo que respecta al control de acceso. |
expresión | Instrucción en una condición que se evalúa como true o false. Una expresión tiene el formato de <valor> de <operador> de <atributo>. |
Límites
Estos son algunos de los límites de las condiciones.
Resource | Límite | Notas |
---|---|---|
Número de expresiones por condición al usar el editor visual | 5 | Puede agregar más de cinco expresiones mediante el editor de código. |
Problemas conocidos
Estos son los problemas conocidos de las condiciones:
- Si usa Microsoft Entra Privileged Identity Management (PIM) y atributos de seguridad personalizados, la Entidad de seguridad no aparece en el origen del atributo al agregar una condición.