Uso de claves administradas por el cliente para cifrar los datos de configuración de App Configuration
Azure App Configuration cifra la información confidencial en reposo. El uso de claves administradas por el cliente proporciona una mejor protección de los datos al permitirle administrar las claves de cifrado. Cuando se usa el cifrado de claves administradas, toda la información confidencial de App Configuration se cifra con una clave de Azure Key Vault proporcionada por el usuario. De esta manera, existe la posibilidad de rotar la clave de cifrado a petición. También existe la posibilidad de revocar el acceso de Azure App Configuration a información confidencial mediante la revocación del acceso de la instancia de Azure App Configuration a la clave.
Información general
Azure App Configuration cifra la información confidencial en reposo mediante una clave de cifrado AES de 256 bits proporcionada por Microsoft. Cada instancia de App Configuration tiene su propia clave de cifrado que administra el servicio y que se usa para cifrar la información confidencial. La información confidencial incluye los valores que se encuentran en los pares clave-valor. Cuando está habilitada la funcionalidad de claves administradas por el cliente, App Configuration usa una identidad administrada asignada a la instancia de App Configuration para autenticarse con Microsoft Entra ID. Luego, la identidad administrada llama a Azure Key Vault y encapsula la clave de cifrado de la instancia de App Configuration. La clave de cifrado encapsulada se almacena y la clave de cifrado desencapsulada se almacena en caché en App Configuration durante una hora. Cada hora, App Configuration actualiza la versión desencapsulada de la clave de cifrado de la instancia de App Configuration. Este proceso garantiza la disponibilidad en condiciones de funcionamiento normales.
Importante
Si la identidad asignada a la instancia de App Configuration ya no está autorizada para desencapsular la clave de cifrado de la instancia, o si la clave administrada se elimina de forma permanente, ya no será posible descifrar la información confidencial almacenada en la instancia de App Configuration. El uso de la función eliminación temporal de Azure Key Vault reduce la posibilidad de eliminación accidental de la clave de cifrado.
Cuando los usuarios habilitan la funcionalidad de claves administradas por el cliente en su instancia de App Configuration, controlan la capacidad del servicio para acceder a su información confidencial. La clave administrada funciona como clave de cifrado raíz. Los usuarios pueden revocar el acceso de la instancia de App Configuration a su clave administrada mediante la modificación de su directiva de acceso del almacén de claves. Cuando se revoca este acceso, App Configuration pierde la capacidad de descifrar los datos del usuario en una hora. En este momento, la instancia de App Configuration prohibirá todos los intentos de acceso. Esta situación es recuperable; solo hay que volver a conceder al servicio acceso a la clave administrada. En una hora, App Configuration podrá descifrar los datos del usuario y funcionar en condiciones normales.
Nota
Todos los datos de Azure App Configuration se almacenan durante 24 horas como máximo en una copia de seguridad aislada. Esto incluye la clave de cifrado desencapsulada. Estos datos no están disponibles de forma inmediata para el servicio o el equipo de servicio. En el caso de una restauración de emergencia, Azure App Configuration se volverá a revocar a partir de los datos de la clave administrada.
Requisitos
Los componentes siguientes son necesarios para habilitar correctamente la funcionalidad de clave administrada por el cliente en Azure App Configuration:
- Una instancia de Azure App Configuration de nivel Estándar o Premium.
- Una instancia de Azure Key Vault con las características de eliminación temporal y protección de purga habilitadas.
- Una clave RSA o RSA-HSM en Key Vault.
- La clave no debe haber expirado, debe estar habilitada y debe tener activadas las funcionalidades de encapsulado y desencapsulado.
Una vez configurados estos recursos, siga estos pasos para que Azure App Configuration pueda usar la clave de Key Vault:
- Asignar una identidad administrada a la instancia de Azure App Configuration
- Conceda permisos a la identidad para que pueda acceder a la clave de Key Vault.
- En el caso de Key Vault con Azure RBAC habilitado, asigne la identidad al rol de
Key Vault Crypto Service Encryption User
en la instancia de Azure Key Vault de destino. - Para que Key Vault use la autorización de la directiva de acceso, conceda los permisos de identidad
GET
,WRAP
yUNWRAP
en la directiva de acceso de Key Vault de destino.
- En el caso de Key Vault con Azure RBAC habilitado, asigne la identidad al rol de
Habilitación del cifrado de claves administradas por el cliente para el almacén de App Configuration
Cree un almacén de App Configuration en el nivel Estándar o Premium si no tiene ninguno.
Con la CLI de Azure, cree una instancia de Azure Key Vault con la protección de purga habilitada. La eliminación temporal está habilitada de manera predeterminada. Tanto el valor
vault-name
como el valorresource-group-name
los proporciona el usuario y deben ser únicos. En estos ejemplos, se usarácontoso-vault
ycontoso-resource-group
.az keyvault create --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection
Cree una clave de Key Vault. Proporcione un valor único de
key-name
para esta clave y sustituya el nombre del almacén de claves (contoso-vault
) creado en el paso 2. Especifique si prefiere el cifradoRSA
oRSA-HSM
(RSA-HSM
solo está disponible en el nivel Premium).az keyvault key create --name key-name --kty {RSA or RSA-HSM} --vault-name contoso-vault
La salida de este comando muestra el identificador de clave (
kid
) de la clave generada. Anótelo, ya que se usará más adelante en este ejercicio. El identificador de clave tiene el formato:https://{my key vault}.vault.azure.net/keys/{key-name}/{key-version}
. El identificador de clave tiene tres componentes importantes:- URI de Key Vault:
https://{my key vault}.vault.azure.net
- Nombre de clave de Key Vault:
{key-name}
- Versión de clave de Key Vault:
{key-version}
- URI de Key Vault:
Cree una identidad administrada asignada por el sistema mediante la CLI de Azure y sustituya el nombre de la instancia de App Configuration y el grupo de recursos usado en los pasos anteriores. La identidad administrada se usará para acceder a la clave administrada. Se va a usar
contoso-app-config
para ilustrar el nombre de una instancia de App Configuration:az appconfig identity assign --name contoso-app-config --resource-group contoso-resource-group --identities [system]
La salida de este comando incluye el identificador de entidad de seguridad (
"principalId"
) y el identificador de inquilino ("tenandId"
) de la identidad asignada por el sistema. Estos identificadores se usarán para conceder a la identidad acceso a la clave administrada.{ "principalId": {Principal Id}, "tenantId": {Tenant Id}, "type": "SystemAssigned", "userAssignedIdentities": null }
La identidad administrada de la instancia de Azure App Configuration necesita acceso a la clave para realizar la validación, el cifrado y el descifrado de claves. El conjunto específico de acciones a las que necesita acceso incluye:
GET
,WRAP
yUNWRAP
para las claves. Estos permisos se pueden conceder mediante la asignación del rol deKey Vault Crypto Service Encryption User
a las instancias de Key Vault habilitadas para RBAC de Azure. En el caso de las instancias de Key Vaults que usan la autorización de directiva de acceso, establezca la directiva para los permisos de clave mencionados anteriormente. Para conceder el acceso se necesita el identificador de la entidad de seguridad de la identidad administrada de la instancia de App Configuration. Reemplace el valor que se muestra a continuación comocontoso-principalId
por el identificador de entidad de seguridad obtenido en el paso anterior. Conceda permiso a la clave administrada mediante la línea de comandos:En las instancias de Key Vault con Azure RBAC habilitado, use el siguiente comando.
az role assignment create --assignee contoso-principalId --role "Key Vault Crypto Service Encryption User" --scope key-vault-resource-id
Ahora que la instancia de Azure App Configuration pueda acceder a la clave administrada, se puede habilitar la funcionalidad de claves administradas por el cliente en el servicio mediante la CLI de Azure. Recupere las siguientes propiedades registradas durante los pasos de creación de claves:
key name
key vault URI
.az appconfig update -g contoso-resource-group -n contoso-app-config --encryption-key-name key-name --encryption-key-version key-version --encryption-key-vault key-vault-Uri
La instancia de Azure App Configuration ya está configurada para usar una clave administrada por el cliente almacenada en Azure Key Vault.
Pasos siguientes
En este artículo, ha configurado la instancia de Azure App Configuration para usar una clave administrada por el cliente para el cifrado. Para más información sobre cómo integrar el servicio de aplicaciones con identidades administradas de Azure, continúe con el paso siguiente.