Sdílet prostřednictvím


Správa Key Vault ve službě Azure Stack Hub pomocí PowerShellu

Tento článek popisuje, jak vytvořit a spravovat trezor klíčů ve službě Azure Stack Hub pomocí PowerShellu. Naučíte se používat rutiny powershellu Key Vault k:

  • Vytvořte trezor klíčů.
  • Ukládejte a spravujte kryptografické klíče a tajné kódy.
  • Autorizace uživatelů nebo aplikací k vyvolání operací v trezoru

Poznámka

Rutiny powershellu Key Vault popsané v tomto článku jsou k dispozici v Azure PowerShell SDK.

Požadavky

Povolení předplatného tenanta pro operace Key Vault

Než budete moct s trezorem klíčů provádět jakékoli operace, musíte zajistit, aby vaše předplatné tenanta bylo pro operace trezoru povolené. Pokud chcete ověřit, že jsou povolené operace trezoru klíčů, spusťte následující příkaz:

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

Pokud je ve vašem předplatném povolené operace trezoru, zobrazí se ve výstupu Stav registracepro všechny typy prostředků trezoru klíčů.

Stav registrace trezoru klíčů v PowerShellu

Pokud nejsou povolené operace trezoru, pomocí následujícího příkazu zaregistrujte službu Key Vault ve vašem předplatném:

Register-AzResourceProvider -ProviderNamespace Microsoft.KeyVault

Pokud je registrace úspěšná, vrátí se následující výstup:

Registrace trezoru klíčů v PowerShellu byla úspěšná

Při vyvolání příkazů trezoru klíčů se může zobrazit chyba typu Předplatné není zaregistrované pro použití oboru názvů Microsoft.KeyVault. Pokud se zobrazí chyba, podle předchozích pokynů ověřte, že jste povolili poskytovatele prostředků Key Vault.

Vytvořte trezor klíčů.

Před vytvořením trezoru klíčů vytvořte skupinu prostředků tak, aby všechny prostředky související s trezorem klíčů existovaly ve skupině prostředků. Pomocí následujícího příkazu vytvořte novou skupinu prostředků:

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

Nová skupina prostředků vygenerovaná v PowerShellu

Teď pomocí následující rutiny vytvořte trezor klíčů ve skupině prostředků, kterou jste vytvořili dříve. Tento příkaz přečte tři povinné parametry: název skupiny prostředků, název trezoru klíčů a zeměpisné umístění.

Spuštěním následujícího příkazu vytvořte trezor klíčů:

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

Nový trezor klíčů vygenerovaný v PowerShellu

Výstup tohoto příkazu zobrazuje vlastnosti trezoru klíčů, který jste vytvořili. Když aplikace přistupuje k tomuto trezoru, musí používat vlastnost URI trezoru , která je https://vault01.vault.local.azurestack.external v tomto příkladu.

nasazení Active Directory Federation Services (AD FS) (AD FS)

V nasazení služby AD FS se může zobrazit toto upozornění: "Zásady přístupu nejsou nastavené. Žádný uživatel ani aplikace nemá přístupová oprávnění k používání tohoto trezoru." Pokud chcete tento problém vyřešit, nastavte zásady přístupu pro trezor pomocí příkazu 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

Správa klíčů a tajných kódů

Po vytvoření trezoru použijte tento postup k vytvoření a správě klíčů a tajných kódů v trezoru.

Vytvoření klíče

Pomocí rutiny Add-AzureKeyVaultKey vytvořte nebo naimportujte klíč chráněný softwarem do trezoru klíčů:

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

Parametr -Destination slouží k určení, že klíč je chráněný softwarem. Po úspěšném vytvoření klíče příkaz vypíše podrobnosti o vytvořeném klíči.

Nový klíč trezoru klíčů vygenerovaný v PowerShellu

Teď můžete odkazovat na vytvořený klíč pomocí jeho identifikátoru URI. Pokud vytvoříte nebo naimportujete klíč, který má stejný název jako existující klíč, aktualizuje se původní klíč hodnotami zadanými v novém klíči. K předchozí verzi můžete přistupovat pomocí identifikátoru URI klíče specifického pro verzi. Příklad:

  • Pomocí https://vault10.vault.local.azurestack.external:443/keys/key01 vždy získáte aktuální verzi.
  • Použijte https://vault010.vault.local.azurestack.external:443/keys/key01/d0b36ee2e3d14e9f967b8b6b1d38938a k získání této konkrétní verze.

Získání klíče

Ke čtení klíče a jeho podrobností použijte rutinu Get-AzureKeyVaultKey :

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

Vytvoření tajného klíče

Pomocí rutiny Set-AzureKeyVaultSecret vytvořte nebo aktualizujte tajný kód v trezoru. Tajný kód se vytvoří, pokud ještě neexistuje. Vytvoří se nová verze tajného kódu, pokud už existuje:

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

Vytvoření tajného kódu v PowerShellu

Získání tajného kódu

Ke čtení tajného kódu v trezoru klíčů použijte rutinu Get-AzureKeyVaultSecret . Tento příkaz může vrátit všechny nebo konkrétní verze tajného klíče:

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

Po vytvoření klíčů a tajných kódů můžete k jejich používání autorizovat externí aplikace.

Autorizace aplikace pro použití klíče nebo tajného klíče

Pomocí následující rutiny můžete aplikaci autorizovat pro přístup ke klíči nebo tajnému kódu v trezoru klíčů.

V následujícím příkladu má trezor název ContosoKeyVault a aplikace, kterou chcete autorizovat, má ID klienta 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed. Pokud chcete aplikaci autorizovat, spusťte následující příkaz. Můžete také zadat parametr PermissionsToKeys a nastavit oprávnění pro uživatele, aplikaci nebo skupinu zabezpečení.

Při použití rutiny v prostředí služby AD FS nakonfigurované službou Azure Stack Hub by měl být zadaný parametr BypassObjectIdValidation.

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

Pokud chcete stejnou aplikaci autorizovat ke čtení tajných kódů ve vašem trezoru, spusťte následující rutinu:

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

Další kroky