Hantera Key Vault i Azure Stack Hub med PowerShellManage Key Vault in Azure Stack Hub using PowerShell

Den här artikeln beskriver hur du skapar och hanterar ett nyckel valv i Azure Stack Hub med hjälp av PowerShell.This article describes how to create and manage a key vault in Azure Stack Hub using PowerShell. Du lär dig hur du använder Key Vault PowerShell-cmdlet: ar för att:You'll learn how to use Key Vault PowerShell cmdlets to:

  • Skapa ett nyckelvalv.Create a key vault.
  • Lagra och hantera kryptografiska nycklar och hemligheter.Store and manage cryptographic keys and secrets.
  • Auktorisera användare eller appar för att anropa åtgärder i valvet.Authorize users or apps to invoke operations in the vault.

Anteckning

De Key Vault PowerShell-cmdletarna som beskrivs i den här artikeln finns i Azure PowerShell SDK.The Key Vault PowerShell cmdlets described in this article are provided in the Azure PowerShell SDK.

FörutsättningarPrerequisites

Aktivera din klient prenumeration för Key Vault åtgärderEnable your tenant subscription for Key Vault operations

Innan du kan utfärda alla åtgärder mot ett nyckel valv måste du kontrol lera att klient prenumerationen är aktive rad för valv åtgärder.Before you can issue any operations against a key vault, you must ensure that your tenant subscription is enabled for vault operations. Verifiera att nyckel valvs åtgärder är aktiverade genom att köra följande kommando:To verify that key vault operations are enabled, run the following command:

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

Om din prenumeration är aktive rad för valv åtgärder, visar utdata som RegistrationState har registrerats för alla resurs typer för ett nyckel valv.If your subscription is enabled for vault operations, the output shows RegistrationState is Registered for all resource types of a key vault.

Nyckel valvets registrerings tillstånd i PowerShell

Om valv åtgärder inte har Aktiver ATS utfärdar du följande kommando för att registrera Key Vault tjänsten i din prenumeration:If vault operations are not enabled, issue the following command to register the Key Vault service in your subscription:

Register-AzResourceProvider -ProviderNamespace Microsoft.KeyVault

Om registreringen lyckas returneras följande utdata:If the registration is successful, the following output is returned:

Nyckel valvs registreringen i PowerShell lyckades

När du anropar Key Vault-kommandona kan du få ett fel meddelande, till exempel att prenumerationen inte har registrerats för användning av namn området Microsoft. Key Vault. Om du får ett fel meddelande bekräftar du att du har aktiverat Key Vault resurs leverantören genom att följa anvisningarna ovan.When you invoke the key vault commands, you might receive an error, such as "The subscription is not registered to use namespace 'Microsoft.KeyVault'." If you get an error, confirm you've enabled the Key Vault resource provider by following the previous instructions.

Skapa ett nyckelvalvCreate a key vault

Innan du skapar ett nyckel valv skapar du en resurs grupp så att alla resurser som är relaterade till nyckel valvet finns i en resurs grupp.Before you create a key vault, create a resource group so that all of the resources related to the key vault exist in a resource group. Använd följande kommando för att skapa en ny resurs grupp:Use the following command to create a new resource group:

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

Ny resurs grupp genererad i PowerShell

Använd nu följande cmdlet för att skapa ett nyckel valv i resurs gruppen som du skapade tidigare.Now, use the following cmdlet to create a key vault in the resource group that you created earlier. Detta kommando läser tre obligatoriska parametrar: resurs gruppens namn, nyckel valvets namn och geografisk plats.This command reads three mandatory parameters: resource group name, key vault name, and geographic location.

Kör följande kommando för att skapa ett nyckel valv:Run the following command to create a key vault:

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

Nytt nyckel valv har genererats i PowerShell

Utdata från det här kommandot visar egenskaperna för nyckel valvet som du skapade.The output of this command shows the properties of the key vault that you created. När en app använder det här valvet måste den använda valv-URI -egenskapen, som är https://vault01.vault.local.azurestack.external i det här exemplet.When an app accesses this vault, it must use the Vault URI property, which is https://vault01.vault.local.azurestack.external in this example.

Active Directory Federation Services (AD FS) (AD FS) distributionActive Directory Federation Services (AD FS) deployment

I en AD FS distribution kan du få den här varningen: "åtkomst principen har inte angetts.In an AD FS deployment, you might get this warning: "Access policy is not set. Ingen användare eller ett program har behörighet att använda det här valvet. "No user or application has access permission to use this vault." Lös problemet genom att ange en åtkomst princip för valvet med kommandot set-AzKeyVaultAccessPolicy :To resolve this issue, set an access policy for the vault by using the Set-AzKeyVaultAccessPolicy command:

# 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 hemligheterManage keys and secrets

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.After you create a vault, use these steps to create and manage keys and secrets in the vault.

Skapa en nyckelCreate a key

Använd cmdleten Add-AzureKeyVaultKey för att skapa eller importera en Software-skyddad nyckel i ett nyckel valv:Use the Add-AzureKeyVaultKey cmdlet to create or import a software-protected key in a key vault:

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

-DestinationParametern används för att ange att nyckeln är program skyddad.The -Destination parameter is used to specify that the key is software protected. När nyckeln har skapats matar kommandot ut information om den skapade nyckeln.When the key is successfully created, the command outputs the details of the created key.

Ny nyckel valvs nyckel genererad i PowerShell

Nu kan du referera till den skapade nyckeln med hjälp av dess URI.You can now reference the created key by using its 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.If you create or import a key that has same name as an existing key, the original key is updated with the values specified in the new key. Du kan komma åt den tidigare versionen med hjälp av den versions-/regionsspecifika URI: n för nyckeln.You can access the previous version by using the version-specific URI of the key. Exempel:For example:

  • Använd https://vault10.vault.local.azurestack.external:443/keys/key01 för att alltid hämta den aktuella versionen.Use https://vault10.vault.local.azurestack.external:443/keys/key01 to always get the current version.
  • Använd https://vault010.vault.local.azurestack.external:443/keys/key01/d0b36ee2e3d14e9f967b8b6b1d38938a för att hämta den här versionen.Use https://vault010.vault.local.azurestack.external:443/keys/key01/d0b36ee2e3d14e9f967b8b6b1d38938a to get this specific version.

Hämta en nyckelGet a key

Använd cmdleten Get-AzureKeyVaultKey för att läsa en nyckel och dess information:Use the Get-AzureKeyVaultKey cmdlet to read a key and its details:

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

Skapa en hemlighetCreate a secret

Använd cmdleten set-AzureKeyVaultSecret för att skapa eller uppdatera en hemlighet i ett valv.Use the Set-AzureKeyVaultSecret cmdlet to create or update a secret in a vault. En hemlighet skapas om det inte redan finns en sådan.A secret is created if one does not already exist. En ny version av hemligheten skapas om den redan finns:A new version of the secret is created if it already exists:

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

Skapa en hemlighet i PowerShell

Få en hemlighetGet a secret

Använd cmdleten Get-AzureKeyVaultSecret för att läsa en hemlighet i ett nyckel valv.Use the Get-AzureKeyVaultSecret cmdlet to read a secret in a key vault. Det här kommandot kan returnera alla eller vissa versioner av en hemlighet:This command can return all or specific versions of a secret:

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

När du har skapat nycklar och hemligheter kan du godkänna externa appar för att använda dem.After you create the keys and secrets, you can authorize external apps to use them.

Auktorisera en app att använda en nyckel eller hemlighetAuthorize an app to use a key or secret

Använd följande cmdlet för att auktorisera en app för åtkomst till en nyckel eller hemlighet i nyckel valvet.Use the following cmdlet to authorize an app to access a key or secret in the key vault.

I följande exempel är valv namnet ContosoKeyVault och den app som du vill auktorisera har klient-ID: t 8f8c4bbd-485b-45FD-98f7-ec6300b7b4ed.In the following example, the vault name is ContosoKeyVault, and the app you want to authorize has a client ID of 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed. Verifiera appen genom att köra följande kommando.To authorize the app, run the following command. Du kan också ange parametern PermissionsToKeys för att ange behörigheter för en användare, en app eller en säkerhets grupp.You can also specify the PermissionsToKeys parameter to set permissions for a user, an app, or a security group.

När du använder cmdleten mot en AD FS konfigurerad Azure Stack Hub-miljö bör parametern BypassObjectIdValidation angesWhen using the cmdlet against an AD FS configured Azure Stack Hub environment, the parameter BypassObjectIdValidation should be provided

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed -PermissionsToKeys decrypt,sign -BypassObjectIdValidation

Om du vill ge samma app behörighet att läsa hemligheter i valvet kör du följande cmdlet:If you want to authorize that same app to read secrets in your vault, run the following cmdlet:

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

Nästa stegNext steps