Zarządzanie 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 Key Vault do:
- Utwórz magazyn 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 Key Vault programu PowerShell opisane w tym artykule znajdują się w zestawie SDK Azure PowerShell.
Wymagania wstępne
- Musisz zasubskrybować ofertę obejmującą usługę Azure Key Vault.
- Zainstaluj program PowerShell dla usługi Azure Stack Hub.
- Skonfiguruj środowisko programu PowerShell usługi Azure Stack Hub.
Włączanie subskrypcji dzierżawy na potrzeby operacji Key Vault
Aby można było wystawiać 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 subskrypcja jest włączona dla operacji magazynu, dane wyjściowe zawierają wartość RegistrationState jest zarejestrowana dla wszystkich typów zasobów magazynu kluczy.
Jeśli operacje magazynu nie są włączone, wydaj 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:
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 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
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
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 URI magazynu , która znajduje się https://vault01.vault.local.azurestack.external
w tym przykładzie.
wdrażanie 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 służy do określania -Destination
, że klucz jest chroniony przez oprogramowanie. Po pomyślnym utworzeniu klucza polecenie zwraca szczegóły utworzonego klucza.
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 uzyskać bieżącą wersję. - Użyj polecenia
https://vault010.vault.local.azurestack.external:443/keys/key01/d0b36ee2e3d14e9f967b8b6b1d38938a
, 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
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ę w celu uzyskania 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 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed. 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 w usługach AD FS należy podać parametr BypassObjectIdValidation
Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed -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