Självstudie: Lagra och använda Azure Cosmos DB-autentiseringsuppgifter med Azure Key Vault
GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord
Viktigt!
Vi rekommenderar att du kommer åt Azure Cosmos DB genom att använda en systemtilldelad hanterad identitet. Om både den hanterade identitetslösningen och den certbaserade lösningen inte uppfyller dina behov använder du Azure Key Vault-lösningen i den här artikeln.
Om du använder Azure Cosmos DB som databas ansluter du till databaser, container och objekt med hjälp av en SDK, API-slutpunkten och antingen den primära eller sekundära nyckeln.
Det är inte bra att lagra slutpunkts-URI:n och känsliga lässkrivningsnycklar direkt i programkoden eller konfigurationsfilen. Helst läss dessa data från miljövariabler i värden. I Azure App Service kan du med appinställningar mata in autentiseringsuppgifter för körning för ditt Azure Cosmos DB-konto utan att utvecklare behöver lagra dessa autentiseringsuppgifter på ett osäkert sätt i klartext.
Azure Key Vault itererar vidare den här bästa metoden genom att låta dig lagra dessa autentiseringsuppgifter på ett säkert sätt samtidigt som du ger tjänster som Azure App Service hanterad åtkomst till autentiseringsuppgifterna. Azure App Service läser säkert dina autentiseringsuppgifter från Azure Key Vault och matar in dessa autentiseringsuppgifter i ditt program som körs.
Med den här bästa metoden kan utvecklare lagra autentiseringsuppgifterna för verktyg som Azure Cosmos DB-emulatorn eller Prova Azure Cosmos DB kostnadsfritt under utvecklingen. Sedan kan driftteamet se till att rätt produktionsinställningar matas in vid körning.
I den här självstudien lär du dig att:
- Skapa en Azure Key Vault-instans
- Lägga till Azure Cosmos DB-autentiseringsuppgifter som hemligheter i nyckelvalvet
- Skapa och registrera en Azure App Service-resurs och bevilja "läsnyckel"-behörigheter
- Mata in key vault-hemligheter i App Service-resursen
Kommentar
Den här självstudien och exempelprogrammet använder ett Azure Cosmos DB för NoSQL-konto. Du kan utföra många av samma steg med hjälp av andra API:er.
Förutsättningar
- Ett befintligt Azure Cosmos DB för NoSQL-konto.
- Om du har en Azure-prenumeration skapar du ett nytt konto.
- Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- Du kan också prova Azure Cosmos DB kostnadsfritt innan du checkar in.
- GitHub-konto.
Innan du börjar: Hämta autentiseringsuppgifter för Azure Cosmos DB
Innan du börjar får du autentiseringsuppgifterna för ditt befintliga konto.
Gå till sidan Azure Portal för det befintliga Azure Cosmos DB för NoSQL-kontot.
På sidan Azure Cosmos DB för NoSQL-konto väljer du menyalternativet Nycklar i navigeringsmenyn.
Registrera värdena från fälten URI och PRIMÄRNYCKEL . Du använder dessa värden senare i den här självstudien.
Skapa en Azure Key Vault-resurs
Skapa först ett nytt nyckelvalv för att lagra ditt API för NoSQL-autentiseringsuppgifter.
Logga in på Azure-portalen.
Välj Skapa ett resurssäkerhetsnyckelvalv > >.
På sidan Skapa nyckelvalv anger du följande information:
Inställning beskrivning Abonnemang Välj den Azure-prenumeration som du vill använda för det här Azure Cosmos-kontot. Resursgrupp Välj en resursgrupp eller välj Skapa ny och ange sedan ett unikt namn för den nya resursgruppen. Namn på nyckelvalv Ange ett globalt unikt namn för ditt nyckelvalv. Region Välj en geografisk plats som värd för ditt Azure Cosmos DB-konto. Använd den plats som är närmast dina användare för att ge dem så snabb åtkomst till data som möjligt. Prisnivå Välj Standard. Lämna de återstående inställningarna till sina standardvärden.
Välj Granska + skapa.
Granska de inställningar du anger och välj sedan Skapa. Det tar några minuter att skapa kontot. Vänta tills portalsidan visas Distributionen är klar innan du går vidare.
Lägga till Azure Cosmos DB-åtkomstnycklar i Key Vault
Lagra nu dina Azure Cosmos DB-autentiseringsuppgifter som hemligheter i nyckelvalvet.
Välj Gå till resurs för att gå till resurssidan för Azure Key Vault.
På resurssidan för Azure Key Vault väljer du menyalternativet Hemligheter i navigeringsmenyn.
Välj Generera/importera på menyn.
På sidan Skapa en hemlighet anger du följande information:
Inställning beskrivning Alternativ för uppladdning Manuell Namn cosmos-endpoint Hemligt värde Ange den URI som du kopierade tidigare i den här självstudien. Välj Skapa för att skapa den nya cosmos-endpoint-hemligheten .
Välj Generera/importera på menyn igen. På sidan Skapa en hemlighet anger du följande information:
Inställning beskrivning Alternativ för uppladdning Manuell Namn cosmos-readwrite-key Hemligt värde Ange primärnyckeln som du kopierade tidigare i den här självstudien. Välj Skapa för att skapa den nya hemligheten cosmos-readwrite-key .
När hemligheterna har skapats visar du dem i listan över hemligheter på sidan Hemligheter .
Välj varje nyckel, välj den senaste versionen och kopiera sedan den hemliga identifieraren. Du använder identifieraren för hemligheterna cosmos-endpoint och cosmos-readwrite-key senare i den här självstudien.
Dricks
Den hemliga identifieraren kommer att vara i det här formatet
https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<version-id>
. Om namnet på nyckelvalvet till exempel är msdocs-key-vault är namnet på nyckeln cosmos-readwrite-key och versionen om 83b995e363d94799ac6cf487ae0e12e. Då skulle den hemliga identifieraren varahttps://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/83b995e363d947999ac6cf487ae0e12e
.
Skapa och registrera en Azure-webbapp med Azure Key Vault
I det här avsnittet skapar du en ny Azure-webbapp, distribuerar ett exempelprogram och registrerar sedan webbappens hanterade identitet med Azure Key Vault.
Skapa en ny GitHub-lagringsplats med hjälp av mallen cosmos-db-nosql-dotnet-sample-web-environment-variables.
I Azure Portal väljer du Skapa en resurswebbapp > >.
På sidan Skapa webbapp och fliken Grundläggande anger du följande information:
Inställning beskrivning Abonnemang Välj den Azure-prenumeration som du vill använda för det här Azure Cosmos-kontot. Resursgrupp Välj en resursgrupp eller välj Skapa ny och ange sedan ett unikt namn för den nya resursgruppen. Namn Ange ett globalt unikt namn för webbappen. Publicera Välj Kod. Körningsstack Välj .NET 6 (LTS). Operativsystem Välj Windows. Region Välj en geografisk plats som värd för ditt Azure Cosmos DB-konto. Använd den plats som är närmast dina användare för att ge dem så snabb åtkomst till data som möjligt. Lämna de återstående inställningarna till sina standardvärden.
Välj Nästa: Distribution.
På fliken Distribution anger du följande information:
Inställning beskrivning Kontinuerlig distribution Välj Aktivera. GitHub-konto Välj Auktorisera. Följ auktoriseringsanvisningarna för GitHub-kontot för att ge Azure behörighet att läsa din nyligen skapade GitHub-lagringsplats. Organisation Välj organisationen för din nya GitHub-lagringsplats. Lagringsplats Välj namnet på din nya GitHub-lagringsplats. Gren Välj huvud. Välj Granska + skapa.
Granska de inställningar du anger och välj sedan Skapa. Det tar några minuter att skapa kontot. Vänta tills portalsidan visas Distributionen är klar innan du går vidare.
Du kan behöva vänta några minuter tills webbprogrammet distribueras till webbappen. På resurssidan för Azure Web App väljer du Bläddra för att se appens standardtillstånd.
Välj menyalternativet Identitetsnavigering .
På sidan Identitet väljer du På för Systemtilldelad hanterad identitet och väljer sedan Spara.
Mata in Azure Key Vault-hemligheter som Azure Web App-appinställningar
Slutligen matar du in hemligheterna som lagras i ditt nyckelvalv som appinställningar i webbappen. Appinställningarna matar i sin tur in autentiseringsuppgifterna i programmet vid körning utan att lagra autentiseringsuppgifterna i klartext.
Gå tillbaka till nyckelvalvssidan i Azure Portal. Välj Åtkomstprinciper på navigeringsmenyn.
På sidan Åtkomstprinciper väljer du Skapa på menyn.
På fliken Behörigheter på sidan Skapa en åtkomstprincip väljer du alternativet Hämta i avsnittet Hemliga behörigheter. Välj Nästa.
På fliken Huvudnamn väljer du namnet på webbappen som du skapade tidigare i den här självstudien. Välj Nästa.
Kommentar
I det här exemplet får webbappen namnet msdocs-dotnet-web.
Välj Nästa igen för att hoppa över fliken Program . På fliken Granska + skapa granskar du de inställningar du anger och väljer sedan Skapa.
Gå tillbaka till webbappsidan i Azure Portal. Välj Konfiguration på navigeringsmenyn.
På sidan Konfiguration väljer du Ny programinställning. I dialogrutan Lägg till/redigera program anger du följande information:
Inställning Description Namn CREDENTIALS__ENDPOINT
Tangent Hämta den hemliga identifieraren för cosmos-endpoint-hemligheten i ditt nyckelvalv som du skapade tidigare i den här självstudien. Ange identifieraren i följande format: @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.Dricks
Kontrollera att miljövariabeln har ett dubbelt understreck (
__
) värde i stället för ett enda understreck. Det dubbla understrecket är en nyckeldelimeter som stöds av .NET på alla plattformar. Mer information finns i konfiguration av miljövariabler.Kommentar
Om den hemliga identifieraren till exempel är
https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07
är@Microsoft.KeyVault(SecretUri=https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07)
referensen .Välj OK för att spara den nya appinställningen
Välj Ny programinställning igen. I dialogrutan Lägg till/redigera program anger du följande information och väljer sedan OK:
Inställning Description Namn CREDENTIALS__KEY
Tangent Hämta den hemliga identifieraren för hemligheten cosmos-readwrite-key i ditt nyckelvalv som du skapade tidigare i den här självstudien. Ange identifieraren i följande format: @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.På sidan Konfiguration väljer du Spara för att uppdatera appinställningarna för webbappen.
Vänta några minuter tills webbappen startas om med de nya appinställningarna. I det här läget bör de nya appinställningarna ange att de är en referens för nyckelvalvet.
Välj Översikt på navigeringsmenyn. Välj Bläddra för att se appen med ifyllda autentiseringsuppgifter.
Nästa steg
- Information om hur du konfigurerar en brandvägg för Azure Cosmos DB finns i artikeln om brandväggsstöd .
- Information om hur du konfigurerar tjänstslutpunkten för virtuellt nätverk finns i artikeln om säker åtkomst med hjälp av VNet-tjänstens slutpunkt .