Sdílet prostřednictvím


Správa služby 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 služby Key Vault k:

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

Poznámka:

Rutiny PowerShellu služby Key Vault popsané v tomto článku najdete v sadě Azure PowerShell SDK.

Požadavky

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

Než budete moct vydávat jakékoli operace s trezorem klíčů, musíte zajistit, aby vaše předplatné tenanta bylo povolené pro operace trezoru. 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 pro operace trezoru povolené vaše předplatné, zobrazí se ve výstupu stav RegistrationState pro 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 registrace proběhne úspěšně, vrátí se následující výstup:

Úspěšná registrace trezoru klíčů v PowerShellu

Při vyvolání příkazů trezoru klíčů se může zobrazit chyba, například "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ů služby Key Vault.

Vytvořte trezor klíčů.

Před vytvořením trezoru klíčů vytvořte skupinu prostředků, 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 geografické 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é. K používání tohoto trezoru nemá přístup žádný uživatel nebo aplikace." Pokud chcete tento problém vyřešit, nastavte zásadu 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 pomocí těchto kroků vytvořte a spravujte klíče a tajné kódy v trezoru.

Vytvoření klíče

Pomocí rutiny Add-AzureKeyVaultKey vytvořte nebo naimportujte klíč chráněný softwarem v 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

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

  • Umožňuje https://vault10.vault.local.azurestack.external:443/keys/key01 vždy získat aktuální verzi.
  • Slouží 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 kódu

K vytvoření nebo aktualizaci tajného kódu v trezoru použijte rutinu Set-AzureKeyVaultSecret. Tajný kód se vytvoří, pokud ještě neexistuje. Pokud už tajný klíč existuje, vytvoří se nová verze tajného kódu:

$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 kódu:

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

Po vytvoření klíčů a tajných kódů můžete autorizovat externí aplikace, aby je mohly používat.

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

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

V následujícím příkladu je název trezoru ContosoKeyVault a aplikace, kterou chcete autorizovat, má ID klienta 00001111-aaaa-2222-bbbb-3333cccc44444. Aplikaci autorizujete spuštěním následujícího příkazu. Můžete také zadat parametr PermissionsToKeys pro nastavení oprávnění pro uživatele, aplikaci nebo skupinu zabezpečení.

Při použití rutiny pro nakonfigurované prostředí Služby AD FS služby Azure Stack Hub by se měl poskytnout parametr BypassObjectIdValidation.

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

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

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

Další kroky