Hantera Key Vault med Hjälp av Azure CLI

Den här artikeln beskriver hur du kommer igång med Azure Key Vault med hjälp av Azure CLI. Du kan se information om:

  • Skapa en härdad container (ett valv) i Azure
  • Lägga till en nyckel, hemlighet eller ett certifikat i nyckelvalvet
  • Registrera ett program med Microsoft Entra-ID
  • Auktorisera ett program för att använda en nyckel eller hemlighet
  • Ställa in avancerade åtkomstprinciper för Key Vault
  • Arbeta med maskinvarusäkerhetsmoduler (HSM: er)
  • Ta bort nyckelvalvet och associerade nycklar och hemligheter
  • Diverse kommandon för kommandoradsgränssnitt för Azure Cross-Platform

Azure Key Vault är tillgängligt i de flesta regioner. Mer information finns på sidan med Key Vault-priser.

Kommentar

Den här artikeln innehåller inte instruktioner om hur du skriver det Azure-program som ett av stegen innehåller, som visar hur du auktoriserar ett program att använda en nyckel eller hemlighet i nyckelvalvet.

En översikt över Azure Key Vault finns i Vad är Azure Key Vault?) Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

Om du vill använda Azure CLI-kommandona i den här artikeln måste du ha följande:

  • En prenumeration till Microsoft Azure. Om du inte har ett konto kan du registrera dig för en kostnadsfri utvärderingsversion.
  • Azure CLI version 2.0 eller senare. Information om hur du installerar den senaste versionen finns i Installera Azure CLI.
  • Ett program som ska konfigureras för att använda nyckeln eller lösenordet som du skapar i den här artikeln. Ett exempelprogram är tillgängligt från Microsoft Download Center. Instruktioner finns i den inkluderade Readme-filen.

Få hjälp med Azures plattformsoberoende kommandoradsgränssnitt

Den här artikeln förutsätter att du är bekant med kommandoradsgränssnittet (Bash, Terminal, Kommandotolken).

Parametern --help eller -h kan användas för att visa hjälp för specifika kommandon. Alternativt kan Azure-hjälpen [kommando] [alternativ] även användas. Om du är osäker på vilka parametrar som krävs av ett kommando kan du läsa mer i hjälpen. Följande kommandon returnerar till exempel samma information:

az account set --help
az account set -h

Du kan också läsa följande artiklar för att bekanta dig med Azure Resource Manager i Azure Cross-Platform Command-Line Interface:

Skapa en härdad container (ett valv) i Azure

Valv är skyddade containrar som backas upp av maskinvarusäkerhetsmoduler. Med valv så minskar risken för att säkerhetsinformation förloras av misstag eftersom lagringen av hemligheter centraliseras. Key Vault kontrollerar och loggar dessutom åtkomsten till allt som lagras i valven. Azure Key Vault kan hantera förfrågningar om och förnyelser av TLS-certifikat (Transport Layer Security), och ger tillgång till alla de funktioner som krävs för en robust livscykelhantering av certifikat. I nästa steg skapar du ett valv.

Ansluta till dina prenumerationer

Om du vill logga in interaktivt använder du följande kommando:

az login

Om du vill logga in med ett organisationskonto kan du skicka in ditt användarnamn och lösenord.

az login -u username@domain.com -p password

Om du har fler än en prenumeration och behöver ange vilken du vill använda skriver du följande för att se prenumerationerna för ditt konto:

az account list

Ange en prenumeration med prenumerationsparametern.

az account set --subscription <subscription name or ID>

Mer information om hur du konfigurerar Kommandoradsgränssnitt för Azure cross-platform finns i Installera Azure CLI.

Skapa en ny resursgrupp

När du använder Azure Resource Manager skapas alla relaterade resurser i en resursgrupp. Du kan skapa ett nyckelvalv i en befintlig resursgrupp. Om du vill använda en ny resursgrupp kan du skapa en ny.

az group create -n "ContosoResourceGroup" -l "East Asia"

Den första parametern är resursgruppens namn och den andra parametern är platsen. Så här hämtar du en lista över alla möjliga platser:

az account list-locations

Registrera Key Vault-resursprovidern

Du kan se felet "Prenumerationen är inte registrerad för att använda namnområdet Microsoft.KeyVault" när du försöker skapa ett nytt nyckelvalv. Om meddelandet visas kontrollerar du att Key Vault-resursprovidern är registrerad i din prenumeration. Det här är en engångsåtgärd för varje prenumeration.

az provider register -n Microsoft.KeyVault

Skapa ett nyckelvalv

az keyvault create Använd kommandot för att skapa ett nyckelvalv. Det här skriptet har tre obligatoriska parametrar: ett resursgruppsnamn, ett nyckelvalvnamn och den geografiska platsen.

Om du vill skapa ett nytt valv med namnet ContosoKeyVault i resursgruppen ContosoResourceGroup, som finns på platsen Asien , östra skriver du:

az keyvault create --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --location "East Asia"

Utdata från det här kommandot visar egenskaperna för det nyckelvalv som du har skapat. De två viktigaste egenskaperna är:

  • name: I exemplet är namnet ContosoKeyVault. Du använder det här namnet för andra Key Vault-kommandon.
  • vaultUri: I exemplet är https://contosokeyvault.vault.azure.netURI:n . Program som använder ditt valv via dess REST-API måste använda denna URI.

Nu har ditt Azure-konto behörighet att utföra åtgärder i det här nyckelvalvet. Än så länge har ingen annan behörighet.

Lägga till en nyckel, hemlighet eller ett certifikat i nyckelvalvet

Om du vill att Azure Key Vault ska skapa en programvaruskyddad nyckel åt dig använder az key create du kommandot .

az keyvault key create --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --protection software

Om du har en befintlig nyckel i en .pem-fil kan du ladda upp den till Azure Key Vault. Du kan välja att skydda nyckeln med programvara eller HSM. Det här exemplet importerar nyckeln från .pem-filen och skyddar den med programvara med lösenordet "hVFkk965BuUv":

az keyvault key import --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --pem-file "./softkey.pem" --pem-password "hVFkk965BuUv" --protection software

Nu kan du referera till nyckeln som du skapade eller laddade upp till Azure Key Vault med hjälp av dess URI. Använd https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey för att alltid hämta den aktuella versionen. Använd https://<keyvault-name>.vault.azure.net/keys/<keyname>/<key-unique-id> för att hämta den här specifika versionen. Exempel: https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87

Lägg till en hemlighet i valvet, som är ett lösenord med namnet SQLPassword, och som har värdet "hVFkk965BuUv" i Azure Key Vaults.

az keyvault secret set --vault-name "ContosoKeyVault" --name "SQLPassword" --value "hVFkk965BuUv "

Referera till det här lösenordet med hjälp av dess URI. Använd https://ContosoVault.vault.azure.net/secrets/SQLPassword för att alltid hämta den aktuella versionen och https://<keyvault-name>.vault.azure.net/secret/<secret-name>/<secret-unique-id> för att hämta den här specifika versionen. Exempel: https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d

Importera ett certifikat till valvet med hjälp av .pem eller .pfx.

az keyvault certificate import --vault-name "ContosoKeyVault" --file "c:\cert\cert.pfx" --name "ContosoCert" --password "hVFkk965BuUv"

Nu ska vi visa nyckeln, hemligheten eller certifikatet som du skapade:

  • Om du vill visa dina nycklar skriver du:
az keyvault key list --vault-name "ContosoKeyVault"
  • Om du vill visa dina hemligheter skriver du:
az keyvault secret list --vault-name "ContosoKeyVault"
  • Om du vill visa certifikat skriver du:
az keyvault certificate list --vault-name "ContosoKeyVault"

Registrera ett program med Microsoft Entra-ID

Det här steget utförs normalt av en utvecklare, på en separat dator. Det är inte specifikt för Azure Key Vault men ingår här för att öka medvetenheten. För att slutföra appregistreringen måste ditt konto, valvet och programmet finnas i samma Azure-katalog.

Program som använder ett nyckelvalv måste autentiseras med hjälp av en token från Microsoft Entra-ID. Ägaren av programmet måste registrera det i Microsoft Entra först. I slutet av registreringen hämtar programmets ägare följande värden:

  • Ett program-ID (även kallat Microsoft Entra-klient-ID eller appID)
  • En autentiseringsnyckel (kallas även delad hemlighet).

Programmet måste presentera båda dessa värden för Microsoft Entra-ID för att hämta en token. Hur ett program är konfigurerat för att hämta en token beror på programmet. I Key Vault-exempelprogrammet anger programmets ägare dessa värden i filen app.config.

Detaljerade anvisningar om hur du registrerar ett program med Microsoft Entra-ID finns i artiklarna Integrera program med Microsoft Entra-ID: Använd portalen för att skapa ett Microsoft Entra-program och tjänstens huvudnamn som kan komma åt resurser och Skapa ett Azure-tjänsthuvudnamn med Azure CLI.

Så här registrerar du ett program i Microsoft Entra-ID:

az ad sp create-for-rbac -n "MyApp" --password "hVFkk965BuUv" --role Contributor --scopes /subscriptions/<subscription id>
# If you don't specify a password, one will be created for you.

Auktorisera ett program för att använda en nyckel eller hemlighet

Om du vill ge programmet åtkomst till nyckeln eller hemligheten i valvet använder du az keyvault set-policy kommandot .

Om valvnamnet till exempel är ContosoKeyVault och du vill auktorisera programmet att dekryptera och signera med nycklar i valvet använder du följande kommando med ditt program-ID:

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --key-permissions decrypt sign

Om du vill auktorisera samma program för att läsa hemligheter i valvet skriver du följande kommando:

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --secret-permissions get

Ställa in avancerade åtkomstprinciper för Key Vault

Använd az keyvault update för att aktivera avancerade principer för nyckelvalvet.

Aktivera Key Vault för distribution: Tillåter att virtuella datorer hämtar certifikat som lagras som hemligheter från valvet.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-deployment "true"

Aktivera Key Vault för diskkryptering: Krävs när du använder valvet för Azure Disk-kryptering.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-disk-encryption "true"

Aktivera Key Vault för malldistribution: Gör att Resource Manager kan hämta hemligheter från valvet.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-template-deployment "true"

Arbeta med maskinvarusäkerhetsmoduler (HSM: er)

För ytterligare säkerhet kan du importera eller generera nycklar från maskinvarusäkerhetsmoduler (HSM) som aldrig lämnar HSM-gränsen. HSM:erna är FIPS 140-verifierade. Om detta krav inte är nödvändigt för dig hoppar du över det här avsnittet och går vidare till Ta bort nyckelvalvet och associerade nycklar och hemligheter.

Om du vill skapa HSM-skyddade nycklar behöver du en valvprenumeration som stöder HSM-skyddade nycklar.

När du skapar keyvault lägger du till parametern "sku":

az keyvault create --name "ContosoKeyVaultHSM" --resource-group "ContosoResourceGroup" --location "East Asia" --sku "Premium"

Du kan lägga till programvaruskyddade nycklar (som du såg tidigare) och HSM-skyddade nycklar till det här valvet. Om du vill skapa en HSM-skyddad nyckel anger du målparametern till "HSM":

az keyvault key create --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --protection "hsm"

Du kan använda följande kommando för att importera en nyckel från en .pem-fil på datorn. Det här kommandot importerar nyckeln till HSM-moduler i Key Vault-tjänsten:

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --pem-file "/.softkey.pem" --protection "hsm" --pem-password "PaSSWORD"

Nästa kommando importerar ett BYOK-paket (Bring Your Own Key). På så sätt kan du generera nyckeln i din lokala HSM och överföra den till HSM-moduler i Key Vault-tjänsten utan att nyckeln lämnar HSM-gränsen:

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --byok-file "./ITByok.byok" --protection "hsm"

Mer detaljerade instruktioner om hur du genererar det här BYOK-paketet finns i Så här använder du HSM-skyddade nycklar med Azure Key Vault.

Ta bort nyckelvalvet och associerade nycklar och hemligheter

Om du inte längre behöver nyckelvalvet och dess nycklar eller hemligheter kan du ta bort nyckelvalvet med hjälp az keyvault delete av kommandot :

az keyvault delete --name "ContosoKeyVault"

Eller så kan du ta bort en hel Azure-resursgrupp, som innehåller nyckelvalvet och andra resurser som du har lagt till i gruppen:

az group delete --name "ContosoResourceGroup"

Diverse kommandon för kommandoradsgränssnitt för Azure Cross-Platform

Andra kommandon som du kan ha nytta av för att hantera Azure Key Vault.

Det här kommandot visar en tabellvisning av alla nycklar och valda egenskaper:

az keyvault key list --vault-name "ContosoKeyVault"

Det här kommandot visar en fullständig lista med egenskaper för den angivna nyckeln:

az keyvault key show --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

Det här kommandot visar en tabellvisning av alla hemliga namn och valda egenskaper:

az keyvault secret list --vault-name "ContosoKeyVault"

Här är ett exempel på hur du tar bort en specifik nyckel:

az keyvault key delete --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

Här är ett exempel på hur du tar bort en specifik hemlighet:

az keyvault secret delete --vault-name "ContosoKeyVault" --name "SQLPassword"

Nästa steg