Använda kundhanterade nycklar för att kryptera dina appkonfigurationsdata
Azure App Configuration krypterar känslig information i vila. Användningen av kundhanterade nycklar ger förbättrat dataskydd genom att du kan hantera dina krypteringsnycklar. När kryptering av hanterad nyckel används krypteras all känslig information i App Configuration med en Azure Key Vault-nyckel som tillhandahålls av användaren. Detta ger möjlighet att rotera krypteringsnyckeln på begäran. Det ger också möjlighet att återkalla Åtkomsten till känslig information i Azure App Configuration genom att återkalla appkonfigurationsinstansens åtkomst till nyckeln.
Översikt
Azure App Configuration krypterar känslig information i vila med hjälp av en 256-bitars AES-krypteringsnyckel som tillhandahålls av Microsoft. Varje appkonfigurationsinstans har en egen krypteringsnyckel som hanteras av tjänsten och används för att kryptera känslig information. Känslig information innehåller de värden som finns i nyckel/värde-par. När funktionen för kundhanterad nyckel är aktiverad använder App Configuration en hanterad identitet som tilldelats appkonfigurationsinstansen för att autentisera med Microsoft Entra-ID. Den hanterade identiteten anropar sedan Azure Key Vault och omsluter appkonfigurationsinstansens krypteringsnyckel. Den omslutna krypteringsnyckeln lagras sedan och den oöppnade krypteringsnyckeln cachelagras i App Configuration i en timme. Varje timme uppdaterar appkonfigurationen den oöppnade versionen av App Configuration-instansens krypteringsnyckel. Den här processen säkerställer tillgänglighet under normala driftsförhållanden.
Viktigt!
Om den identitet som tilldelats appkonfigurationsinstansen inte längre har behörighet att packa upp instansens krypteringsnyckel, eller om den hanterade nyckeln tas bort permanent, går det inte längre att dekryptera känslig information som lagras i appkonfigurationsinstansen. Genom att använda Funktionen mjuk borttagning i Azure Key Vault minskar du risken för att du oavsiktligt tar bort krypteringsnyckeln.
När användarna aktiverar funktionen för kundhanterad nyckel i sin Azure App Configuration-instans kontrollerar de tjänstens möjlighet att komma åt känslig information. Den hanterade nyckeln fungerar som en rotkrypteringsnyckel. Användare kan återkalla appkonfigurationsinstansens åtkomst till sin hanterade nyckel genom att ändra åtkomstprincipen för nyckelvalvet. När den här åtkomsten återkallas förlorar App Configuration möjligheten att dekryptera användardata inom en timme. Nu förbjuder appkonfigurationsinstansen alla åtkomstförsök. Den här situationen kan återställas genom att tjänsten får åtkomst till den hanterade nyckeln igen. Inom en timme kommer App Configuration att kunna dekryptera användardata och fungera under normala förhållanden.
Kommentar
Alla Azure App Configuration-data lagras i upp till 24 timmar i en isolerad säkerhetskopia. Detta inkluderar den oöppnade krypteringsnyckeln. Dessa data är inte omedelbart tillgängliga för tjänsten eller tjänstteamet. I händelse av en nödåterställning återkallar Azure App Configuration sig själv igen från hanterade nyckeldata.
Krav
Följande komponenter krävs för att aktivera den kundhanterade nyckelfunktionen för Azure App Configuration:
- En Azure App Configuration-instans på Standard- eller Premium-nivå.
- Ett Azure Key Vault med funktioner för mjuk borttagning och rensningsskydd aktiverat.
- En RSA- eller RSA-HSM-nyckel i Nyckelvalvet.
- Nyckeln får inte ha upphört att gälla, den måste vara aktiverad och både wrap- och unwrap-funktionerna måste vara aktiverade.
När dessa resurser har konfigurerats använder du följande steg så att Azure App Configuration kan använda Key Vault-nyckeln:
- Tilldela en hanterad identitet till Azure App Configuration-instansen.
- Bevilja behörigheter till identiteten för att kunna komma åt Key Vault-nyckeln.
- För Key Vault med Azure RBAC aktiverat tilldelar du identiteten
Key Vault Crypto Service Encryption User
rollen på målnyckelvalvet. - För Key Vault använder du åtkomstprincipauktorisering, beviljar identiteten
GET
,WRAP
ochUNWRAP
behörigheter i målnyckelvalvets åtkomstprincip.
- För Key Vault med Azure RBAC aktiverat tilldelar du identiteten
Aktivera kundhanterad nyckelkryptering för appkonfigurationsarkivet
Skapa ett appkonfigurationsarkiv på standard- eller Premium-nivån om du inte har något.
Använd Azure CLI och skapa ett Azure Key Vault med rensningsskydd aktiverat. Mjuk borttagning är aktiverat som standard. Både
vault-name
ochresource-group-name
är användarspecifika och måste vara unika. Vi användercontoso-vault
ochcontoso-resource-group
i dessa exempel.az keyvault create --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection
Skapa en Key Vault-nyckel. Ange en unik
key-name
för den här nyckeln och ersätt namnet på nyckelvalvet (contoso-vault
) som skapades i steg 2. Ange om du föredrarRSA
ellerRSA-HSM
kryptering (RSA-HSM
är endast tillgängligt på Premium-nivån).az keyvault key create --name key-name --kty {RSA or RSA-HSM} --vault-name contoso-vault
Utdata från det här kommandot visar nyckel-ID :t (
kid
) för den genererade nyckeln. Anteckna nyckel-ID:t som ska användas senare i den här övningen. Nyckel-ID:t har formuläret:https://{my key vault}.vault.azure.net/keys/{key-name}/{key-version}
. Nyckel-ID:t har tre viktiga komponenter:- Key Vault-URI:
https://{my key vault}.vault.azure.net
- Nyckelnamn för Key Vault:
{key-name}
- Key Vault-nyckelversion:
{key-version}
- Key Vault-URI:
Skapa en systemtilldelad hanterad identitet med hjälp av Azure CLI och ersätt namnet på din appkonfigurationsinstans och resursgrupp som användes i föregående steg. Den hanterade identiteten används för att komma åt den hanterade nyckeln. Vi använder
contoso-app-config
för att illustrera namnet på en App Configuration-instans:az appconfig identity assign --name contoso-app-config --resource-group contoso-resource-group --identities [system]
Utdata från det här kommandot innehåller huvud-ID :t (
"principalId"
) och klientorganisations-ID :t ("tenandId"
) för den systemtilldelade identiteten. Dessa ID:er används för att ge identiteten åtkomst till den hanterade nyckeln.{ "principalId": {Principal Id}, "tenantId": {Tenant Id}, "type": "SystemAssigned", "userAssignedIdentities": null }
Den hanterade identiteten för Azure App Configuration-instansen behöver åtkomst till nyckeln för att utföra nyckelverifiering, kryptering och dekryptering. Den specifika uppsättning åtgärder som den behöver åtkomst till omfattar:
GET
,WRAP
ochUNWRAP
för nycklar. Dessa behörigheter kan beviljas genom attKey Vault Crypto Service Encryption User
tilldela rollen för Azure RBAC-aktiverade Nyckelvalv. För Key Vaults med åtkomstprincipauktorisering anger du principen för ovan nämnda nyckelbehörigheter. För att bevilja åtkomst krävs huvud-ID för appkonfigurationsinstansens hanterade identitet. Ersätt värdet som visas nedan som med det huvudnamns-ID somcontoso-principalId
erhölls i föregående steg. Bevilja behörighet till den hanterade nyckeln med hjälp av kommandoraden:Använd följande kommando för Key Vaults med Azure RBAC aktiverat.
az role assignment create --assignee contoso-principalId --role "Key Vault Crypto Service Encryption User" --scope key-vault-resource-id
Nu när Azure App Configuration-instansen har åtkomst till den hanterade nyckeln kan vi aktivera funktionen för kundhanterad nyckel i tjänsten med hjälp av Azure CLI. Kom ihåg följande egenskaper som registrerades under stegen för att skapa nycklar:
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
Din Azure App Configuration-instans är nu konfigurerad för att använda en kundhanterad nyckel som lagras i Azure Key Vault.
Nästa steg
I den här artikeln konfigurerade du din Azure App Configuration-instans att använda en kundhanterad nyckel för kryptering. Om du vill veta mer om hur du integrerar din apptjänst med hanterade Azure-identiteter fortsätter du till nästa steg.