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:

  • Så här skapar du en härdad container (ett valv) i Azure
  • Lägga till en nyckel, hemlighet eller ett certifikat i nyckelvalvet
  • Registrera ett program med Azure Active Directory
  • Auktorisera ett program att använda en nyckel eller hemlighet
  • Ställa in avancerade åtkomstprinciper för nyckelvalv
  • Arbeta med maskinvarusäkerhetsmoduler (HSM)
  • Ta bort nyckelvalvet och associerade nycklar och hemligheter
  • Diverse kommandon för azure-plattformsoberoende kommandoradsgränssnitt

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

Anteckning

Den här artikeln innehåller inte instruktioner om hur du skriver Azure-programmet som ingår i något av stegen, 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 kan du skapa 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 på Microsoft Azure. Om du inte har ett konto kan du registrera dig för en kostnadsfri utvärderingsversion.
  • Azure Command-Line Interface 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 den nyckel eller det lösenord som du skapar i den här artikeln. Ett exempelprogram är tillgängligt från Microsoft Download Center. Anvisningar finns i den inkluderade Readme-filen.

Få hjälp med Azure Cross-Platform Command-Line Interface

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 hjälpen. Till exempel returnerar följande kommandon samma information:

az account set --help
az account set -h

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

Så här skapar du 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 ange ditt användarnamn och lösenord.

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

Om du har mer ä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 Azure Cross-Platform Command-Line Interface finns i Installera Azure CLI.

Skapa en ny resursgrupp

När du 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 har inte registrerats för användning av 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

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

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

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

Utdata från det här kommandot visar egenskaperna för nyckelvalvet 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 URI:en https://contosokeyvault.vault.azure.net . 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 Azure Key Vault skapa en programvaruskyddad nyckel åt dig använder du az key create 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

Du kan nu 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. Till 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 för att alltid hämta den aktuella https://ContosoVault.vault.azure.net/secrets/SQLPassword versionen och https://[keyvault-name].vault.azure.net/secret/[secret-name]/[secret-unique-id] för att hämta den här specifika versionen. Till exempel https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d.

Importera ett certifikat till valvet med hjälp av en .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 Azure Active Directory

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 Azure Active Directory. Programmets ägare måste först registrera den i Azure Active Directory. I slutet av registreringen hämtar programmets ägare följande värden:

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

Programmet måste presentera båda dessa värden för Azure Active Directory för att få en token. Hur ett program konfigureras 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 Azure Active Directory finns i artiklarna Integrera program med Azure Active Directory, Använda portalen för att skapa ett Azure Active Directory-programoch tjänstens huvudnamn som har åtkomst till resurser och Skapa ett huvudnamn för Azure-tjänsten med Azure CLI.

Registrera ett program i Azure Active Directory:

az ad sp create-for-rbac -n "MyApp" --password "hVFkk965BuUv"
# If you don't specify a password, one will be created for you.

Auktorisera ett program 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 ditt valvnamn till exempel är ContosoKeyVault har programmet appID 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed och du vill ge programmet behörighet att dekryptera och logga in med nycklar i valvet med följande kommando:

az keyvault set-policy --name "ContosoKeyVault" --spn 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed --key-permissions decrypt sign

Om du vill ge samma program behörighet att läsa hemligheter i valvet skriver du följande kommando:

az keyvault set-policy --name "ContosoKeyVault" --spn 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed --secret-permissions get

Ställa in avancerade åtkomstprinciper för Nyckelvalv

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

Aktivera Key Vault 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 Encryption.

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

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

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

Arbeta med maskinvarusäkerhetsmoduler (HSM)

För ökad säkerhet kan du importera eller generera nycklar från maskinvarusäkerhetsmoduler (HSM) som aldrig lämnar HSM-gränsen. HSM-modulerna är FIPS 140-2 Level 2-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 nyckelvalvet 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 anvisningar om hur du skapar det här BYOK-paketet finns i Använda HSM-Protected 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 av az keyvault delete 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 Azures plattformsoberoende kommandoradsgränssnitt

Andra kommandon som kan vara användbara 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 över 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