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
- Musíte se přihlásit k odběru nabídky, která zahrnuje službu Azure Key Vault.
- Nainstalujte PowerShell pro Azure Stack Hub.
- Nakonfigurujte prostředí PowerShellu služby Azure Stack Hub.
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íčů.
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:
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
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
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.
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
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