¿Qué es Azure Key Vault?
Azure Key Vault es un almacén de secretos: un servicio en la nube centralizado para almacenar secretos de aplicación, como valores de configuración como contraseñas y cadenas de conexión que deben estar protegidos en todo momento. Key Vault le ayuda a controlar los secretos de las aplicaciones al mantenerlos en una sola ubicación central. Proporciona acceso seguro, control de permisos y registro de acceso.
Las principales ventajas del uso de Key Vault son:
- Separación de información confidencial de la aplicación de otra configuración y código, lo que reduce el riesgo de pérdidas accidentales
- Acceso restringido a los secretos con directivas de acceso adaptadas a las aplicaciones y los individuos que las necesitan
- Almacenamiento de secretos centralizado, lo que significa que los cambios necesarios solo deben realizarse en un solo lugar
- Registro y supervisión del acceso para saber cómo y cuándo se accede a los secretos
Los secretos se almacenan en almacenes individuales, que son recursos de Azure que se usan para agrupar los secretos. La administración del almacén y el acceso al secreto se logra usando una API de REST. Todas las herramientas de administración de Azure y las bibliotecas cliente disponibles para muchos lenguajes populares también admiten esta API. Cada almacén tiene una dirección URL única donde se hospeda su API.
Importante
Key Vault está diseñado para almacenar secretos de configuración de las aplicaciones de servidor. No está pensada para almacenar datos que pertenecen a los usuarios de la aplicación. No se debe usar en la parte cliente de una aplicación. Este comportamiento se refleja en sus características de rendimiento, la API y el modelo de costos.
Los datos de usuario deben almacenarse en otro lugar, como una instancia de Azure SQL Database con Cifrado de datos transparente, o una cuenta de almacenamiento con Storage Service Encryption. Los secretos que usa la aplicación para acceder a esos almacenes de datos se pueden conservar en Key Vault.
¿Qué es un secreto en Key Vault?
En Key Vault, un secreto es un par nombre-valor de cadenas. Los nombres de secreto deben tener entre 1 y 127 caracteres, contener solo caracteres alfanuméricos y guiones, y ser únicos en un almacén. Un valor de secreto puede ser cualquier cadena UTF-8 de hasta 25 KB de tamaño.
Sugerencia
Los nombres de secreto no tienen que considerarse especialmente secretos en sí mismos. Puede almacenarlos en la configuración de la aplicación si la implementación lo requiere. Lo mismo puede decirse de las direcciones URL y los nombres de almacén.
Nota:
Key Vault admite dos tipos adicionales de secretos más allá de cadenas: claves y certificados. Key Vault proporciona una funcionalidad útil específica de sus casos de uso. En este módulo no se describen estas características y se centra en las cadenas de secretos como contraseñas y cadenas de conexión.
Permisos y autenticación de almacén
La API de Key Vault usa Microsoft Entra ID para autenticar usuarios y aplicaciones. Las directivas de acceso del almacén se basan en acciones y se aplican en todo el almacén. Por ejemplo, una aplicación con permisos Get
(leer valores secretos), List
(enumerar nombres de todos los secretos) y Set
(crear o actualizar valores secretos) en un almacén puede crear secretos, enumerar todos los nombres de secretos y obtener y establecer todos los valores de secreto en ese almacén.
Todas las acciones realizadas en un almacén requieren autenticación y autorización. No hay forma de conceder ningún tipo de acceso anónimo.
Sugerencia
Al conceder acceso al almacén a desarrolladores y aplicaciones, conceda solo el conjunto mínimo de permisos necesarios. Las restricciones de permisos ayudan a evitar accidentes ocasionados por errores de código y reducen el impacto de credenciales robadas o código malintencionado insertado en la aplicación.
Normalmente, los desarrolladores solo necesitan permisos de Get
y List
para un almacén de entorno de desarrollo. Algunos ingenieros necesitan permisos completos para cambiar y agregar secretos cuando sea necesario.
En el caso de las aplicaciones, a menudo solo se requieren permisos Get
. Es posible que algunas aplicaciones requieran List
en función de la forma en que se implemente la aplicación. La aplicación del ejercicio de este módulo requiere el permiso List
debido a la técnica que usa para leer secretos del almacén.