Podstawowe polecenia Azure PowerShell dla Azure Key Vault

By PowerShell

Azure Key Vault PowerShell

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

Jak stowrzyć Key Vault za pomocą Azure PowerShell
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.

Jak dodać tagi do Key Vault za pomocą PowerShell
# 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.

22 Najważniejsze Wskazówki Pisania Skryptów PowerShell

No comments yet.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

× Close