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, las implementaciones de plantillas de ARM con asignaciones de roles de usuario de secretos de Key Vault y Lector de Key Vault para la identidad global de 'Microsoft Azure App Service'.

El control de acceso basado en rol de Azure es un sistema de autorización basado en Azure Resource Manager que proporciona administración de acceso específico a los recursos de Azure.

Azure RBAC permite a los usuarios administrar los permisos de las claves, secretos y certificados. 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. Azure RBAC para Key Vault también permite a los usuarios tener permisos independientes en las claves, los secretos y los 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 y entorno (desarrollo, preproducción y producción).

Los permisos de claves, secretos y certificados individuales solo deben usarse para escenarios concretos:

  • El uso compartido de secretos individuales entre varias aplicaciones, por ejemplo, una aplicación necesita acceder a los datos de otra

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 para las operaciones del plano de administración para administrar los 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
Agente de certificados de Key Vault Permite realizar cualquier acción en los certificados 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". a4417e6f-fecd-4de8-b567-7b0420556985
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
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
Responsable 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

Nota

No hay Key Vault Certificate User porque las aplicaciones requieren la parte de secretos del certificado con clave privada. Se debe usar el rol Key Vault Secrets User para que las aplicaciones recuperen el certificado.

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

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 agregar asignaciones de roles, debe tener los permisos Microsoft.Authorization/roleAssignments/write y Microsoft.Authorization/roleAssignments/delete, como 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 "Microsoft.Authorization/roleAssignments/write", que forma parte de los roles Propietario y Administrador de acceso de usuario. No se admiten roles de administrador de suscripciones clásicas como "Administrador de servicios" y "Coadministrador".

  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 documento, el nombre de rol se usa solo para facilitar la legibilidad.

Ejecute el siguiente comando para crear una asignación de roles:

az role assignment create --role <role_name_or_id> --assignee <assignee> --scope <scope>

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

Para asignar roles mediante Azure Portal, consulte Asignación de roles de Azure mediante Azure Portal. En Azure Portal, la pantalla de asignaciones de roles de Azure está disponible para todos los recursos en la pestaña Control de acceso (IAM).

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

  1. Vaya al grupo de recursos que contiene el almacén de claves.

    Asignación de roles: grupo de recursos

  2. Seleccione Access Control (IAM) .

  3. Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.

  4. Asigne el siguiente rol. Para asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.

    Configuración Valor
    Role "Lector de Key Vault"
    Asignar acceso a Usuario actual
    Members Buscar por dirección de correo electrónico

    Página Agregar asignación de roles en Azure Portal.

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

  1. Vaya a la pestaña Key Vault > Control de acceso (IAM).

  2. Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.

  3. Asigne el siguiente rol. Para asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.

    Configuración Valor
    Role "Responsable de secretos de Key Vault"
    Asignar acceso a Usuario actual
    Members Buscar por dirección de correo electrónico

    Página Agregar asignación de roles en Azure Portal.

az role assignment create --role "Key Vault Secrets Officer" --assignee {i.e jalichwa@microsoft.com} --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.

  1. Abra un secreto creado anteriormente.

  2. Haga clic en la pestaña Control de acceso (IAM).

    Asignación de roles: secretos

  3. Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.

  4. Asigne el siguiente rol. Para asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.

    Configuración Valor
    Role "Responsable de secretos de Key Vault"
    Asignar acceso a Usuario actual
    Members Buscar por dirección de correo electrónico

    Página Agregar asignación de roles en Azure Portal.

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

Límites conocidos y rendimiento

  • No se admite RBAC del plano de datos de Key Vault en escenarios multiinquilino como Azure Lighthouse.
  • 4000 asignaciones de roles de Azure por suscripción
  • Latencia de las asignación de roles: con el rendimiento actual esperado, pasarán 10 minutos (600 segundos) después de que la asignación de roles se cambia para que se aplique el rol

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