Oktatóanyag: Az Azure Key Vault használata virtuális géppel a Pythonban
Az Azure Key Vault segít megvédeni a kulcsokat, titkos kulcsokat és tanúsítványokat, például az API-kulcsokat és az adatbázis-kapcsolati sztringeket.
Ebben az oktatóanyagban beállít egy Python-alkalmazást az Azure Key Vault adatainak olvasásához az Azure-erőforrások felügyelt identitásainak használatával. Az alábbiak végrehajtásának módját ismerheti meg:
- Kulcstartó létrehozása
- Titkos kód tárolása Key Vault
- Azure Linux rendszerű virtuális gép létrehozása
- Felügyelt identitás engedélyezése a virtuális géphez
- Adja meg a konzolalkalmazáshoz szükséges engedélyeket az adatok Key Vault
- Titkos kód lekérése Key Vault
Mielőtt hozzákezdene, olvassa el Key Vault alapfogalmakat.
Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot.
Előfeltételek
Windows, Mac és Linux rendszeren:
- Git
- Ehhez az oktatóanyaghoz helyileg kell futtatnia az Azure CLI-t. Az Azure CLI 2.0.4-es vagy újabb verziójával kell rendelkeznie. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretné a parancssori felületet: Az Azure CLI 2.0 telepítése.
Jelentkezzen be az Azure-ba
Ha az Azure-ba az Azure CLI használatával szeretne bejelentkezni, írja be a következőt:
az login
Erőforráscsoport és kulcstartó létrehozása
Ez a rövid útmutató egy előre létrehozott Azure Key Vaultot használ. Kulcstartót az Azure CLI rövid útmutatójának, Azure PowerShell rövid útmutatójának vagy Azure Portal rövid útmutatójának lépéseit követve hozhat létre.
Másik lehetőségként egyszerűen futtathatja az Azure CLI-t vagy Azure PowerShell alábbi parancsokat.
Fontos
Minden kulcstartónak egyedi névvel kell rendelkeznie. Cserélje le <az egyedi-keyvault-name> nevet a kulcstartó nevére az alábbi példákban.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup"
Kulcstartó feltöltése titkos kóddal
Hozzunk létre egy mySecret nevű titkos kulcsot, amelynek értéke Sikeres!. A titkos kód lehet egy jelszó, egy SQL-kapcsolati sztring vagy bármely más információ, amelyet meg kell őriznie ahhoz, hogy biztonságos és elérhető legyen az alkalmazás számára.
Ha titkos kulcsot szeretne hozzáadni az újonnan létrehozott kulcstartóhoz, használja a következő parancsot:
az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "mySecret" --value "Success!"
Virtuális gép létrehozása
Hozzon létre egy myVM nevű virtuális gépet az alábbi módszerek egyikével:
Linux | Windows |
---|---|
Azure CLI | Azure CLI |
PowerShell | PowerShell |
Azure Portal | Az Azure Portal |
Linux rendszerű virtuális gép Azure CLI-vel történő létrehozásához használja az az vm create parancsot. Az alábbi példa egy azureuser nevű felhasználói fiókot ad hozzá. A --generate-ssh-keys
paraméter automatikusan létrehoz egy SSH-kulcsot, és az alapértelmezett kulcshelyre helyezi (~/.ssh).
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Jegyezze fel a kimenet értékét publicIpAddress
.
Identitás hozzárendelése a virtuális géphez
Hozzon létre egy rendszer által hozzárendelt identitást a virtuális géphez az Azure CLI az vm identity assign paranccsal:
az vm identity assign --name "myVM" --resource-group "myResourceGroup"
Jegyezze fel a rendszer által hozzárendelt identitást, amely az alábbi kódban jelenik meg. Az előző parancs kimenete a következő:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Engedélyek hozzárendelése a virtuálisgép-identitáshoz
Most az alábbi parancs futtatásával rendelheti hozzá a korábban létrehozott identitásengedélyeket a kulcstartóhoz:
az keyvault set-policy --name "<your-unique-keyvault-name>" --object-id "<systemAssignedIdentity>" --secret-permissions get list
Bejelentkezés a virtuális gépre
A virtuális gépre való bejelentkezéshez kövesse a Csatlakozás című témakör utasításait, és jelentkezzen be egy Linuxot vagy Connectet futtató Azure-beli virtuális gépre , és jelentkezzen be egy Windows rendszerű Azure-beli virtuális gépre.
Linux rendszerű virtuális gépre való bejelentkezéshez használhatja az ssh parancsot a <virtuális gép létrehozása lépésben megadott publicIpAddress> paranccsal:
ssh azureuser@<PublicIpAddress>
Python-kódtárak telepítése a virtuális gépre
A virtuális gépen telepítse a Python-szkriptben használt két Python-kódtárat: azure-keyvault-secrets
és azure.identity
.
Linux rendszerű virtuális gépeken például a következővel pip3
telepítheti őket:
pip3 install azure-keyvault-secrets
pip3 install azure.identity
Python-mintaszkript létrehozása és szerkesztése
A virtuális gépen hozzon létre egy Sample.py nevű Python-fájlt. Szerkessze a fájlt, hogy az tartalmazza a következő kódot, és cserélje le <a-unique-keyvault-name> nevet a kulcstartó nevére:
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}'")
A Python-mintaalkalmazás futtatása
Végül futtassa a sample.py. Ha minden jól ment, akkor a titkos kód értékét kell visszaadnia:
python3 sample.py
The value of secret 'mySecret' in '<your-unique-keyvault-name>' is: 'Success!'
Az erőforrások eltávolítása
Ha már nincs rájuk szükség, törölje a virtuális gépet és a kulcstartót. Gyorsan elvégezheti azt az erőforráscsoportot, amelyhez tartoznak:
az group delete -g myResourceGroup