Acceso a las claves, los certificados y los secretos de Key Vault con un control de acceso basado en rol de Azure

Nota:

El proveedor de recursos de Key Vault admite dos tipos de recursos: almacenes y HSM administrados. El control de acceso descrito en este artículo solo se aplica a los almacenes. Para más información sobre el control de acceso para HSM administrado, consulte Control de acceso de HSM administrado.

Nota:

La configuración de certificados de Azure App Service mediante Azure Portal no es compatible con el modelo de permisos RBAC de Key Vault. Puede usar Azure PowerShell, la CLI de Azure, implementaciones de plantillas de ARM con asignación de roles de usuario de certificado de Key Vault para la identidad global de App Service, por ejemplo, "Microsoft Azure App Service" en la nube pública.

El control de acceso basado en rol de Azure (RBAC de Azure) es un sistema de autorización basado en Azure Resource Manager que proporciona administración centralizada del acceso a los recursos de Azure.

Azure RBAC permite a los usuarios administrar claves, secretos y permisos de certificados, y proporciona un lugar para administrar todos los permisos en todos los almacenes de claves.

El modelo de Azure RBAC permite establecer permisos en diferentes niveles de ámbito: grupo de administración, suscripción, grupo de recursos o recursos individuales. RBAC de Azure para Key Vault también permite a los usuarios tener permisos independientes en claves, secretos y certificados individuales.

Para más información, consulte Control de acceso basado en rol de Azure (Azure RBAC).

Procedimientos recomendados para las asignaciones de roles de certificados, secretos y claves individuales

Nuestra recomendación es usar un almacén por aplicación por entorno (desarrollo, preproducción y producción) con roles asignados en el ámbito del almacén de claves.

Se debe evitar la asignación de roles en claves individuales, secretos y certificados. Una excepción es un escenario en el que se deben compartir secretos individuales entre varias aplicaciones; por ejemplo, donde una aplicación necesita acceder a los datos de otra aplicación.

Para más información acerca de las directrices de administración de Azure Key Vault, consulte:

Roles integrados de Azure para operaciones del plano de datos de Key Vault

Nota:

El rol Key Vault Contributor es solo para las operaciones del plano de administración para administrar almacenes de claves. no permite el acceso a claves, secretos y certificados.

Rol integrado Descripción ID
Administrador de Key Vault Permite realizar todas las operaciones de plano de datos en un almacén de claves y en todos los objetos que contiene, incluidos los certificados, las claves y los secretos. No permite administrar los recursos del almacén de claves ni administrar las asignaciones de roles. Solo funciona para almacenes de claves que usan el modelo de permisos "Control de acceso basado en rol de Azure". 00482a5a-887f-4fb3-b363-3b7fe8e74483
Lector de Key Vault Permite leer metadatos de almacenes de claves y sus certificados, claves y secretos. No se pueden leer valores confidenciales, como el contenido de los secretos o el material de las claves. Solo funciona para almacenes de claves que usan el modelo de permisos "Control de acceso basado en rol de Azure". 21090545-7ca7-4776-b22c-e363652d74d2
Operador de purga de Key Vault Permite la eliminación permanente de almacenes eliminados temporalmente. a68e7c17-0ab2-4c09-9a58-125dae29748c
Agente de certificados de Key Vault Realice cualquier acción en los certificados de un almacén de claves, excepto la lectura del secreto y las partes de clave, y la administración de permisos. Solo funciona para almacenes de claves que usan el modelo de permisos "Control de acceso basado en rol de Azure". a4417e6f-fecd-4de8-b567-7b0420556985
Usuario de certificado de Key Vault Lea todo el contenido del certificado, incluido el secreto y la parte de la clave. Solo funciona para almacenes de claves que usan el modelo de permisos "Control de acceso basado en rol de Azure". db79e9a7-68ee-4b58-9aeb-b90e7c24fcba
Agente criptográfico de Key Vault Permite realizar cualquier acción en las claves de un almacén de claves, excepto administrar permisos. Solo funciona para almacenes de claves que usan el modelo de permisos "Control de acceso basado en rol de Azure". 14b46e9e-c2b7-41b4-b07b-48a6ebf60603
Usuario de cifrado de servicio criptográfico de Key Vault Permite leer los metadatos de las claves y realizar operaciones de encapsulado/desencapsulado. Solo funciona para almacenes de claves que usan el modelo de permisos "Control de acceso basado en rol de Azure". e147488a-f6f5-4113-8e2d-b22465e65bf6
Usuario criptográfico de Key Vault Permite realizar operaciones criptográficas mediante claves. Solo funciona para almacenes de claves que usan el modelo de permisos "Control de acceso basado en rol de Azure". 12338af0-0e69-4776-bea7-57ae8d297424
Usuario de la versión de servicio criptográfica de Key Vault Claves de versión para la computación confidencial de Azure y entornos equivalentes. Solo funciona para almacenes de claves que usan el modelo de permisos "Control de acceso basado en rol de Azure".
Agente de secretos de Key Vault Permite realizar cualquier acción en los secretos de un almacén de claves, excepto administrar permisos. Solo funciona para almacenes de claves que usan el modelo de permisos "Control de acceso basado en rol de Azure". b86a8fe4-44ce-4948-aee5-eccb2c155cd7
Usuario de secretos de Key Vault Lea el contenido del secreto, incluida la parte secreta de un certificado con clave privada. Solo funciona para almacenes de claves que usan el modelo de permisos "Control de acceso basado en rol de Azure". 4633458b-17de-408a-b874-0445c86b69e6

Para más información sobre las definiciones de roles de Azure, consulte Roles integrados en Azure.

Administración de asignaciones de roles integradas del plano de datos de Key Vault

Rol integrado Descripción ID
Administrador de acceso a datos de Key Vault Administre el acceso a Azure Key Vault mediante la adición o eliminación de asignaciones de roles para el administrador de Key Vault, el oficial de certificados de Key Vault, el oficial de cifrado de Key Vault, el usuario de cifrado del servicio criptográfico de Key Vault, el usuario criptográfico de Key Vault, el lector de Key Vault, el oficial de secretos de Key Vault o los roles de usuario de secretos de Key Vault. Incluye una condición de ABAC para restringir las asignaciones de roles. 8b54135c-b56d-4d72-a534-26097cfdc8d8

Uso de los permisos de secretos, claves y certificados de Azure RBAC con Key Vault

El nuevo modelo de permisos de Azure RBAC para el almacén de claves proporciona una alternativa al modelo de permisos de la directiva de acceso del almacén.

Requisitos previos

Debe tener una suscripción de Azure. Si no la tiene, puede crear una cuenta gratuita antes de empezar.

Para administrar las asignaciones de roles, debe tener permisos Microsoft.Authorization/roleAssignments/write y Microsoft.Authorization/roleAssignments/delete, como Administrador de acceso a datos de Key Vault (con permisos restringidos para asignar o quitar roles específicos de Key Vault), Administrador de acceso de usuario, o Propietario.

Habilitación de los permisos de Azure RBAC en Key Vault

Nota:

El cambio del modelo de permiso requiere el permiso sin restricciones "Microsoft.Authorization/roleAssignments/write", que forma parte de los roles Propietario y Administrador de acceso de usuario. Los roles de administrador de suscripciones clásicas, como "administrador de servicios" y "coadministrador", o "administrador de acceso a datos de Key Vault" restringido no se pueden usar para cambiar el modelo de permisos.

  1. Habilitación de los permisos de Azure RBAC en un almacén de claves nuevo:

    Habilitación de los permisos de Azure RBAC: almacén nuevo

  2. Habilitación de los permisos de Azure RBAC en un almacén de claves existente:

    Habilitación de los permisos de Azure RBAC: almacén existente

Importante

El establecimiento del modelo de permisos de Azure RBAC invalida todos los permisos de las directivas de acceso. Puede provocar interrupciones cuando los roles de Azure equivalentes no se asignen.

Asignación de un rol

Nota:

Se recomienda usar el identificador de rol único, en lugar del nombre de rol en los scripts. Por consiguiente, si se cambia el nombre de un rol, los scripts seguirían funcionando. En este nombre de rol de documento se usa para mejorar la legibilidad.

Para crear una asignación de roles mediante la CLI de Azure, use el comando az role assignment:

az role assignment create --role {role-name-or-id} --assignee {assignee-upn}> --scope {scope}

Para más información, consulte Asignación de roles de Azure mediante la CLI de Azure.

Asignación de roles en el ámbito de un grupo de recursos

az role assignment create --role "Key Vault Reader" --assignee {i.e user@microsoft.com} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}

Para más información, consulte Asignación de roles de Azure mediante la CLI de Azure.

La asignación de roles anterior brinda la posibilidad de enumerar los objetos de almacén de claves que hay en el almacén de claves.

Asignación de roles del ámbito de Key Vault

az role assignment create --role "Key Vault Secrets Officer" --assignee {assignee-upn} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}

Para más información, consulte Asignación de roles de Azure mediante la CLI de Azure.

Asignación de roles del ámbito de secreto

Nota

Las asignaciones de roles de ámbito de clave, certificado y secreto del almacén de claves solo deben usarse para escenarios limitados que se describen aquí a fin de cumplir los procedimientos recomendados de seguridad.

az role assignment create --role "Key Vault Secrets Officer" --assignee {i.e user@microsoft.com} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}/secrets/RBACSecret

Para más información, consulte Asignación de roles de Azure mediante la CLI de Azure.

Prueba y comprobación

Nota:

Los exploradores usan el almacenamiento en caché y la actualización de página es necesaria después de quitar las asignaciones de roles. Deje varios minutos para que se actualice la asignación de roles

  1. Valide la adición de un secreto nuevo sin el rol "Responsable de secretos del almacén de claves" en el nivel del almacén de claves.

    1. Vaya a la pestaña Control de acceso (IAM) del almacén de claves y elimine la asignación de roles "Responsable de secretos de Key Vault" de este recurso.

      Eliminación de asignación: almacén de claves

    2. Vaya al secreto que creó anteriormente. Puede ver todas las propiedades del secreto.

      Vista de secreto con acceso

    3. Crear secreto (Secretos > +Generar o importar) debe mostrar este error:

      Crear un secreto

  2. Valide la edición del secreto sin el rol "Responsable de secretos del almacén de claves" en el nivel del secreto.

    1. Vaya a la pestaña Control de acceso (IAM) del secreto creado antes y elimine la asignación de roles "Responsable de secretos de Key Vault" de este recurso.

    2. Vaya al secreto que creó anteriormente. Puede ver las propiedades del secreto.

      Vista de secreto sin acceso

  3. Valide la lectura de los secretos sin el rol de lectura en el nivel del almacén de claves.

    1. Vaya a la pestaña Control de acceso (IAM) del grupo de recursos del almacén de claves y elimine la asignación de roles "Lector de Key Vault".

    2. Si va a la pestaña Secretos de Key Vault, debería aparecer este error:

      Pestaña Secretos: error

Creación de roles personalizados

comando az role definition create

az role definition create --role-definition '{ \
   "Name": "Backup Keys Operator", \
   "Description": "Perform key backup/restore operations", \
    "Actions": [ 
    ], \
    "DataActions": [ \
        "Microsoft.KeyVault/vaults/keys/read ", \
        "Microsoft.KeyVault/vaults/keys/backup/action", \
         "Microsoft.KeyVault/vaults/keys/restore/action" \
    ], \
    "NotDataActions": [ 
   ], \
    "AssignableScopes": ["/subscriptions/{subscriptionId}"] \
}'

Para más información sobre cómo crear roles personalizados, consulte:

Roles personalizados en los recursos de Azure

Preguntas más frecuentes

¿Puedo usar asignaciones del ámbito de objetos del modelo de permisos del control de acceso basado en rol (RBAC) de Key Vault para proporcionar aislamiento a los equipos de aplicaciones dentro de Key Vault?

No. El modelo de permisos RBAC permite asignar el acceso a objetos individuales de Key Vault a usuarios o aplicaciones, pero cualquier operación administrativa, como el control de acceso a la red, la supervisión y la administración de objetos requieren permisos de nivel de almacén que expondrían información segura a los operadores de los equipos de aplicaciones.

Más información