Hantera Key Vault i Azure Stack Hub med hjälp av PowerShell

Den här artikeln beskriver hur du skapar och hanterar ett nyckelvalv i Azure Stack Hub med hjälp av PowerShell. Du får lära dig hur du använder Key Vault PowerShell-cmdletar för att:

  • Skapa ett nyckelvalv.
  • Lagra och hantera kryptografiska nycklar och hemligheter.
  • Ge användare eller appar behörighet att anropa åtgärder i valvet.

Kommentar

Key Vault PowerShell-cmdletar som beskrivs i den här artikeln finns i Azure PowerShell SDK.

Förutsättningar

Aktivera din klientprenumeration för Key Vault-åtgärder

Innan du kan utfärda åtgärder mot ett nyckelvalv måste du se till att klientprenumerationen är aktiverad för valvåtgärder. Kontrollera att key vault-åtgärder är aktiverade genom att köra följande kommando:

Get-AzResourceProvider -ProviderNamespace Microsoft.KeyVault | ft -Autosize

Om din prenumeration är aktiverad för valvåtgärder visar utdata att RegistrationState är registrerad för alla resurstyper i ett nyckelvalv.

Registreringstillstånd för Nyckelvalv i PowerShell

Om valvåtgärder inte är aktiverade utfärdar du följande kommando för att registrera Key Vault-tjänsten i din prenumeration:

Register-AzResourceProvider -ProviderNamespace Microsoft.KeyVault

Om registreringen lyckas returneras följande utdata:

Key Vault-registreringen i PowerShell lyckades

När du anropar key vault-kommandona kan du få ett fel, till exempel "Prenumerationen är inte registrerad för att använda namnområdet Microsoft.KeyVault". Om du får ett fel kontrollerar du att du har aktiverat Key Vault-resursprovidern genom att följa de föregående anvisningarna.

Skapa ett nyckelvalv

Innan du skapar ett nyckelvalv skapar du en resursgrupp så att alla resurser som är relaterade till nyckelvalvet finns i en resursgrupp. Använd följande kommando för att skapa en ny resursgrupp:

New-AzResourceGroup -Name "VaultRG" -Location local -verbose -Force

Ny resursgrupp som genererats i PowerShell

Använd nu följande cmdlet för att skapa ett nyckelvalv i resursgruppen som du skapade tidigare. Det här kommandot läser tre obligatoriska parametrar: resursgruppsnamn, nyckelvalvsnamn och geografisk plats.

Kör följande kommando för att skapa ett nyckelvalv:

New-AzKeyVault -VaultName "Vault01" -ResourceGroupName "VaultRG" -Location local -verbose

Nytt nyckelvalv som genererats i PowerShell

Utdata från det här kommandot visar egenskaperna för nyckelvalvet som du skapade. När en app kommer åt det här valvet måste den använda egenskapen Vault URI , som finns https://vault01.vault.local.azurestack.external i det här exemplet.

distribution av Active Directory Federation Services (AD FS) (AD FS)

I en AD FS-distribution kan du få den här varningen: "Åtkomstprincipen har inte angetts. Ingen användare eller program har åtkomstbehörighet för att använda det här valvet." Lös problemet genom att ange en åtkomstprincip för valvet med kommandot Set-AzKeyVaultAccessPolicy:

# Obtain the security identifier(SID) of the active directory user
$adUser = Get-ADUser -Filter "Name -eq '{Active directory user name}'"
$objectSID = $adUser.SID.Value

# Set the key vault access policy
Set-AzKeyVaultAccessPolicy -VaultName "{key vault name}" -ResourceGroupName "{resource group name}" -ObjectId "{object SID}" -PermissionsToKeys {permissionsToKeys} -PermissionsToSecrets {permissionsToSecrets} -BypassObjectIdValidation

Hantera nycklar och hemligheter

När du har skapat ett valv använder du de här stegen för att skapa och hantera nycklar och hemligheter i valvet.

Skapa en nyckel

Använd cmdleten Add-AzureKeyVaultKey för att skapa eller importera en programvaruskyddad nyckel i ett nyckelvalv:

Add-AzureKeyVaultKey -VaultName "Vault01" -Name "Key01" -verbose -Destination Software

Parametern -Destination används för att ange att nyckeln är programvaruskyddad. När nyckeln har skapats matar kommandot ut information om den skapade nyckeln.

Ny nyckel för nyckelvalv som genererats i PowerShell

Nu kan du referera till den skapade nyckeln med hjälp av dess URI. Om du skapar eller importerar en nyckel som har samma namn som en befintlig nyckel uppdateras den ursprungliga nyckeln med de värden som anges i den nya nyckeln. Du kan komma åt den tidigare versionen med hjälp av den versionsspecifika URI:n för nyckeln. Till exempel:

  • Använd https://vault10.vault.local.azurestack.external:443/keys/key01 för att alltid hämta den aktuella versionen.
  • Använd https://vault010.vault.local.azurestack.external:443/keys/key01/d0b36ee2e3d14e9f967b8b6b1d38938a för att hämta den här specifika versionen.

Hämta en nyckel

Använd cmdleten Get-AzureKeyVaultKey för att läsa en nyckel och dess information:

Get-AzureKeyVaultKey -VaultName "Vault01" -Name "Key01"

Skapa en hemlighet

Använd cmdleten Set-AzureKeyVaultSecret för att skapa eller uppdatera en hemlighet i ett valv. En hemlighet skapas om det inte redan finns en hemlighet. En ny version av hemligheten skapas om den redan finns:

$secretvalue = ConvertTo-SecureString "User@123" -AsPlainText -Force
Set-AzureKeyVaultSecret -VaultName "Vault01" -Name "Secret01" -SecretValue $secretvalue

Skapa en hemlighet i PowerShell

Hämta en hemlighet

Använd cmdleten Get-AzureKeyVaultSecret för att läsa en hemlighet i ett nyckelvalv. Det här kommandot kan returnera alla eller specifika versioner av en hemlighet:

Get-AzureKeyVaultSecret -VaultName "Vault01" -Name "Secret01"

När du har skapat nycklar och hemligheter kan du auktorisera externa appar att använda dem.

Auktorisera en app att använda en nyckel eller hemlighet

Använd följande cmdlet för att auktorisera en app för åtkomst till en nyckel eller hemlighet i nyckelvalvet.

I följande exempel är valvnamnet ContosoKeyVault och appen som du vill auktorisera har ett klient-ID på 00001111-aaaa-2222-bbbb-3333cccc4444. Kör följande kommando för att auktorisera appen. Du kan också ange parametern PermissionsToKeys för att ange behörigheter för en användare, en app eller en säkerhetsgrupp.

När du använder cmdleten mot en AD FS-konfigurerad Azure Stack Hub-miljö ska parametern BypassObjectIdValidation anges

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 00001111-aaaa-2222-bbbb-3333cccc4444 -PermissionsToKeys decrypt,sign -BypassObjectIdValidation

Om du vill auktorisera samma app att läsa hemligheter i valvet kör du följande cmdlet:

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300 -PermissionsToKeys Get -BypassObjectIdValidation

Nästa steg