
Azure Key Vault to narzędzie do bezpiecznego przechowywania i uzyskiwania dostępu do sekretów. Sekrety to wszystko, do czego chcesz ściśle kontrolować dostęp, na przykład klucze API, hasła lub certyfikaty.
Usługa posiada dedykowany moduł PowerShell (Az.KeyVault), który umożliwia zautomatyzowanie pełnej game zadań, od samego stworzenia Key Vault po pełne zarządzanie sekretami i kluczami.
Poniżej kilka podstawowych poleceń wraz z przykładami.
Tworzenie Azure Key Vault
Funkcję New-AzKeyVault wykorzystaj do tworzenia usługi Key Vault. Przy tworzeniu warto rozważyć dodanie przełączników takich jak: EnabledForDeployment, EnabledForTemplateDeployment lub EnablePurgeProtection

New-AzKeyVault -Name "kv-dev-clouddb-001" -ResourceGroupName "rg-keyvault" -Location 'West Europe'
EnablePurgeProtection – Włącz funkcję ochrony przed czyszczeniem dla tego magazynu kluczy.
EnabledForDeployment – Umożliwia dostawcy zasobów Microsoft.Compute pobieranie sekretów na przykład podczas tworzenia maszyny wirtualnej.
EnabledForDiskEncryption – Umożliwia usłudze szyfrowania dysków platformy Azure pobieranie sekretów i rozpakowywanie kluczy z magazynu kluczy.
EnabledForTemplateDeployment – Umożliwia Azure Resource Manager pobieranie sekretów, gdy Key Vault jest wykorzystywny podczas wdrożeniu szablonów (ARM).
Pobranie Azure Key Vault
Poleceniem Get-AzKeyVault pobierzesz informacje o utworzonych magazynach kluczy.
# pobiera wszystkie wystąpienia w subskrypcji Get-AzKeyVault # pobrane informacji konkretnym key vault Get-AzKeyVault -VaultName 'kvdemo001' -ResourceGroupName 'rg-keyvault'
Zmiana ustawień Key Vault
Update-AzKeyVault przyda się do dokręcenia konfiguracji, jeśli zapomnieliśmy np. o EnablePurgeProtection lub dodaniu odpowiednich tagów.

# włączenie EnablePurgeProtection Get-AzKeyVault -VaultName "kv-dev-clouddb-001" -ResourceGroupName 'rg-keyvault' | Update-AzKeyVault -EnablePurgeProtection # dodanie tagów do Key Vault $tags = @{ "env"="dev" "owner"="mateusz nadobnik" } Get-AzKeyVault -VaultName "kv-dev-clouddb-001" -ResourceGroupName 'rg-keyvault' | Update-AzKeyVault -Tag $tags
Przydzialanie uprawnień do Key Vault
Funkcją Set-AzKeyVaultAccessPolicy przyznasz lub zmienisz istniejące uprawnienia użytkownika, aplikacji lub grupy zabezpieczeń do wykonywania określonych operacji w ramach Key Vault.
# przydzialanie uprawnień do Azure Key Vault Set-AzKeyVaultAccessPolicy -VaultName 'kv-dev-clouddb-001' -UserPrincipalName 'test@clouddb.pl' -PermissionsToSecrets get, set, delete -PassThru # przydzielanie uprawnien dla Service Principal do sekretów, kluczy $ServicePrincipal = Get-AzADServicePrincipal -DisplayName 'terraform-*' Set-AzKeyVaultAccessPolicy -VaultName 'kv-dev-clouddb-001' -ObjectId $ServicePrincipal.Id -PermissionsToSecrets get, set, delete -PermissionsToKeys import, list -PassThru # pełnych uprawnień dla konta z naszego kontekstu Set-AzKeyVaultAccessPolicy -VaultName kv-managemenet-test-0001 -UserPrincipalName (Get-AzContext).Account.Id -PermissionsToSecrets all -PermissionsToKeys all -PermissionsToCertificates all
Również za pomocą tego polecenia (a nie Update-AzKeyVault) włączysz takie opcję jak EnabledForDeployment, EnabledForDiskEncryption i EnabledForDeployment.
# włączenie dostępu dla Azure Resource Manager do wdrażania szablonów Set-AzKeyVaultAccessPolicy -VaultName 'kv-dev-clouddb-001' -ResourceGroupName 'rg-keyvault' -EnabledForDeployment
Operacje na sekretach
Bez wcześniejszego nadania sobie dostępu nie będziesz wstanie dodawać nowych sekretów, wykorzystaj w tym celu wyżej opisane polecenie Set-AzKeyVaultAccessPolicy
.
Dodanie sekretu
Poleceniem Set-AzKeyVaultSecret dodasz lub zmodyfikujesz sekret w magazynie kluczy.
# dodanie nowego sekretu $secret = ConvertTo-SecureString "LatweHaslo" -AsPlainText -Force Set-AzKeyVaultSecret -VaultName "kv-dev-clouddb-001" -Name "ExamplePassword" -SecretValue $secret # zmiane wartosci sekretu, wykonasz za pomocą tego samego polecenia $secret = ConvertTo-SecureString "TrudneHaslo" -AsPlainText -Force Set-AzKeyVaultSecret -VaultName "kv-dev-clouddb-001" -Name "ExamplePassword" -SecretValue $secret
Pobieranie sekretu
Do pobrania istniejących sekretów przyda się polecenie Get-AzKeyVaultSecret.
# lista wszystkich sekretow Get-AzKeyVaultSecret -VaultName "kv-dev-clouddb-001" # pobranie sekretu konkretnego sekretu Get-AzKeyVaultSecret -VaultName "kv-dev-clouddb-001" -Name "ExamplePassword" # pobranie sekretu konkretnego sekretu jako plaintext Get-AzKeyVaultSecret -VaultName "kv-dev-clouddb-001" -Name "ExamplePassword" -AsPlainText # pobranie wszystkich wersji konkretnego sekretu Get-AzKeyVaultSecret -VaultName "kv-dev-clouddb-001" -Name "ExamplePassword" -IncludeVersions # pobranie jako plain-text konkretnej wersji Get-AzKeyVaultSecret -VaultName "kv-dev-clouddb-001" -Name "ExamplePassword" -Version '32d7545c3fe848399a15800c862138ab' -AsPlainText
Usuwanie sekretów z magazynu
Wykorzystaj polecenie Remove-AzKeyVaultSecret do usuwania zbędnych sekretów z magazynu
# usunięcie określonego sekretu Remove-AzKeyVaultSecret -VaultName "kv-dev-clouddb-001" -Name "ExamplePassword" # to samo lecz -Force automatycznie potwierdza usuniecie Remove-AzKeyVaultSecret -VaultName "kv-dev-clouddb-001" -Name "ExamplePassword" -Force # usuwa wszystkie sekrety do ktorych masz dostęp Get-AzKeyVaultSecret -VaultName "kv-dev-clouddb-001" | Remove-AzKeyVaultSecret -Force
cdn.
Kolejne polecenia, do zarządzania certyfikatami, kluczami oraz do tworzenia kopii magazynu, znajdą się tutaj wkrótce.
No comments yet.