Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Key Vault pomaga chronić klucze, wpisy tajne i certyfikaty, takie jak klucze interfejsu API i parametry połączenia bazy danych.
W tym samouczku skonfigurujesz aplikację Python, aby odczytywać informacje z Azure Key Vault przy użyciu tożsamości zarządzanej dla zasobów Azure. Uczysz się, jak:
- Stwórz magazyn kluczy
- Przechowaj tajemnicę w Key Vault
- Tworzenie maszyny wirtualnej z systemem Azure Linux
- Włączanie tożsamości zarządzanej dla maszyny wirtualnej
- Udzielanie wymaganych uprawnień aplikacji konsolowej do odczytywania danych z Key Vault
- Pobieranie tajemnicy z Key Vault
Przed rozpoczęciem przeczytaj Key Vault podstawowe pojęcia.
Jeśli nie masz subskrypcji Azure, utwórz konto free.
Wymagania wstępne
W przypadku systemów Windows, Mac i Linux:
- Usługa Git
- Bieżąca wersja Azure CLI. Uruchom polecenie
az --version, aby sprawdzić zainstalowaną wersję.
Zaloguj się do Azure
Zaloguj się do Azure przy użyciu Azure CLI:
az login
Utwórz grupę zasobów i magazyn kluczy
Ten przewodnik szybkiego startu korzysta z wcześniej utworzonego Azure Key Vault. Można utworzyć magazyn kluczy, wykonując kroki opisane w tych szybkich przewodnikach startowych:
- Azure CLI Szybki start
- Azure PowerShell Szybki start
- Azure portal - szybkie wprowadzenie
Alternatywnie możesz uruchomić te polecenia Azure CLI lub Azure PowerShell.
Ważne
Każdy magazyn kluczy musi mieć unikalną nazwę. Zastąp <vault-name> nazwą magazynu kluczy w poniższych przykładach.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Wypełnij swój magazyn kluczy tajemnicą
Utwórzmy wpis tajny o nazwie mySecret z wartością Success!. Tajna informacja może być hasłem, ciągiem połączeniowym SQL lub innymi informacjami, które muszą być zarówno zabezpieczone, jak i dostępne dla Twojej aplikacji.
Aby dodać sekret do nowo utworzonego magazynu kluczy, użyj następującego polecenia:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Tworzenie maszyny wirtualnej
Utwórz maszynę wirtualną o nazwie myVM przy użyciu jednej z następujących metod:
| Linux | Windows |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Portal Azure | Portal Azure |
Aby utworzyć maszynę wirtualną z systemem Linux przy użyciu Azure CLI, użyj polecenia az vm create. W poniższym przykładzie dodano konto użytkownika o nazwie azureuser. Parametr --generate-ssh-keys jest używany, aby automatycznie wygenerować klucz SSH i umieścić go w domyślnej lokalizacji klucza (~/.ssh).
az vm create \
--resource-group <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Zanotuj wartość publicIpAddress w danych wyjściowych.
Przypisywanie tożsamości do maszyny wirtualnej
Utwórz tożsamość zarządzaną przypisaną przez system dla maszyny wirtualnej przy użyciu polecenia az vm identity assign :
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Zanotuj tożsamość przypisaną przez system w danych wyjściowych:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Przypisywanie uprawnień do tożsamości maszyny wirtualnej
Aby uzyskać uprawnienia do magazynu kluczy za pomocą Role-Based Access Control (RBAC), przypisz rolę do głównej nazwy użytkownika (UPN) przy użyciu polecenia Azure CLI az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
Zastąp <upn>, <subscription-id> i <vault-name> rzeczywistymi wartościami. Jeśli użyto innej nazwy grupy zasobów, zastąp "myResourceGroup" również. Twój UPN zazwyczaj będzie w formacie adresu e-mail (np. username@domain.com).
Zaloguj się do maszyny wirtualnej
Aby zalogować się do maszyny wirtualnej, postępuj zgodnie z instrukcjami w temacie Łączenie i logowanie się do maszyny wirtualnej Azure z systemem Linux lub Connect i zaloguj się do maszyny wirtualnej Azure z systemem Windows.
Aby zalogować się do maszyny wirtualnej z systemem Linux, użyj ssh wraz z poleceniem z kroku Utwórz maszynę wirtualną:
ssh azureuser@<public-ip-address>
Instalowanie bibliotek Python na maszynie wirtualnej
Na maszynie wirtualnej zainstaluj dwie biblioteki Python, których używa przykładowy skrypt: azure-keyvault-secrets i azure-identity.
Na maszynie wirtualnej z systemem Linux zainstaluj je przy użyciu polecenia pip3:
pip3 install azure-keyvault-secrets azure-identity
Tworzenie i edytowanie przykładowego skryptu Python
Na maszynie wirtualnej utwórz plik Python o nazwie sample.py. Wklej następujący kod do pliku, zastępując element <vault-name> nazwą swojego magazynu kluczy:
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
key_vault_name = "<vault-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}'")
Uruchamianie przykładowej aplikacji Python
Uruchom program sample.py. Jeśli wszystko jest poprawnie skonfigurowane, aplikacja wypisuje tajną wartość:
python3 sample.py
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Uprzątnij zasoby
Gdy nie są już potrzebne, usuń maszynę wirtualną i magazyn kluczy. Najszybszym sposobem jest usunięcie grupy zasobów, do której należą:
az group delete -g "myResourceGroup"
Dalsze kroki
REST API Azure Key Vault