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 no es compatible con el modelo de permisos RBAC del almacén de claves.

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 brinda la posibilidad de 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 brinda la posibilidad de tener permisos independientes en las claves, los secretos y los certificados independientes

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:

  • Compartir secretos individuales entre varias aplicaciones, por ejemplo, una aplicación necesita tener acceso a los datos de la otra aplicación
  • Cifrado entre inquilinos con la clave de cliente, por ejemplo, ISV que usa una clave de un almacén de claves del cliente para cifrar sus datos

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 Permite leer el contenido de los secretos. 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.

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:

    Enable Azure RBAC permissions - new vault

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

    Enable Azure RBAC permissions - existing vault

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.

    Role assignment - resource group

  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

    Add role assignment page in 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

    Add role assignment page in 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

  1. Abra un secreto creado anteriormente.

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

    Role assignment - secret

  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

    Add role assignment page in 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.

      Remove assignment - key vault

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

      Secret view with access

    3. Crear secreto (Secrets > +Generate/Import) [(Secretos > +Generar o importar)] debe mostrar el siguiente error:

      Create new secret

  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.

      Secret view without access

  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 del almacén de claves, debería aparecer el siguiente error:

      Secret tab - 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.
  • Dos mil 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

Más información