Key Vault beheren in Azure Stack Hub met behulp van PowerShell
In dit artikel wordt beschreven hoe u een sleutelkluis maakt en beheert in Azure Stack Hub met behulp van PowerShell. U leert hoe u Key Vault PowerShell-cmdlets gebruikt voor het volgende:
- Een sleutelkluis maken.
- Cryptografische sleutels en geheimen opslaan en beheren.
- Gebruikers of apps machtigen om bewerkingen in de kluis aan te roepen.
Notitie
De Key Vault PowerShell-cmdlets die in dit artikel worden beschreven, zijn beschikbaar in de Azure PowerShell SDK.
Vereisten
- U moet zich abonneren op een aanbieding die de Azure Key Vault-service bevat.
- Installeer PowerShell voor Azure Stack Hub.
- Configureer de Azure Stack Hub PowerShell-omgeving.
Uw tenantabonnement inschakelen voor Key Vault-bewerkingen
Voordat u bewerkingen kunt uitvoeren voor een sleutelkluis, moet u ervoor zorgen dat uw tenantabonnement is ingeschakeld voor kluisbewerkingen. Voer de volgende opdracht uit om te controleren of key vault-bewerkingen zijn ingeschakeld:
Get-AzResourceProvider -ProviderNamespace Microsoft.KeyVault | ft -Autosize
Als uw abonnement is ingeschakeld voor kluisbewerkingen, ziet u in de uitvoer dat RegistrationState is geregistreerd voor alle resourcetypen van een sleutelkluis.
Als kluisbewerkingen niet zijn ingeschakeld, voert u de volgende opdracht uit om de Key Vault-service in uw abonnement te registreren:
Register-AzResourceProvider -ProviderNamespace Microsoft.KeyVault
Als de registratie is geslaagd, wordt de volgende uitvoer geretourneerd:
Wanneer u de sleutelkluisopdrachten aanroept, treedt er mogelijk een fout op, zoals 'Het abonnement is niet geregistreerd voor gebruik van naamruimte 'Microsoft.KeyVault'. Als er een fout optreedt, controleert u of u de Key Vault-resourceprovider hebt ingeschakeld door de vorige instructies te volgen.
Maak een sleutelkluis.
Voordat u een sleutelkluis maakt, maakt u een resourcegroep, zodat alle resources die zijn gerelateerd aan de sleutelkluis in een resourcegroep aanwezig zijn. Gebruik de volgende opdracht om een nieuwe resourcegroep te maken:
New-AzResourceGroup -Name "VaultRG" -Location local -verbose -Force
Gebruik nu de volgende cmdlet om een sleutelkluis te maken in de resourcegroep die u eerder hebt gemaakt. Met deze opdracht worden drie verplichte parameters gelezen: de naam van de resourcegroep, de naam van de sleutelkluis en de geografische locatie.
Voer de volgende opdracht uit om een sleutelkluis te maken:
New-AzKeyVault -VaultName "Vault01" -ResourceGroupName "VaultRG" -Location local -verbose
In de uitvoer van deze opdracht ziet u de eigenschappen van de sleutelkluis die u hebt gemaakt. Wanneer een app toegang heeft tot deze kluis, moet deze de eigenschap Kluis-URI gebruiken, die https://vault01.vault.local.azurestack.external
zich in dit voorbeeld bevindt.
Implementatie van Active Directory Federation Services (AD FS)
In een AD FS-implementatie krijgt u mogelijk deze waarschuwing: 'Toegangsbeleid is niet ingesteld. Geen enkele gebruiker of toepassing heeft toegangsmachtigingen om deze kluis te gebruiken. U kunt dit probleem oplossen door een toegangsbeleid voor de kluis in te stellen met behulp van de opdracht 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
Sleutels en geheimen beheren
Nadat u een kluis hebt gemaakt, gebruikt u deze stappen om sleutels en geheimen in de kluis te maken en te beheren.
Een sleutel maken
Gebruik de cmdlet Add-AzureKeyVaultKey om een met software beveiligde sleutel in een sleutelkluis te maken of te importeren:
Add-AzureKeyVaultKey -VaultName "Vault01" -Name "Key01" -verbose -Destination Software
De -Destination
parameter wordt gebruikt om op te geven dat de sleutel is beveiligd met software. Wanneer de sleutel is gemaakt, voert de opdracht de details van de gemaakte sleutel uit.
U kunt nu verwijzen naar de gemaakte sleutel met behulp van de URI. Als u een sleutel met dezelfde naam als een bestaande sleutel maakt of importeert, wordt de oorspronkelijke sleutel bijgewerkt met de waarden die zijn opgegeven in de nieuwe sleutel. U kunt toegang krijgen tot de vorige versie met behulp van de versiespecifieke URI van de sleutel. Voorbeeld:
- Gebruik
https://vault10.vault.local.azurestack.external:443/keys/key01
om altijd de meest recente versie op te halen. - Gebruik
https://vault010.vault.local.azurestack.external:443/keys/key01/d0b36ee2e3d14e9f967b8b6b1d38938a
dit om deze specifieke versie op te halen.
Een sleutel ophalen
Gebruik de cmdlet Get-AzureKeyVaultKey om een sleutel en de bijbehorende details te lezen:
Get-AzureKeyVaultKey -VaultName "Vault01" -Name "Key01"
Een geheim maken
Gebruik de cmdlet Set-AzureKeyVaultSecret om een geheim in een kluis te maken of bij te werken. Er wordt een geheim gemaakt als er nog geen geheim bestaat. Er wordt een nieuwe versie van het geheim gemaakt als het al bestaat:
$secretvalue = ConvertTo-SecureString "User@123" -AsPlainText -Force
Set-AzureKeyVaultSecret -VaultName "Vault01" -Name "Secret01" -SecretValue $secretvalue
Een geheim ophalen
Gebruik de cmdlet Get-AzureKeyVaultSecret om een geheim in een sleutelkluis te lezen. Met deze opdracht kunt u alle of specifieke versies van een geheim retourneren:
Get-AzureKeyVaultSecret -VaultName "Vault01" -Name "Secret01"
Nadat u de sleutels en geheimen hebt gemaakt, kunt u externe apps machtigen om ze te gebruiken.
Een app machtigen om een sleutel of geheim te gebruiken
Gebruik de volgende cmdlet om een app toegang te geven tot een sleutel of geheim in de sleutelkluis.
In het volgende voorbeeld is de kluisnaam ContosoKeyVault en heeft de app die u wilt autoriseren een client-id van 00001111-aaaa-2222-bbbb-3333cccc44444. Voer de volgende opdracht uit om de app te autoriseren. U kunt ook de parameter PermissionsToKeys opgeven om machtigingen in te stellen voor een gebruiker, een app of een beveiligingsgroep.
Wanneer u de cmdlet gebruikt voor een door AD FS geconfigureerde Azure Stack Hub-omgeving, moet de parameter BypassObjectIdValidation worden opgegeven
Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 00001111-aaaa-2222-bbbb-3333cccc4444 -PermissionsToKeys decrypt,sign -BypassObjectIdValidation
Als u dezelfde app wilt autoriseren om geheimen in uw kluis te lezen, voert u de volgende cmdlet uit:
Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300 -PermissionsToKeys Get -BypassObjectIdValidation