Konfigurera kundhanterade nycklar mellan klientorganisationer för ett befintligt lagringskonto

Azure Storage krypterar alla data i ett lagringskonto i vila. Som standard krypteras data med Microsoft-hanterade nycklar. Om du vill ha ytterligare kontroll över krypteringsnycklar kan du hantera dina egna nycklar. Kundhanterade nycklar måste lagras i ett Azure Key Vault eller i en Azure Key Vault Managed Hardware Security Model (HSM).

Den här artikeln visar hur du konfigurerar kryptering med kundhanterade nycklar för ett befintligt lagringskonto. I scenariot mellan klientorganisationer finns lagringskontot i en klientorganisation som hanteras av en ISV, medan nyckeln som används för kryptering av lagringskontot finns i ett nyckelvalv i en klientorganisation som hanteras av kunden.

Information om hur du konfigurerar kundhanterade nycklar för ett nytt lagringskonto finns i Konfigurera kundhanterade nycklar mellan klientorganisationer för ett nytt lagringskonto.

Kommentar

Azure Key Vault och Azure Key Vault Managed HSM stöder samma API:er och hanteringsgränssnitt för konfiguration av kundhanterade nycklar. Alla åtgärder som stöds för Azure Key Vault stöds också för Azure Key Vault Managed HSM.

Om kundhanterade nycklar mellan klientorganisationer

Många tjänsteleverantörer som skapar SaaS-erbjudanden (Software as a Service) i Azure vill erbjuda sina kunder möjlighet att hantera sina egna krypteringsnycklar. Med kundhanterade nycklar kan en tjänstleverantör kryptera kundens data med hjälp av en krypteringsnyckel som hanteras av tjänsteleverantörens kund och som inte är tillgänglig för tjänstleverantören. I Azure kan tjänsteleverantörens kund använda Azure Key Vault för att hantera sina krypteringsnycklar i sin egen Microsoft Entra-klientorganisation och prenumeration.

Azure-plattformstjänster och resurser som ägs av tjänstleverantören och som finns i tjänstleverantörens klientorganisation kräver åtkomst till nyckeln från kundens klientorganisation för att utföra krypterings-/dekrypteringsåtgärderna.

Bilden nedan visar en vilande datakryptering med federerad identitet i ett CMK-arbetsflöde mellan klientorganisationer som sträcker sig över en tjänstleverantör och dess kund.

Screenshot showing a cross-tenant CMK with a federated identity.

I exemplet ovan finns det två Microsoft Entra-klienter: en oberoende tjänstleverantörs klientorganisation (klientorganisation 1) och en kunds klientorganisation (klientorganisation 2). Klientorganisation 1 är värd för Azure-plattformstjänster och Klientorganisation 2 är värd för kundens nyckelvalv.

En programregistrering för flera klienter skapas av tjänstleverantören i klientorganisation 1. En federerad identitetsautentiseringsuppgift skapas i det här programmet med hjälp av en användartilldelad hanterad identitet. Sedan delas appens namn och program-ID med kunden.

En användare med rätt behörighet installerar tjänstleverantörens program i kundklientorganisationen, Klient 2. En användare ger sedan tjänstens huvudnamn som är associerat med det installerade programmet åtkomst till kundens nyckelvalv. Kunden lagrar även krypteringsnyckeln, eller den kundhanterade nyckeln, i nyckelvalvet. Kunden delar nyckelplatsen (nyckelns URL) med tjänstleverantören.

Tjänstleverantören har nu:

  • Ett program-ID för ett program med flera klienter installerat i kundens klientorganisation, som har beviljats åtkomst till den kundhanterade nyckeln.
  • En hanterad identitet som konfigurerats som autentiseringsuppgifter i programmet för flera klientorganisationer.
  • Platsen för nyckeln i kundens nyckelvalv.

Med dessa tre parametrar etablerar tjänstleverantören Azure-resurser i Klientorganisation 1 som kan krypteras med den kundhanterade nyckeln i klientorganisation 2.

Nu ska vi dela upp lösningen ovan från slutpunkt till slutpunkt i tre faser:

  1. Tjänstleverantören konfigurerar identiteter.
  2. Kunden ger tjänstleverantörens app med flera klientorganisationer åtkomst till en krypteringsnyckel i Azure Key Vault.
  3. Tjänstleverantören krypterar data i en Azure-resurs med hjälp av CMK.

Åtgärder i fas 1 skulle vara en engångskonfiguration för de flesta tjänstleverantörsprogram. Åtgärder i fas 2 och 3 upprepas för varje kund.

Fas 1 – Tjänstleverantören konfigurerar ett Microsoft Entra-program

Steg beskrivning Minsta roll i Azure RBAC Minsta roll i Microsoft Entra RBAC
1. Skapa en ny microsoft entra-programregistrering för flera användare eller börja med en befintlig programregistrering. Observera program-ID :t (klient-ID) för programregistreringen med hjälp av Azure-portalen, Microsoft Graph API, Azure PowerShell eller Azure CLI Ingen Programutvecklare
2. Skapa en användartilldelad hanterad identitet (som ska användas som en federerad identitetsautentisering).
Azure CLI / Azure PowerShell/ Azure Resource Manager-mallar i Azure-portalen /
Hanterad identitetsdeltagare Ingen
3. Konfigurera användartilldelad hanterad identitet som en federerad identitetsautentiseringsuppgift i programmet, så att den kan personifiera programmets identitet.
Graph API-referens för/ Azure-portalen/ Azure CLI/ Azure PowerShell
Ingen Programmets ägare
4. Dela programnamnet och program-ID:t med kunden så att de kan installera och auktorisera programmet. Ingen Ingen

Överväganden för tjänsteleverantörer

  • Azure Resource Manager-mallar (ARM) rekommenderas inte för att skapa Microsoft Entra-program.
  • Samma program för flera klienter kan användas för att komma åt nycklar i valfritt antal klienter, till exempel klientorganisation 2, klientorganisation 3, klientorganisation 4 och så vidare. I varje klientorganisation skapas en oberoende instans av programmet som har samma program-ID men ett annat objekt-ID. Varje instans av det här programmet godkänns därför oberoende av varandra. Fundera på hur programobjektet som används för den här funktionen används för att partitionera programmet mellan alla kunder.
  • I sällsynta fall kan en tjänstleverantör använda ett enda programobjekt per kund, men det kräver betydande underhållskostnader för att hantera program i stor skala för alla kunder.
  • I tjänstleverantörens klientorganisation går det inte att automatisera utgivarverifieringen.

Fas 2 – Kunden auktoriserar åtkomst till nyckelvalvet

Steg beskrivning Minst privilegierade Azure RBAC-roller Minst privilegierade Microsoft Entra-roller
1.
  • Rekommenderas: Skicka användaren för att logga in på din app. Om användaren kan logga in finns det ett huvudnamn för tjänsten för din app i klientorganisationen.
  • Använd Microsoft Graph, Microsoft Graph PowerShell, Azure PowerShell eller Azure CLI för att skapa tjänstens huvudnamn.
  • Skapa en URL för administratörsmedgivande och bevilja klientomfattande medgivande för att skapa tjänstens huvudnamn med hjälp av program-ID:t.
  • Ingen Användare med behörighet att installera program
    2. Skapa ett Azure Key Vault och en nyckel som används som kundhanterad nyckel. En användare måste tilldelas rollen Key Vault-deltagare för att kunna skapa nyckelvalvet

    En användare måste tilldelas rollen Key Vault Crypto Officer för att lägga till en nyckel i nyckelvalvet
    Ingen
    3. Ge den medgivande programidentiteten åtkomst till Azure-nyckelvalvet genom att tilldela rollen Key Vault Crypto Service Encryption User Om du vill tilldela key vault-krypteringstjänstens användarroll till programmet måste du ha tilldelats rollen Administratör för användaråtkomst. Ingen
    4. Kopiera nyckelvalvets URL och nyckelnamn till konfigurationen av kundhanterade nycklar för SaaS-erbjudandet. Ingen Ingen

    Kommentar

    Om du vill auktorisera åtkomst till Managed HSM för kryptering med hjälp av CMK kan du läsa exempel för Lagringskonto här. Mer information om hur du hanterar nycklar med Hanterad HSM finns i Hantera en hanterad HSM med Hjälp av Azure CLI

    Överväganden för kunder hos tjänsteleverantörer

    • I kundens klientorganisation, Klientorganisation 2, kan en administratör ange principer för att blockera användare som inte är administratörer från att installera program. Dessa principer kan hindra användare som inte är administratörer från att skapa tjänstens huvudnamn. Om en sådan princip har konfigurerats måste användare med behörighet att skapa tjänstens huvudnamn vara inblandade.
    • Åtkomst till Azure Key Vault kan auktoriseras med hjälp av Azure RBAC eller åtkomstprinciper. När du beviljar åtkomst till ett nyckelvalv bör du använda den aktiva mekanismen för ditt nyckelvalv.
    • En Microsoft Entra-programregistrering har ett program-ID (klient-ID). När programmet installeras i klientorganisationen skapas ett huvudnamn för tjänsten. Tjänstens huvudnamn delar samma program-ID som appregistreringen, men genererar ett eget objekt-ID. När du ger programmet åtkomst till resurser kan du behöva använda tjänstens huvudnamn Name eller ObjectID egenskap.

    Fas 3 – Tjänstleverantören krypterar data i en Azure-resurs med hjälp av den kundhanterade nyckeln

    När fas 1 och 2 har slutförts kan tjänstleverantören konfigurera kryptering på Azure-resursen med nyckel- och nyckelvalvet i kundens klientorganisation och Azure-resursen i ISV:s klientorganisation. Tjänstleverantören kan konfigurera kundhanterade nycklar mellan klientorganisationer med de klientverktyg som stöds av den Azure-resursen, med en ARM-mall eller med REST-API:et.

    Konfigurera kundhanterade nycklar mellan klientorganisationer

    I det här avsnittet beskrivs hur du konfigurerar en kundhanterad nyckel för flera klientorganisationer (CMK) och krypterar kunddata. Du lär dig hur du krypterar kunddata i en resurs i Tenant1 med hjälp av en CMK som lagras i ett nyckelvalv i Tenant2. Du kan använda Azure-portalen, Azure PowerShell eller Azure CLI.

    Logga in på Azure-portalen och följ dessa steg.

    Tjänstleverantören konfigurerar identiteter

    Följande steg utförs av tjänstleverantören i tjänstleverantörens klientorganisation 1.

    Tjänstleverantören skapar en ny appregistrering för flera klientorganisationer

    Du kan antingen skapa en ny Microsoft Entra-programregistrering för flera klientorganisationer eller börja med en befintlig programregistrering för flera klientorganisationer. Om du börjar med en befintlig programregistrering bör du notera programmets program-ID (klient-ID).

    Så här skapar du en ny registrering:

    1. Sök efter Microsoft Entra-ID i sökrutan. Leta upp och välj Microsoft Entra ID-tillägget .

    2. Välj Hantera > Appregistreringar i det vänstra fönstret.

    3. Välj + Ny registrering.

    4. Ange namnet på programregistreringen och välj Konto i valfri organisationskatalog (Alla Microsoft Entra-kataloger – Multitenant).

    5. Välj Registrera.

    6. Observera ApplicationId/ClientId för programmet.

      Screen shot showing how to create a new multi-tenant application registration.

    Tjänstleverantören skapar en användartilldelad hanterad identitet

    Skapa en användartilldelad hanterad identitet som ska användas som en federerad identitetsautentiseringsuppgift.

    1. Sök efter hanterade identiteter i sökrutan. Leta upp och välj tillägget Hanterade identiteter .

    2. Välj + Skapa.

    3. Ange resursgruppen, regionen och namnet för den hanterade identiteten.

    4. Välj Granska + skapa.

    5. Observera Azure ResourceId för den användartilldelade hanterade identiteten vid lyckad distribution, som är tillgängligt under Egenskaper. Till exempel:

      /subscriptions/tttttttt-0000-tttt-0000-tttt0000tttt/resourcegroups/XTCMKDemo/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ConsotoCMKDemoUA

      Screen shot showing how to create a resource group and a user-assigned managed identity.

    Tjänstleverantören konfigurerar den användartilldelade hanterade identiteten som en federerad autentiseringsuppgift i programmet

    Konfigurera en användartilldelad hanterad identitet som en federerad identitetsautentiseringsuppgift i programmet så att den kan personifiera programmets identitet.

    1. Gå till Microsoft Entra-ID > Appregistreringar > ditt program.

    2. Välj Certifikat och hemligheter.

    3. Välj Federerade autentiseringsuppgifter.

      Screen shot showing how to navigate to Certificate and secrets.

    4. Välj + Lägg till autentiseringsuppgifter.

    5. Under Scenario med federerade autentiseringsuppgifter väljer du Kundhanterade nycklar.

    6. Klicka på Välj en hanterad identitet. Välj prenumerationen i fönstret. Under Hanterad identitet väljer du Användartilldelad hanterad identitet. I rutan Välj söker du efter den hanterade identitet som du skapade tidigare och klickar sedan på Välj längst ned i fönstret.

      Screen shot showing how to select a managed identity.

    7. Under Information om autentiseringsuppgifter anger du ett namn och en valfri beskrivning för autentiseringsuppgifterna och väljer Lägg till.

      Screen shot showing how to add a credential.

    Tjänstleverantören delar program-ID:t med kunden

    Hitta program-ID :t (klient-ID) för programmet för flera klientorganisationer och dela det med kunden.

    Kunden ger tjänstleverantörens app åtkomst till nyckeln i nyckelvalvet

    Följande steg utförs av kunden i kundens klientorganisation 2. Kunden kan använda Azure-portalen, Azure PowerShell eller Azure CLI.

    Användaren som kör stegen måste vara en administratör med en privilegierad roll, till exempel programadministratör, molnprogramadministratör eller global administratör.

    Logga in på Azure-portalen och följ dessa steg.

    Kunden installerar tjänstproviderprogrammet i kundens klientorganisation

    Om du vill installera tjänstleverantörens registrerade program i kundens klientorganisation skapar du ett huvudnamn för tjänsten med program-ID:t från den registrerade appen. Du kan skapa tjänstens huvudnamn på något av följande sätt:

    Kunden skapar ett nyckelvalv

    Om du vill skapa nyckelvalvet måste användarens konto tilldelas rollen Key Vault-deltagare eller en annan roll som gör det möjligt att skapa ett nyckelvalv.

    1. På Menyn i Azure-portalen eller på sidan Start väljer du + Skapa en resurs. I sökrutan anger du Nyckelvalv. I resultatlistan väljer du Nyckelvalv. På sidan Nyckelvalv väljer du Skapa.

    2. På fliken Grundläggande väljer du en prenumeration. Under Resursgrupp väljer du Skapa ny och anger ett resursgruppsnamn.

    3. Ange ett unikt namn för nyckelvalvet.

    4. Välj en region och prisnivå.

    5. Aktivera rensningsskydd för det nya nyckelvalvet.

    6. På fliken Åtkomstprincip väljer du Rollbaserad åtkomstkontroll i Azure för Behörighetsmodell.

    7. Välj Granska + skapa och sedan Skapa.

      Screen shot showing how to create a key vault.

    Anteckna namnet på nyckelvalvet och URI-program som har åtkomst till ditt nyckelvalv måste använda den här URI:n.

    Mer information finns i Snabbstart – Skapa ett Azure Key Vault med Azure-portalen.

    Kunden tilldelar Key Vault Crypto Officer-rollen till ett användarkonto

    Det här steget säkerställer att du kan skapa krypteringsnycklar.

    1. Gå till nyckelvalvet och välj Åtkomstkontroll (IAM) i den vänstra rutan.
    2. Under Bevilja åtkomst till denna resurs väljer du Lägg till rolltilldelning.
    3. Sök efter och välj Key Vault Crypto Officer.
    4. Under Medlemmar väljer du Användare, grupp eller tjänstens huvudnamn.
    5. Välj Medlemmar och sök efter ditt användarkonto.
    6. Välj Granska + tilldela.

    Kunden skapar en krypteringsnyckel

    För att kunna skapa krypteringsnyckeln måste användarens konto tilldelas rollen Key Vault Crypto Officer eller en annan roll som gör det möjligt att skapa en nyckel.

    1. På sidan Key Vault-egenskaper väljer du Nycklar.
    2. Välj Generera/Importera.
    3. På skärmen Skapa en nyckel anger du ett namn för nyckeln. Lämna standardvärdena för de andra alternativen.
    4. Välj Skapa.
    5. Kopiera nyckel-URI:n.

    Kunden ger tjänstleverantörsprogrammet åtkomst till nyckelvalvet

    Tilldela Azure RBAC-rollen Key Vault Crypto Service Encryption User till tjänstleverantörens registrerade program så att det kan komma åt nyckelvalvet.

    1. Gå till nyckelvalvet och välj Åtkomstkontroll (IAM) i den vänstra rutan.
    2. Under Bevilja åtkomst till denna resurs väljer du Lägg till rolltilldelning.
    3. Sök efter och välj Key Vault Crypto Service Encryption User( Key Vault Crypto Service Encryption User).
    4. Under Medlemmar väljer du Användare, grupp eller tjänstens huvudnamn.
    5. Välj Medlemmar och sök efter programnamnet för det program som du installerade från tjänstleverantören.
    6. Välj Granska + tilldela.

    Nu kan du konfigurera kundhanterade nycklar med nyckelvalvets URI och nyckel.

    Konfigurera kundhanterade nycklar för ett befintligt konto

    Fram tills nu har du konfigurerat programmet för flera klientorganisationer i ISV:ens klientorganisation, installerat programmet på kundens klientorganisation och konfigurerat nyckelvalvet och nyckeln i kundens klientorganisation. Därefter kan du konfigurera kundhanterade nycklar på ett befintligt lagringskonto med nyckeln från kundens klientorganisation.

    Exemplen i den här artikeln visar hur du konfigurerar kundhanterade nycklar på ett befintligt lagringskonto med hjälp av en användartilldelad hanterad identitet för att auktorisera åtkomst till nyckelvalvet. Du kan också använda en systemtilldelad hanterad identitet för att konfigurera kundhanterade nycklar på ett befintligt lagringskonto. I båda fallen måste den hanterade identiteten ha rätt behörighet för att få åtkomst till nyckelvalvet. Mer information finns i Autentisera till Azure Key Vault.

    När du konfigurerar kryptering med kundhanterade nycklar för ett befintligt lagringskonto kan du välja att automatiskt uppdatera den nyckelversion som används för Azure Storage-kryptering när en ny version är tillgänglig i det associerade nyckelvalvet. Om du vill göra det utelämnar du nyckelversionen från nyckel-URI:n. Alternativt kan du uttryckligen ange en nyckelversion som ska användas för kryptering tills nyckelversionen uppdateras manuellt. Inklusive nyckelversionen på nyckel-URI:n konfigurerar kundhanterade nycklar för manuell uppdatering av nyckelversionen.

    Viktigt!

    Om du vill rotera en nyckel skapar du en ny version av nyckeln i Azure Key Vault. Azure Storage hanterar inte nyckelrotation, så du måste hantera rotation av nyckeln i nyckelvalvet. Du kan konfigurera automatisk rotation av nycklar i Azure Key Vault eller rotera nyckeln manuellt.

    Azure Storage kontrollerar nyckelvalvet efter en ny nyckelversion bara en gång dagligen. När du roterar en nyckel i Azure Key Vault måste du vänta 24 timmar innan du inaktiverar den äldre versionen.

    Följ dessa steg för att konfigurera kundhanterade nycklar mellan klientorganisationer för ett befintligt lagringskonto i Azure-portalen:

    1. Navigera till ditt lagringskonto.

    2. I under Säkerhet + nätverk väljer du Kryptering. Som standard är nyckelhantering inställt på Microsoft-hanterade nycklar, som du ser i följande bild.

      Screenshot showing encryption options in Azure portal.

    3. Välj alternativet Kundhanterade nycklar.

    4. Välj alternativet Välj från Key Vault.

    5. Välj Ange nyckel-URI och ange nyckelns URI. Utelämna nyckelversionen från URI:n om du vill att Azure Storage automatiskt ska söka efter en ny nyckelversion och uppdatera den.

    6. Välj den prenumeration som innehåller nyckelvalvet och nyckeln.

    7. I fältet Identitetstyp väljer du Användartilldelad och anger sedan den hanterade identiteten med den federerade identitetsautentiseringsuppgift som du skapade tidigare.

    8. Expandera avsnittet Avancerat och välj det registrerade programmet för flera klientorganisationer som du skapade tidigare i ISV:s klientorganisation.

      Screenshot showing how to configure cross-tenant customer-managed keys for an existing storage account in Azure portal.

    9. Spara dina ändringar.

    När du har angett nyckeln från nyckelvalvet i kundens klientorganisation anger Azure-portalen att kundhanterade nycklar har konfigurerats med den nyckeln. Det anger också att automatisk uppdatering av nyckelversionen är aktiverad och visar den nyckelversion som för närvarande används för kryptering. Portalen visar också den typ av hanterad identitet som används för att auktorisera åtkomst till nyckelvalvet, huvud-ID för den hanterade identiteten och program-ID för programmet för flera klientorganisationer.

    Screenshot showing cross-tenant customer-managed key configuration.

    Ändra nyckeln

    Du kan när som helst ändra den nyckel som du använder för Azure Storage-kryptering.

    Kommentar

    När du ändrar nyckel- eller nyckelversionen ändras skyddet av rotkrypteringsnyckeln, men data i ditt Azure Storage-konto förblir krypterade hela tiden. För din del krävs ingen ytterligare åtgärd för att säkerställa att dina data är skyddade. Att ändra nyckeln eller rotera nyckelversionen påverkar inte prestandan. Det finns ingen stilleståndstid som är associerad med att ändra nyckeln eller rotera nyckelversionen.

    Följ dessa steg för att ändra nyckeln med Azure-portalen:

    1. Gå till ditt lagringskonto och visa krypteringsinställningarna.
    2. Välj nyckelvalvet och välj en ny nyckel.
    3. Spara dina ändringar.

    Återkalla åtkomst till ett lagringskonto som använder kundhanterade nycklar

    Om du tillfälligt vill återkalla åtkomsten till ett lagringskonto som använder kundhanterade nycklar inaktiverar du den nyckel som för närvarande används i nyckelvalvet. Det finns ingen prestandapåverkan eller stilleståndstid som är associerad med inaktivering och återaktivering av nyckeln.

    När nyckeln har inaktiverats kan klienter inte anropa åtgärder som läser från eller skriver till en blob eller dess metadata. Information om vilka åtgärder som misslyckas finns i Återkalla åtkomst till ett lagringskonto som använder kundhanterade nycklar.

    Varning

    När du inaktiverar nyckeln i nyckelvalvet förblir data i ditt Azure Storage-konto krypterade, men de blir otillgängliga tills du kan hämta nyckeln igen.

    Så här inaktiverar du en kundhanterad nyckel med Azure-portalen:

    1. Gå till nyckelvalvet som innehåller nyckeln.

    2. Under Objekt väljer du Nycklar.

    3. Högerklicka på nyckeln och välj Inaktivera.

      Screenshot showing how to disable a customer-managed key in the key vault.

    Växla tillbaka till Microsoft-hanterade nycklar

    Du kan när som helst växla från kundhanterade nycklar tillbaka till Microsoft-hanterade nycklar med hjälp av Azure-portalen, PowerShell eller Azure CLI.

    Följ dessa steg om du vill växla från kundhanterade nycklar tillbaka till Microsoft-hanterade nycklar i Azure-portalen:

    1. Navigera till ditt lagringskonto.

    2. Under Säkerhet + nätverk väljer du Kryptering.

    3. Ändra krypteringstyp till Microsoft-hanterade nycklar.

      Screenshot showing how to switch to Microsoft-managed keys for a storage account.

    Se även