Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure-beli engedélyezés határozza meg, hogy a hitelesített felhasználók vagy szolgáltatások milyen műveleteket hajthatnak végre az erőforrásokon. Ez a cikk bemutatja, hogyan implementálhatja az engedélyezést a Pythonhoz készült Azure SDK használatával, amely modelleket, implementálást, hibaelhárítást és ajánlott eljárásokat fed le. A hitelesítés részletes beállításához tekintse meg a Python-alkalmazások Azure-ra történő hitelesítését.
Bevezetés
A hitelesítés (AuthN) ellenőrzi egy felhasználó vagy szolgáltatás identitását, míg az engedélyezés (AuthZ) határozza meg, hogy mit tehetnek. Az Azure-ban az engedélyezés biztonságos hozzáférést biztosít az erőforrásokhoz, ami kritikus fontosságú az alkalmazások és az adatok védelme szempontjából. A fejlesztők robusztus engedélyezést implementálhatnak a Pythonhoz készült Azure SDK-val a különböző munkafolyamatok hozzáférésének szabályozásához, az erőforrások kezelésétől a szolgáltatásspecifikus adatok eléréséig.
Azure-engedélyezési modellek
Az Azure több engedélyezési mechanizmust biztosít a hozzáférés kezeléséhez. Ezeknek a modelleknek a megértése elengedhetetlen a hatékony hozzáférés-vezérléshez.
Azure Role-Based Hozzáférés-vezérlés
Az Azure Role-Based Hozzáférés-vezérlés (RBAC) szerepköröket rendel az identitásokhoz olyan hatókörökben, mint az előfizetések vagy az erőforráscsoportok. A beépített szerepkörök közé tartozik a Tulajdonos, a Közreműködő és az Olvasó, míg az egyéni szerepkörök a testre szabott engedélyeket teszik lehetővé. Ha egy szerepkört egy adott hatókörhöz rendel, az identitás (például egy felhasználó vagy szolgáltatás) az adott hatókörben lévő összes erőforráshoz és annak gyermek hatóköreihez kap engedélyeket. A közreműködői szerepkör előfizetési szinten való hozzárendelése például lehetővé teszi az előfizetés összes erőforrásának kezelését. Lásd : Az Azure RBAC hatókörének ismertetése.
Szolgáltatásspecifikus mechanizmusok
Egyes Azure-szolgáltatások egyedi engedélyezési módszereket kínálnak:
- Azure Storage: Közös hozzáférésű jogosultságkódokat (SAS) és hozzáférés-vezérlési listákat (ACL-eket) használ az adathozzáféréshez. Lásd Szolgáltatás-specifikus engedélyezési megjegyzések az Azure Storage esetén.
- Azure Key Vault: Javasolja az RBAC-t az örökölt hozzáférési szabályzatokkal szemben. LásdService-Specific Azure Key Vault engedélyezési megjegyzéseit.
- Microsoft Graph: OAuth 2.0-hatóköröket és alkalmazásengedélyeket alkalmaz. Lásd a szolgáltatásspecifikus engedélyezési megjegyzéseket a Microsoft Graph esetében.
Engedélyezés használata a Pythonhoz készült Azure SDK-ban
Az Azure SDK for Python beépített támogatást nyújt a csomagon keresztüli azure-identity hitelesítés és engedélyezés kezeléséhez. Az DefaultAzureCredential osztály támogatja a különböző hitelesítési mechanizmusokat, például a felügyelt identitásokat és a szolgáltatásneveket, alkalmazkodva a különböző környezetekhez.
Példa: Erőforráscsoportok listázása
Ez a példa bemutatja, hogy a Pythonhoz készült Azure SDK hogyan használ hitelesítő adatokat (via DefaultAzureCredential) a hitelesítéshez, és hogyan határozza meg az engedélyezés, hogy az identitás képes-e sikeresen felsorolni az erőforráscsoportokat. Ha az identitás nem rendelkezik olvasói vagy magasabb szerepkörrel az előfizetés vagy az erőforráscsoport hatókörében, ez a kérés 403 - Tiltott hibát ad vissza.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
credential = DefaultAzureCredential()
client = ResourceManagementClient(credential, "<subscription-id>")
resource_groups = client.resource_groups.list()
for rg in resource_groups:
print(rg.name)
Cserélje le <subscription-id> az Azure-előfizetés-azonosítójára, amely általában a következő formátumú: 00000000-0000-0000-0000-000000000000.
Microsoft Graph hatókörökkel
A Microsoft Graph eléréséhez használja a Pythonhoz készült hivatalos Microsoft Graph SDK-t, amely támogatja a delegált és az alkalmazásengedélyeket is.
Ez a példa bemutatja, hogy az SDK hogyan használ hitelesítő adatokat egy hozzáférési jogkivonat kéréséhez a szükséges engedélyezési hatókörrel https://graph.microsoft.com/.default és a Microsoft Graph-erőforrások eléréséhez. Az identitást engedélyezni kell a Microsoft Entra ID-ben a megfelelő alkalmazásengedélyekkel (például User.Read.All) a felhasználói adatok lekéréséhez; ellenkező esetben a kérés 403 Forbidden hibával meghiúsul.
Fontos
Győződjön meg arról, hogy az alkalmazás vagy identitás rendelkezik a User.Read.All Microsoft Entra-azonosítóban megadott vagy egyéb szükséges engedélyekkel.
from azure.identity import DefaultAzureCredential
from msgraph.core import GraphClient
credential = DefaultAzureCredential()
client = GraphClient(credential=credential, scopes=["https://graph.microsoft.com/.default"])
response = client.get("/users")
users = response.json().get("value", [])
for user in users:
print(user["displayName"])
Tudjon meg többet erről az SDK-ról a hivatalos Build Python-alkalmazások a Microsoft Graph segítségével oktatóanyagban.
Engedélyezési hibák diagnosztizálása
Az engedélyezési problémák gyakran HTTP 403 Tiltott hibákat okoznak, amelyek nem megfelelő engedélyeket jeleznek. A problémák diagnosztizálása:
Hibaüzenetek ellenőrzése: A hiányzó engedélyek részleteiért tekintse át a választ.
Naplózás engedélyezése: A kérések és válaszok vizsgálatához használja Python naplózást.
import logging logging.basicConfig(level=logging.DEBUG)Hozzáférés ellenőrzése: A szerepkör-hozzárendelések ellenőrzéséhez használja a Azure CLI vagy a Azure portált.
az role assignment list --assignee <principal-id> --scope <scope>Cserélni kell a
<principal-id>a felhasználó, a szolgáltatási főszereplő vagy a felügyelt identitás objektumazonosítójára. Cserélje le<scope>egy Azure-erőforrás hatókörére, például egy előfizetés-azonosítóra, egy erőforráscsoport nevére vagy egy erőforrásra. Lásd: Hatókörökkel végzett munka.
Hatókörökkel végzett munka
Gyakran meg kell adnia egy hatókört, például az alábbi példában:
az role assignment list \
--assignee <principal-id> \
--scope <scope>
Íme néhány gyakori hatókörformátum:
| Hatókör szintje | Példaérték |
|---|---|
| Subscription | /subscriptions/<subscription-id> |
| Erőforráscsoport | /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> |
| Erőforrás neve | /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/<provider-namespace>/<resource-type>/<resource-name> |
Egy felügyelt identitáshoz tartozó szerepkör-hozzárendelések felsorolása például az erőforráscsoport szintjén:
az role assignment list \
--assignee 12345678-90ab-cdef-1234-567890abcdef \
--scope /subscriptions/<subscription-id>/resourceGroups/my-resource-group
Vagy az előfizetés szintjén:
az role assignment list \
--assignee 12345678-90ab-cdef-1234-567890abcdef \
--scope /subscriptions/<subscription-id>
Egy felhasználó vagy felügyelt identitás objektumazonosítójának (<principal-id>) lekéréséhez használja a következőt:
az ad user show --id <user-email> --query id
az identity show --name <identity-name> --resource-group <rg-name> --query principalId
Hozzáférés kezelése
A hozzáférés kezelése szerepkör-hozzárendeléseken keresztül a következőkkel:
Azure portál: Szerepkörök hozzáadása a Hozzáférés-vezérlés (IAM) szolgáltatás menüjén keresztül.
Azure CLI:
az role assignment create --assignee <principal-id> --role <role-name> --scope <scope>Cserélni kell a
<principal-id>a felhasználó, a szolgáltatási főszereplő vagy a felügyelt identitás objektumazonosítójára. Cserélje le<scope>egy Azure-erőforrás-hatókörre, például előfizetés-azonosítóra, erőforráscsoport-névre vagy erőforrásnévre. Lásd: Hatókörökkel végzett munka.ARM-sablonok: Deklaratív felügyelethez használható.
Felügyelt identitások esetén rendeljen szerepköröket az erőforrásokhoz, például a virtuális gépekhez társított identitáshoz. Az érvényes engedélyek ellenőrzéséhez használja a Azure portál Hozzáférés ellenőrzése funkcióját vagy a Azure CLI.
Szolgáltatásspecifikus engedélyezési megjegyzések
A Szolgáltatásspecifikus mechanizmusok szakaszban megtanulta, hogy egyes Azure szolgáltatások egyedi engedélyezési módszereket kínálnak. Ez a szakasz részletesebben ismerteti az említett három Azure-szolgáltatás mindegyikét.
Azure Storage
- RBAC: Kezeli a vezérlősík műveleteit.
- SAS- és ACL-ek: Az adatsík-hozzáférés szabályozása, a Microsoft Entra-hitelesítést is támogatva.
Példa: Blobok elérése Microsoft Entra-azonosítóval
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
credential = DefaultAzureCredential()
client = BlobServiceClient(account_url="https://<account-name>.blob.core.windows.net", credential=credential)
containers = client.list_containers()
for container in containers:
print(container.name)
Cserélje le <account-name> az Azure Storage-fiók nevére.
Azure Key Vault
Az örökölt hozzáférési szabályzatok helyett használja az RBAC-t a konzisztencia érdekében. A hozzáférési szabályzatok továbbra is támogatottak, de nem előnyben részesítettek.
Példa: Titkos kód lekérése
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
credential = DefaultAzureCredential()
client = SecretClient(vault_url="https://<vault-name>.vault.azure.net", credential=credential)
secret = client.get_secret("my-secret")
print(secret.value)
Cserélje le a <vault-name> jelölőt a Key Vault erőforrás valódi nevére.
Microsoft Graph
OAuth 2.0-hatóköröket használ a démonalkalmazások delegált engedélyeihez és alkalmazásengedélyeihez. Adja meg a hatóköröket a korábbi példában látható módon.
Ajánlott eljárások
- Minimális jogosultság: Csak a szükséges engedélyeket rendelje hozzá, például az Olvasót közreműködő helyett.
- Előnyben részesíti az RBAC-t: Különösen a Key Vaulthoz, az egységes hozzáférés-vezérléshez.
- Felügyelt identitások használata: Ne kezelje a hitelesítő adatokat a kódban.
- Gráfengedélyek korlátozása: Adott hatókörök kérése a kockázatok minimalizálása érdekében.