Kurz: Použití Azure Key Vault s virtuálním počítačem v Pythonu
Azure Key Vault pomáhá chránit klíče, tajné kódy a certifikáty, jako jsou klíče rozhraní API a připojovací řetězce databáze.
V tomto kurzu nastavíte aplikaci Python pro čtení informací z Azure Key Vault pomocí spravovaných identit pro prostředky Azure. Získáte informace o těchto tématech:
- Vytvořte trezor klíčů.
- Uložení tajného kódu v Key Vault
- Vytvoření virtuálního počítače Azure s Linuxem
- Povolení spravované identity pro virtuální počítač
- Udělte konzolové aplikaci požadovaná oprávnění ke čtení dat z Key Vault
- Načtení tajného kódu z Key Vault
Než začnete, přečtěte si Key Vault základních konceptů.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet.
Požadavky
Pro Windows, Mac a Linux:
- Git
- Tento kurz vyžaduje místní spuštění Azure CLI. Musíte mít nainstalované Rozhraní příkazového řádku Azure CLI verze 2.0.4 nebo novější. Verzi zjistíte spuštěním příkazu
az --version
. Pokud potřebujete instalaci nebo upgrade rozhraní příkazového řádku, přečtěte si téma Instalace Azure CLI 2.0.
Přihlaste se k Azure.
Pokud se chcete přihlásit k Azure pomocí Azure CLI, zadejte:
az login
Vytvoření skupiny prostředků a trezoru klíčů
V tomto rychlém startu se používá předem vytvořený trezor klíčů Azure. Trezor klíčů můžete vytvořit podle kroků v rychlém startu Azure CLI, Azure PowerShell rychlém startu nebo Azure Portal rychlém startu.
Alternativně můžete jednoduše spustit Azure CLI nebo Azure PowerShell příkazy níže.
Důležité
Každý trezor klíčů musí mít jedinečný název. V následujících příkladech nahraďte <your-unique-keyvault-name> názvem vašeho trezoru klíčů.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup"
Naplnění trezoru klíčů tajným kódem
Pojďme vytvořit tajný kód s názvem mySecret s hodnotou Success!. Tajným kódem může být heslo, připojovací řetězec SQL nebo jakékoli jiné informace, které potřebujete k zajištění zabezpečení a dostupnosti pro vaši aplikaci.
Pokud chcete přidat tajný kód do nově vytvořeného trezoru klíčů, použijte následující příkaz:
az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "mySecret" --value "Success!"
Vytvoření virtuálního počítače
Pomocí jedné z následujících metod vytvořte virtuální počítač s názvem myVM :
Linux | Windows |
---|---|
Azure CLI | Azure CLI |
PowerShell | PowerShell |
Azure Portal | Azure Portal |
Pokud chcete vytvořit virtuální počítač s Linuxem pomocí Azure CLI, použijte příkaz az vm create . Následující příklad přidá uživatelský účet s názvem azureuser. Parametr --generate-ssh-keys
se používá k automatickému vygenerování klíče SSH a jeho umístění do výchozího umístění klíče (~/.ssh).
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Poznamenejte si hodnotu publicIpAddress
ve výstupu .
Přiřazení identity k virtuálnímu počítači
Vytvořte identitu přiřazenou systémem pro virtuální počítač pomocí příkazu azure CLI az vm identity assign :
az vm identity assign --name "myVM" --resource-group "myResourceGroup"
Poznamenejte si identitu přiřazenou systémem, která se zobrazí v následujícím kódu. Výstup předchozího příkazu by byl:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Přiřazení oprávnění identitě virtuálního počítače
Spuštěním následujícího příkazu teď můžete trezoru klíčů přiřadit dříve vytvořená oprávnění identity:
az keyvault set-policy --name "<your-unique-keyvault-name>" --object-id "<systemAssignedIdentity>" --secret-permissions get list
Přihlášení k virtuálnímu počítači
Pokud se chcete přihlásit k virtuálnímu počítači, postupujte podle pokynů v tématu Připojení a přihlášení k virtuálnímu počítači Azure s Linuxem nebo Připojení a přihlášení k virtuálnímu počítači Azure s Windows.
Pokud se chcete přihlásit k virtuálnímu počítači s Linuxem, můžete použít příkaz ssh s parametrem <publicIpAddress> zadaným v kroku Vytvoření virtuálního počítače :
ssh azureuser@<PublicIpAddress>
Instalace knihoven Pythonu na virtuální počítač
Na virtuální počítač nainstalujte dvě knihovny Pythonu, které budeme používat ve skriptu Pythonu: azure-keyvault-secrets
a azure.identity
.
Na virtuálním počítači s Linuxem je například můžete nainstalovat pomocí :pip3
pip3 install azure-keyvault-secrets
pip3 install azure.identity
Vytvoření a úprava ukázkového skriptu Pythonu
Na virtuálním počítači vytvořte soubor Pythonu s názvem sample.py. Upravte soubor tak, aby obsahoval následující kód a nahraďte <your-unique-keyvault-name> názvem vašeho trezoru klíčů:
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
key_vault_name = "<your-unique-keyvault-name>"
key_vault_uri = f"https://{key_vault_name}.vault.azure.net"
secret_name = "mySecret"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=key_vault_uri, credential=credential)
retrieved_secret = client.get_secret(secret_name)
print(f"The value of secret '{secret_name}' in '{key_vault_name}' is: '{retrieved_secret.value}'")
Spuštění ukázkové aplikace v Pythonu
Nakonec spusťte sample.py. Pokud vše funguje dobře, měl by vrátit hodnotu vašeho tajného kódu:
python3 sample.py
The value of secret 'mySecret' in '<your-unique-keyvault-name>' is: 'Success!'
Vyčištění prostředků
Pokud už je nepotřebujete, odstraňte virtuální počítač a trezor klíčů. Můžete to rychle udělat tak, že odstraníte skupinu prostředků, do které patří:
az group delete -g myResourceGroup