Správa služby Key Vault pomocí Azure CLI

Tento článek popisuje, jak začít pracovat se službou Azure Key Vault pomocí Azure CLI. Můžete zobrazit informace o:

  • Vytvoření posíleného kontejneru (trezoru) v Azure
  • Přidání klíče, tajného klíče nebo certifikátu do trezoru klíčů
  • Registrace aplikace pomocí Microsoft Entra ID
  • Autorizace aplikace pro použití klíče nebo tajného kódu
  • Nastavení pokročilých zásad přístupu trezoru klíčů
  • Práce s moduly hardwarového zabezpečení (HSM)
  • Odstranění trezoru klíčů a přidružených klíčů a tajných klíčů
  • Různé příkazy příkazového řádku Azure pro různé platformy

Azure Key Vault je dostupný ve většině oblastí. Další informace najdete na stránce s cenami Key Vault.

Poznámka:

Tento článek neobsahuje pokyny k zápisu aplikace Azure, kterou zahrnuje jeden z kroků, který ukazuje, jak autorizovat aplikaci k použití klíče nebo tajného klíče v trezoru klíčů.

Přehled služby Azure Key Vault najdete v tématu Co je Azure Key Vault?) Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Požadavky

Pokud chcete použít příkazy Azure CLI v tomto článku, musíte mít následující položky:

  • Předplatné služby Microsoft Azure. Pokud žádný nemáte, můžete si zaregistrovat bezplatnou zkušební verzi.
  • Azure CLI verze 2.0 nebo novější Pokud chcete nainstalovat nejnovější verzi, přečtěte si téma Instalace Azure CLI.
  • Aplikace, která bude nakonfigurována tak, aby používala klíč nebo heslo, které vytvoříte v tomto článku. Vzorová aplikace je k dispozici ve službě Microsoft Download Center. Pokyny najdete v zahrnutého souboru Readme.

Získání nápovědy k rozhraní příkazového řádku Azure pro různé platformy

Tento článek předpokládá, že znáte rozhraní příkazového řádku (Bash, Terminál, příkazový řádek).

Parametr --help nebo -h lze použít k zobrazení nápovědy pro konkrétní příkazy. Alternativně je možné použít také formát nápovědy Azure [command] [options]. Pokud pochybuje o parametrech potřebných příkazem, přečtěte si nápovědu. Například následující příkazy vrátí stejné informace:

az account set --help
az account set -h

Můžete si také přečíst následující články a seznámit se s Azure Resource Managerem v rozhraní příkazového řádku Azure pro různé platformy:

Vytvoření posíleného kontejneru (trezoru) v Azure

Trezory jsou zabezpečené kontejnery zajištěné moduly hardwarového zabezpečení. Trezory pomáhají snížit riziko nechtěné ztráty informací o zabezpečení tím, že centralizují ukládání tajných kódů aplikací. Trezory klíčů také řídí a protokolují přístup ke všem položkám, které jsou v nich uložené. Azure Key Vault může zpracovávat žádosti o certifikáty TLS (Transport Layer Security) a jejich obnovování a poskytuje funkce potřebné pro robustní řešení správy životního cyklu certifikátů. V dalších krocích vytvoříte trezor.

Připojení k předplatným

Pokud se chcete přihlásit interaktivně, použijte následující příkaz:

az login

Pokud se chcete přihlásit pomocí účtu organizace, můžete předat svoje uživatelské jméno a heslo.

az login -u username@domain.com -p password

Pokud máte více než jedno předplatné a potřebujete zadat, které chcete použít, zadejte následující příkaz, abyste viděli předplatná pro váš účet:

az account list

Zadejte předplatné s parametrem předplatného.

az account set --subscription <subscription name or ID>

Další informace o konfiguraci rozhraní příkazového řádku Azure pro různé platformy najdete v tématu Instalace Azure CLI.

Vytvoření nové skupiny prostředků

Při použití Azure Resource Manageru se všechny související prostředky vytvoří uvnitř skupiny prostředků. Trezor klíčů můžete vytvořit v existující skupině prostředků. Pokud chcete použít novou skupinu prostředků, můžete vytvořit novou.

az group create -n "ContosoResourceGroup" -l "East Asia"

Prvním parametrem je název skupiny prostředků a druhým parametrem je umístění. Pokud chcete získat seznam všech možných umístění, zadejte:

az account list-locations

Registrace poskytovatele prostředků služby Key Vault

Při pokusu o vytvoření nového trezoru klíčů se může zobrazit chyba "Předplatné není zaregistrované pro použití oboru názvů Microsoft.KeyVault". Pokud se tato zpráva zobrazí, ujistěte se, že je ve vašem předplatném zaregistrovaný poskytovatel prostředků služby Key Vault. Jedná se o jednorázovou operaci u každého odběru.

az provider register -n Microsoft.KeyVault

Vytvořte trezor klíčů.

az keyvault create Pomocí příkazu vytvořte trezor klíčů. Tento skript má tři povinné parametry: název skupiny prostředků, název trezoru klíčů a zeměpisné umístění.

Pokud chcete vytvořit nový trezor s názvem ContosoKeyVault, zadejte ve skupině prostředků ContosoResourceGroup umístěnou v umístění Východní Asie:

az keyvault create --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --location "East Asia"

Výstup tohoto příkazu zobrazuje vlastnosti trezoru klíčů, který jste vytvořili. Dvě nejdůležitější vlastnosti jsou:

  • name: V příkladu je název ContosoKeyVault. Tento název použijete pro další příkazy služby Key Vault.
  • vaultUri: V příkladu je https://contosokeyvault.vault.azure.netidentifikátor URI . Aplikace, které používají váš trezor prostřednictvím REST API musí používat tento identifikátor URI.

Váš účet Azure je nyní oprávněn provádět nad tímto trezorem klíčů všechny operace. Zatím nikdo jiný nemá oprávnění.

Přidání klíče, tajného klíče nebo certifikátu do trezoru klíčů

Pokud chcete, aby služba Azure Key Vault vytvořila klíč chráněný softwarem za vás, použijte tento az key create příkaz.

az keyvault key create --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --protection software

Pokud máte v souboru .pem existující klíč, můžete ho nahrát do služby Azure Key Vault. Můžete zvolit ochranu klíče pomocí softwaru nebo HSM. Tento příklad naimportuje klíč ze souboru .pem a chrání ho softwarem pomocí hesla "hVFkk965BuUv":

az keyvault key import --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --pem-file "./softkey.pem" --pem-password "hVFkk965BuUv" --protection software

Teď můžete odkazovat na klíč, který jste vytvořili nebo nahráli do služby Azure Key Vault, pomocí jeho identifikátoru URI. Umožňuje https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey vždy získat aktuální verzi. Slouží https://<keyvault-name>.vault.azure.net/keys/<keyname>/<key-unique-id> k získání této konkrétní verze. Například https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87.

Přidejte do trezoru tajný klíč, což je heslo s názvem SQLPassword a které má hodnotu hVFkk965BuUv do služby Azure Key Vaults.

az keyvault secret set --vault-name "ContosoKeyVault" --name "SQLPassword" --value "hVFkk965BuUv "

Na toto heslo můžete odkazovat pomocí jeho identifikátoru URI. Umožňuje https://ContosoVault.vault.azure.net/secrets/SQLPassword vždy získat aktuální verzi a https://<keyvault-name>.vault.azure.net/secret/<secret-name>/<secret-unique-id> získat tuto konkrétní verzi. Například https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d.

Importujte certifikát do trezoru pomocí souboru .pem nebo .pfx.

az keyvault certificate import --vault-name "ContosoKeyVault" --file "c:\cert\cert.pfx" --name "ContosoCert" --password "hVFkk965BuUv"

Podívejme se na klíč, tajný klíč nebo certifikát, který jste vytvořili:

  • Pokud chcete zobrazit klíče, zadejte:
az keyvault key list --vault-name "ContosoKeyVault"
  • Pokud chcete zobrazit tajné kódy, zadejte:
az keyvault secret list --vault-name "ContosoKeyVault"
  • Pokud chcete zobrazit certifikáty, zadejte:
az keyvault certificate list --vault-name "ContosoKeyVault"

Registrace aplikace pomocí Microsoft Entra ID

Tento krok obvykle provádí vývojář na samostatném počítači. Služba Azure Key Vault není specifická, ale je zde zahrnutá pro informovanost. K dokončení registrace aplikace musí být váš účet, trezor a aplikace ve stejném adresáři Azure.

Aplikace, které používají trezor klíčů, se musí ověřovat pomocí tokenu z ID Microsoft Entra. Vlastník aplikace ji musí nejprve zaregistrovat v Microsoft Entra. Na konci registrace obdrží majitel aplikace následující hodnoty:

  • ID aplikace (označované také jako ID klienta Microsoft Entra nebo appID)
  • Ověřovací klíč (také označovaný jako sdílený tajný kód)

Aplikace musí předložit obě tyto hodnoty Microsoft Entra ID, aby získala token. Způsob konfigurace aplikace pro získání tokenu bude záviset na aplikaci. Pro ukázkovou aplikaci Key Vault nastavuje majitel tyto hodnoty v souboru app.config.

Podrobné pokyny k registraci aplikace pomocí ID Microsoft Entra byste měli přečíst v článcích s názvem Integrace aplikací s Id Microsoft Entra pomocí portálu vytvořit aplikaci Microsoft Entra a instanční objekt, který má přístup k prostředkům, a vytvořit instanční objekt Azure pomocí Azure CLI.

Registrace aplikace v Microsoft Entra ID:

az ad sp create-for-rbac -n "MyApp" --password "hVFkk965BuUv" --role Contributor --scopes /subscriptions/<subscription id>
# If you don't specify a password, one will be created for you.

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

Pokud chcete aplikaci autorizovat pro přístup ke klíči nebo tajnému kódu v trezoru, použijte az keyvault set-policy příkaz.

Pokud je například název vašeho trezoru ContosoKeyVault a chcete aplikaci autorizovat k dešifrování a přihlašování pomocí klíčů v trezoru, použijte následující příkaz s ID vaší aplikace:

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --key-permissions decrypt sign

Pokud chcete autorizovat stejnou aplikaci ke čtení tajných kódů v trezoru, zadejte následující příkaz:

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --secret-permissions get

Nastavení pokročilých zásad přístupu trezoru klíčů

Pomocí příkazu az keyvault update povolte pokročilé zásady pro trezor klíčů.

Povolení služby Key Vault pro nasazení: Umožňuje virtuálním počítačům načítat certifikáty uložené jako tajné kódy z trezoru.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-deployment "true"

Povolení služby Key Vault pro šifrování disků: Vyžaduje se při použití trezoru pro azure Disk Encryption.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-disk-encryption "true"

Povolení služby Key Vault pro nasazení šablony: Umožňuje Resource Manageru načíst tajné kódy z trezoru.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-template-deployment "true"

Práce s moduly hardwarového zabezpečení (HSM)

Pro větší záruku můžete importovat nebo generovat klíče z modulů hardwarového zabezpečení (HSM), které nikdy neopustí hranice HSM. Moduly hardwarového zabezpečení jsou ověřeny pomocí FIPS 140. Pokud se vás tento požadavek netýká, přeskočte tuto část a přejděte k části Odstranění trezoru klíčů, přidružených klíčů a tajných klíčů.

Pro vytvoření těchto klíčů chráněných pomocí HSM musíte mít předplatné trezoru s podporou klíčů chráněných pomocí HSM.

Když vytvoříte keyvault, přidejte parametr sku:

az keyvault create --name "ContosoKeyVaultHSM" --resource-group "ContosoResourceGroup" --location "East Asia" --sku "Premium"

Do tohoto trezoru můžete přidat klíče chráněné softwarem (jak jsme ukázali výše) a klíče chráněné pomocí HSM. Pokud chcete vytvořit klíč chráněný HSM, nastavte cílový parametr na HSM:

az keyvault key create --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --protection "hsm"

Pomocí následujícího příkazu můžete importovat klíč ze souboru .pem ve vašem počítači. Tento příkaz importuje klíč do HSM ve službě Key Vault:

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --pem-file "/.softkey.pem" --protection "hsm" --pem-password "PaSSWORD"

Další příkaz naimportuje balíček BYOK (Bring Your Own Key). To vám umožní vygenerovat klíč v místním HSM a jeho přenesení do HSM ve službě Key Vault, aniž by klíč opustil hranice HSM.

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --byok-file "./ITByok.byok" --protection "hsm"

Podrobnější pokyny k vygenerování tohoto balíčku BYOK najdete v tématu Použití klíčů chráněných HSM se službou Azure Key Vault.

Odstranění trezoru klíčů a přidružených klíčů a tajných klíčů

Pokud už trezor klíčů a jeho klíče nebo tajné klíče nepotřebujete, můžete trezor klíčů odstranit pomocí az keyvault delete příkazu:

az keyvault delete --name "ContosoKeyVault"

Nebo můžete odstranit celou skupinu prostředků Azure, která zahrnuje trezor klíčů a všechny další prostředky, které jste do skupiny zahrnuli.

az group delete --name "ContosoResourceGroup"

Různé příkazy příkazového řádku Azure pro různé platformy

Další příkazy, které můžou být užitečné pro správu služby Azure Key Vault

Tento příkaz zobrazí tabulkové zobrazení všech klíčů a vybraných vlastností:

az keyvault key list --vault-name "ContosoKeyVault"

Tento příkaz zobrazí úplný seznam vlastností zadaného klíče:

az keyvault key show --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

Tento příkaz zobrazí tabulkové zobrazení všech názvů tajných kódů a vybraných vlastností:

az keyvault secret list --vault-name "ContosoKeyVault"

Tady je příklad odebrání konkrétního klíče:

az keyvault key delete --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

Tady je příklad odebrání konkrétního tajného kódu:

az keyvault secret delete --vault-name "ContosoKeyVault" --name "SQLPassword"

Další kroky