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
- Du måste prenumerera på ett erbjudande som innehåller Azure Key Vault-tjänsten.
- Installera PowerShell för Azure Stack Hub.
- Konfigurera Azure Stack Hub PowerShell-miljön.
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.
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:
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
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
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.
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
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