Udostępnij za pośrednictwem


Zarządzanie usługą Key Vault w usłudze Azure Stack Hub przy użyciu programu PowerShell

W tym artykule opisano sposób tworzenia magazynu kluczy i zarządzania nim w usłudze Azure Stack Hub przy użyciu programu PowerShell. Dowiesz się, jak używać poleceń cmdlet programu PowerShell usługi Key Vault do wykonywania następujących zadań:

  • Tworzenie magazynu kluczy.
  • Przechowywanie kluczy kryptograficznych i wpisów tajnych oraz zarządzanie nimi.
  • Autoryzuj użytkowników lub aplikacje do wywoływania operacji w magazynie.

Uwaga

Polecenia cmdlet programu PowerShell usługi Key Vault opisane w tym artykule znajdują się w zestawie AZURE PowerShell SDK.

Wymagania wstępne

Włączanie subskrypcji dzierżawy dla operacji usługi Key Vault

Aby można było wydać jakiekolwiek operacje względem magazynu kluczy, należy upewnić się, że subskrypcja dzierżawy jest włączona na potrzeby operacji magazynu. Aby sprawdzić, czy operacje magazynu kluczy są włączone, uruchom następujące polecenie:

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

Jeśli twoja subskrypcja jest włączona na potrzeby operacji magazynu, w danych wyjściowych zostanie wyświetlona wartość RegistrationState jest zarejestrowana dla wszystkich typów zasobów magazynu kluczy.

Stan rejestracji magazynu kluczy w programie PowerShell

Jeśli operacje magazynu nie są włączone, wykonaj następujące polecenie, aby zarejestrować usługę Key Vault w ramach subskrypcji:

Register-AzResourceProvider -ProviderNamespace Microsoft.KeyVault

Jeśli rejestracja zakończy się pomyślnie, zwracane są następujące dane wyjściowe:

Rejestracja magazynu kluczy w programie PowerShell powiodła się

Podczas wywoływania poleceń magazynu kluczy może zostać wyświetlony błąd, taki jak "Subskrypcja nie jest zarejestrowana do używania przestrzeni nazw Microsoft.KeyVault". Jeśli wystąpi błąd, upewnij się, że włączono dostawcę zasobów usługi Key Vault, postępując zgodnie z poprzednimi instrukcjami.

Tworzenie magazynu kluczy

Przed utworzeniem magazynu kluczy utwórz grupę zasobów, aby wszystkie zasoby powiązane z magazynem kluczy istniały w grupie zasobów. Użyj następującego polecenia, aby utworzyć nową grupę zasobów:

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

Nowa grupa zasobów wygenerowana w programie PowerShell

Teraz użyj następującego polecenia cmdlet, aby utworzyć magazyn kluczy w utworzonej wcześniej grupie zasobów. To polecenie odczytuje trzy obowiązkowe parametry: nazwę grupy zasobów, nazwę magazynu kluczy i lokalizację geograficzną.

Uruchom następujące polecenie, aby utworzyć magazyn kluczy:

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

Nowy magazyn kluczy wygenerowany w programie PowerShell

Dane wyjściowe tego polecenia pokazują właściwości utworzonego magazynu kluczy. Gdy aplikacja uzyskuje dostęp do tego magazynu, musi użyć właściwości identyfikatora URI magazynu, która znajduje się https://vault01.vault.local.azurestack.external w tym przykładzie.

Wdrożenie usług Active Directory Federation Services (AD FS)

W przypadku wdrożenia usług AD FS może zostać wyświetlone następujące ostrzeżenie: "Zasady dostępu nie są ustawione. Żaden użytkownik lub aplikacja nie ma uprawnień dostępu do korzystania z tego magazynu". Aby rozwiązać ten problem, ustaw zasady dostępu dla magazynu przy użyciu polecenia 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

Zarządzanie kluczami i wpisami tajnymi

Po utworzeniu magazynu wykonaj następujące kroki, aby utworzyć klucze i wpisy tajne w magazynie oraz zarządzać nimi.

Utwórz klucz

Użyj polecenia cmdlet Add-AzureKeyVaultKey, aby utworzyć lub zaimportować klucz chroniony przez oprogramowanie w magazynie kluczy:

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

Parametr -Destination służy do określania, że klucz jest chroniony przez oprogramowanie. Po pomyślnym utworzeniu klucza polecenie zwraca szczegóły utworzonego klucza.

Nowy klucz magazynu kluczy wygenerowany w programie PowerShell

Teraz możesz odwołać się do utworzonego klucza przy użyciu jego identyfikatora URI. Jeśli tworzysz lub importujesz klucz o takiej samej nazwie jak istniejący klucz, oryginalny klucz zostanie zaktualizowany o wartości określone w nowym kluczu. Dostęp do poprzedniej wersji można uzyskać przy użyciu identyfikatora URI specyficznego dla wersji klucza. Na przykład:

  • Użyj polecenia https://vault10.vault.local.azurestack.external:443/keys/key01 , aby zawsze pobrać bieżącą wersję.
  • Użyj https://vault010.vault.local.azurestack.external:443/keys/key01/d0b36ee2e3d14e9f967b8b6b1d38938a polecenia , aby uzyskać tę konkretną wersję.

Uzyskiwanie klucza

Użyj polecenia cmdlet Get-AzureKeyVaultKey, aby odczytać klucz i jego szczegóły:

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

Utwórz klucz tajny

Użyj polecenia cmdlet Set-AzureKeyVaultSecret, aby utworzyć lub zaktualizować wpis tajny w magazynie. Wpis tajny jest tworzony, jeśli jeszcze nie istnieje. Zostanie utworzona nowa wersja wpisu tajnego, jeśli już istnieje:

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

Tworzenie wpisu tajnego w programie PowerShell

Uzyskiwanie wpisu tajnego

Użyj polecenia cmdlet Get-AzureKeyVaultSecret, aby odczytać wpis tajny w magazynie kluczy. To polecenie może zwrócić wszystkie lub określone wersje wpisu tajnego:

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

Po utworzeniu kluczy i wpisów tajnych możesz autoryzować aplikacje zewnętrzne do ich używania.

Autoryzowanie aplikacji do używania klucza lub wpisu tajnego

Użyj następującego polecenia cmdlet, aby autoryzować aplikację do uzyskiwania dostępu do klucza lub wpisu tajnego w magazynie kluczy.

W poniższym przykładzie nazwa magazynu to ContosoKeyVault, a aplikacja, którą chcesz autoryzować, ma identyfikator klienta 00001111-aaaa-2222-bbbb-3333cc4444. Aby autoryzować aplikację, uruchom następujące polecenie. Można również określić parametr PermissionsToKeys , aby ustawić uprawnienia dla użytkownika, aplikacji lub grupy zabezpieczeń.

W przypadku używania polecenia cmdlet względem skonfigurowanego środowiska usługi Azure Stack Hub usług AD FS należy podać parametr BypassObjectIdValidation

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

Jeśli chcesz autoryzować tę samą aplikację do odczytywania wpisów tajnych w magazynie, uruchom następujące polecenie cmdlet:

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

Następne kroki