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.
Habilitación de los permisos de Azure RBAC en un almacén de claves nuevo:
Habilitación de los permisos de Azure RBAC en un almacén de claves 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
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.
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.
Vaya al secreto que creó anteriormente. Puede ver todas las propiedades del secreto.
Crear secreto (Secretos > +Generar o importar) debe mostrar este error:
Valide la edición del secreto sin el rol "Responsable de secretos del almacén de claves" en el nivel del secreto.
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.
Vaya al secreto que creó anteriormente. Puede ver las propiedades del secreto.
Valide la lectura de los secretos sin el rol de lectura en el nivel del almacén de claves.
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".
Si va a la pestaña Secretos de Key Vault, debería aparecer este 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.