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

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 sleutelkluisbewerkingen zijn ingeschakeld:

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

Als uw abonnement is ingeschakeld voor kluisbewerkingen, ziet u in de uitvoer RegistrationState is Geregistreerd voor alle resourcetypen van een sleutelkluis.

Key Vault-registratiestatus in PowerShell

Als kluisbewerkingen niet zijn ingeschakeld, geeft u de volgende opdracht 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:

Key Vault-registratie in PowerShell is voltooid

Wanneer u de key vault-opdrachten aanroept, ontvangt u mogelijk een foutbericht, zoals 'Het abonnement is niet geregistreerd voor het 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.

Een sleutelkluis maken

Voordat u een sleutelkluis maakt, maakt u een resourcegroep, zodat alle resources die zijn gerelateerd aan de sleutelkluis in een resourcegroep staan. Gebruik de volgende opdracht om een nieuwe resourcegroep te maken:

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

Nieuwe resourcegroep gegenereerd in PowerShell

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

Nieuwe sleutelkluis gegenereerd in PowerShell

De uitvoer van deze opdracht toont de eigenschappen van de sleutelkluis die u hebt gemaakt. Wanneer een app toegang heeft tot deze kluis, moet deze de eigenschap Kluis-URI gebruiken, zoals https://vault01.vault.local.azurestack.external in dit voorbeeld.

Active Directory Federation Services (AD FS)-implementatie

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 in te stellen voor de kluis 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 te maken of importeren in een sleutelkluis:

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.

Nieuwe sleutelkluis die is gegenereerd in PowerShell

U kunt nu verwijzen naar de gemaakte sleutel met behulp van de bijbehorende URI. Als u een sleutel maakt of importeert die dezelfde naam heeft als een bestaande sleutel, wordt de oorspronkelijke sleutel bijgewerkt met de waarden die zijn opgegeven in de nieuwe sleutel. U hebt toegang tot de vorige versie met behulp van de versiespecifieke URI van de sleutel. Bijvoorbeeld:

  • 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 om deze specifieke versie op te halen.

Een sleutel ophalen

Gebruik de cmdlet Get-AzureKeyVaultKey om een sleutel en de details ervan 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 dit nog niet bestaat. Er wordt een nieuwe versie van het geheim gemaakt als deze al bestaat:

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

Een geheim maken in PowerShell

Een geheim ophalen

Gebruik de cmdlet Get-AzureKeyVaultSecret om een geheim in een sleutelkluis te lezen. Met deze opdracht kunnen alle of specifieke versies van een geheim worden geretourneerd:

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

Nadat u de sleutels en geheimen hebt gemaakt, kunt u externe apps autoriseren om ze te gebruiken.

Een app autoriseren om een sleutel of geheim te gebruiken

Gebruik de volgende cmdlet om een app toegang te verlenen tot een sleutel of geheim in de sleutelkluis.

In het volgende voorbeeld is de kluisnaam ContosoKeyVault en heeft de app die u wilt autoriseren de client-id 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed. 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 met AD FS geconfigureerde Azure Stack Hub-omgeving, moet de parameter BypassObjectIdValidation worden opgegeven

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed -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

Volgende stappen