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 Functions lehetővé teszi titkos kulcsok használatát, hogy megnehezítse a függvényvégpontok elérését. Ez a cikk a Functions által támogatott hívóbetűk típusait és a hozzáférési kulcsok használatát ismerteti.
Bár a hozzáférési kulcsok némi kockázatcsökkentést nyújtanak a nem kívánt hozzáférés ellen, érdemes megfontolni a HTTP-végpontok éles környezetben történő biztonságossá tételének egyéb lehetőségeit. Például nem ajánlott nyilvános alkalmazásokban megosztani a megosztott titkos kulcsokat. Ha a függvény nyilvános ügyfélről van meghívva, érdemes megfontolnia az alábbi vagy más biztonsági mechanizmusok implementálását:
- App Service-hitelesítés/engedélyezés engedélyezése
- Kérelmek hitelesítése az Azure API Management (APIM) használatával
- A függvényalkalmazás üzembe helyezése virtuális hálózaton
- A függvényalkalmazás üzembe helyezése külön-külön
A hozzáférési kulcsok biztosítják a HTTP-hitelesítés alapját a HTTP által aktivált függvényekben. További információ: Engedélyezési szint.
A kulcsok ismertetése
A hozzáférési kulcs hatóköre és a támogatott műveletek a hozzáférési kulcs típusától függenek.
| Kulcs típusa | A kulcs neve | HTTP-hitelesítés szintje | Leírás |
|---|---|---|---|
| Függvény |
default vagy felhasználó által definiált |
function |
Csak egy adott függvényvégponthoz engedélyezi a hozzáférést. |
| Házigazda |
default vagy felhasználó által definiált |
function |
Lehetővé teszi a függvényalkalmazások összes függvényvégpontjának elérését. |
| Mester | _master |
admin |
Speciális gazdagépkulcs, amely rendszergazdai hozzáférést is biztosít a futtatókörnyezeti REST API-khoz egy függvényalkalmazásban. Mivel a főkulcs emelt szintű engedélyeket biztosít a függvényalkalmazásban, nem szabad megosztania ezt a kulcsot harmadik felekkel, és nem szabad natív ügyfélalkalmazásokban terjesztenie. |
| Rendszer | A bővítménytől függ | n.a. | Bizonyos bővítményekhez rendszer által felügyelt kulcsra lehet szükség a webhookvégpontok eléréséhez. A rendszerkulcsok olyan bővítményspecifikus függvényvégpontokhoz lettek kialakítva, amelyeket belső összetevők hívnak meg. Az Event Grid-eseményindító például megköveteli, hogy az előfizetés rendszerkulcsot használjon az eseményindító végpontjának meghívásakor. A Durable Functions rendszerkulcsokkal is meghívja a Durable Task bővítmény API-kat. Csak bizonyos bővítmények hozhatnak létre rendszerkulcsokat. Nem állíthatja be explicit módon az értékeiket. A többi kulcshoz hasonlóan a portálról vagy a kulcs API-kkal is létrehozhat egy új értéket a kulcshoz. |
Minden kulcs neve referenciaként van elnevezve. A függvény és a gazdagép szintjén van egy alapértelmezett kulcs (névvel elnevezve default). A funkciógombok elsőbbséget élveznek a számítógép gombokkal szemben. Ha két kulcs azonos néven van definiálva, a függvénykulcsot mindig a rendszer használja.
Az alábbi táblázat a különböző hozzáférési kulcsok felhasználási módjait hasonlítja össze:
| Művelet | Hatókör | Kulcs típusa |
|---|---|---|
| Függvény végrehajtása | Konkrét függvény | Függvény |
| Függvény végrehajtása | Bármely függvény | Függvény vagy gazdagép |
Végpont meghívása admin |
Függvény-alkalmazás | Csak a mester részére |
| Durable Task Extension API-k meghívása | Függvényalkalmazás* | Rendszer |
| Bővítményspecifikus webhook meghívása (belső) | Függvényalkalmazás* | rendszer |
*A bővítmény által meghatározott hatókör.
Fő követelmények
A Functionsben a hozzáférési kulcsok véletlenszerűen generálnak 32 bájtos tömböket, amelyek URL-biztonságos base-64 sztringként vannak kódolva. Bár létrehozhat saját hozzáférési kulcsokat, és a Functions szolgáltatással használhatja őket, javasoljuk, hogy ehelyett engedélyezze a Functions számára, hogy az összes hozzáférési kulcsot létrehozza önnek.
A függvények által létrehozott hozzáférési kulcsok speciális aláírási és ellenőrzőösszeg-értékeket tartalmaznak, amelyek a hozzáférési kulcs típusát jelzik, és amelyeket az Azure Functions hozott létre. Ha ezeket az extra összetevőket maga a kulcs tartalmazza, sokkal könnyebb meghatározni az ilyen típusú titkos kulcsok forrását a biztonsági vizsgálat és más automatizált folyamatok során.
Ha engedélyezni szeretné a Functions számára a kulcsok létrehozását, ne adja meg a kulcsot value a kulcsok létrehozásához használható API-khoz.
Kulcstároló kezelése
A kulcsok a függvényalkalmazás részeként vannak tárolva az Azure-ban, és inaktív állapotban vannak titkosítva. A kulcsok alapértelmezés szerint egy Blob Storage-tárolóban vannak tárolva a AzureWebJobsStorage beállítás által megadott fiókban. A beállítással felülbírálhatja ezt az AzureWebJobsSecretStorageType alapértelmezett viselkedést, és ehelyett kulcsokat tárolhat az alábbi alternatív helyek egyikén:
| Hely | Érték | Leírás |
|---|---|---|
| Egy második tárfiók | blob |
A Blob Storage-kulcsokat olyan tárfiókban tárolja, amely eltér a Functions-futtatókörnyezet által használttól. A használt fiókot és tárolót a beállításban AzureWebJobsSecretStorageSas megadott közös hozzáférésű jogosultságkód (SAS) URL-cím határozza meg. Az AzureWebJobsSecretStorageSas beállítást meg kell őriznie, amikor az SAS URL-címe megváltozik. |
| Azure Key Vault | keyvault |
A AzureWebJobsSecretStorageKeyVaultUri beállított kulcstárolót a kulcsok tárolására használjuk. |
| Fájlrendszer | files |
A kulcsok megmaradnak a helyi fájlrendszerben, amely a Functions 1.x-ben az alapértelmezett. A fájlrendszer tárolása nem ajánlott. |
| A Kubernetes titkos kódjai | kubernetes |
Az AzureWebJobsKubernetesSecretName erőforráskészlete a kulcsok tárolására szolgál. Csak akkor támogatott, ha a függvényalkalmazás üzembe van helyezve a Kubernetesben. Az Azure Functions Core Tools automatikusan létrehozza az értékeket, amikor az alkalmazás Kubernetes-fürtön való üzembe helyezéséhez használja. A nem módosítható titkos kulcsok nem támogatottak. |
| Azure Container Apps titkos adatok | ContainerApps |
A kulcsok az Azure Container Apps titkos kulcstárolójában vannak tárolva. Csak akkor támogatott, ha a függvényalkalmazás üzembe van helyezve az Azure Container Appsben. |
A Key Vault kulcstárolóhoz való használata esetén a szükséges alkalmazásbeállítások a felügyelt identitás típusától függenek, akár rendszer által hozzárendelt, akár felhasználó által hozzárendelt.
| Név beállítása | Rendszer által hozzárendelt | Felhasználó által hozzárendelt | Alkalmazásregisztráció |
|---|---|---|---|
| AzureWebJobsSecretStorageKeyVaultUri | ✓ | ✓ | ✓ |
| AzureWebJobsSecretStorageKeyVaultClientId | X | ✓ | ✓ |
| AzureWebJobsSecretStorageKeyVaultClientSecret | X | X | ✓ |
| AzureWebJobsSecretStorageKeyVaultTenantId | X | X | ✓ |
Fontos
A titkos kulcsok nem terjednek ki az egyes függvényalkalmazásokra a AzureWebJobsSecretStorageKeyVaultUri beállításon keresztül. Ha több függvényalkalmazás is ugyanarra a Key Vaultra van konfigurálva, ugyanazokkal a titkos kulcsokkal rendelkeznek, ami kulcsütközésekhez vagy felülíráshoz vezethet. A nem szándékos viselkedés elkerülése érdekében javasoljuk, hogy minden függvényalkalmazáshoz külön Key Vault-példányt használjon.
Hozzáférési kulcsok használata
A HTTP által aktivált függvények általában a függvény nevét tartalmazó URL-címmel hívhatók meg. Ha egy adott függvény engedélyezési szintje nem anonymousértékként van beállítva, a kérelemben meg kell adnia egy hozzáférési kulcsot is. A hozzáférési kulcs megadható az URL-címben a lekérdezési sztring ?code= használatával, vagy a kérelem fejlécében (x-functions-key). További információ: Access-kulcs engedélyezése.
A futtatókörnyezeti REST API-k (alatt /admin/) eléréséhez meg kell adnia a főkulcsot (_master) a x-functions-key kérelem fejlécében. A rendszergazdai végpontokatel.
Szerezze meg a függvény hozzáférési kulcsait
A függvények és a gazdagépkulcsok programozott módon lekérhetők az alábbi Azure Resource Manager API-k használatával:
Az Azure Resource Manager API-k meghívásáról az Azure REST API-referenciában olvashat.
Ezekkel a metódusokkal a REST API-k használata nélkül is lekérheti a hozzáférési kulcsokat.
Jelentkezzen be az Azure Portalra, majd keresse meg és válassza a függvényalkalmazást.
Válassza ki a használni kívánt függvényalkalmazást.
A bal oldali menüben bontsa ki a Functions elemet, majd válassza az Alkalmazáskulcsok lehetőséget.
Megjelenik az Alkalmazáskulcsok lap. Ezen a lapon megjelennek a gazda kulcsok, amelyek az alkalmazás bármely funkciójának eléréséhez használhatók. Megjelenik a rendszerkulcs is, amely rendszergazdai szintű hozzáférést biztosít az összes függvényalkalmazás API-hoz.
A minimális jogosultságot is gyakorolhatja egy adott függvény kulcsával. A függvényspecifikus kulcsokat egy adott HTTP-aktivált függvény Függvénykulcsok lapján szerezheti be.
Jótanács
A függvények hozzáférési kulcsait az Azure Functions Core Tools paranccsal func azure functionapp list-functions is beszerezheti a --show-keys beállítással. További információkért tekintse meg az Azure Functions Core Tools referenciáját.
Hozzáférési kulcsok megújítása vagy létrehozása
A hozzáférési kulcs értékeinek megújítása vagy létrehozásakor manuálisan kell újraosztania a frissített kulcsértékeket az összes olyan ügyfélnek, amely meghívja a függvényt.
A függvényeket és a gazdagépkulcsokat programozott módon megújíthatja, vagy újakat hozhat létre az alábbi Azure Resource Manager API-k használatával:
- Függvény titkos kódjának létrehozása vagy frissítése
- Függvény titkos kódhelyének létrehozása vagy frissítése
- Gazdagép titkos kódjának létrehozása vagy frissítése
- Gazdagép titkos kódhelyének létrehozása vagy frissítése
Az Azure Resource Manager API-k meghívásáról az Azure REST API-referenciában olvashat.
Ezekkel a metódusokkal anélkül szerezhet be hozzáférési kulcsokat, hogy manuálisan kellene hívásokat létrehoznia a REST API-khoz.
Jelentkezzen be az Azure Portalra, majd keresse meg és válassza a függvényalkalmazást.
Válassza ki a használni kívánt függvényalkalmazást.
A bal oldali menüben bontsa ki a Functions elemet, majd válassza az Alkalmazáskulcsok lehetőséget.
Megjelenik az Alkalmazáskulcsok lap. Ezen a lapon megjelennek a gazda kulcsok, amelyek az alkalmazás bármely funkciójának eléréséhez használhatók. Megjelenik a rendszerkulcs is, amely rendszergazdai szintű hozzáférést biztosít az összes függvényalkalmazás API-hoz.
Válassza a Megújítás gombot a megújítani kívánt kulcs mellett, majd válassza a Megújítás és mentés lehetőséget.
Egy függvénykulcsot egy adott HTTP-aktivált függvény Függvénykulcs lapján is megújíthat.
Hívóbetűk törlése
A függvényeket és a gazdagépkulcsokat programozott módon törölheti az alábbi Azure Resource Manager API-k használatával:
- Függvény titkos kódjának törlése
- Függvény titkos kódhelyének törlése
- Gazdagép titkos kódjának törlése
- Gazdagép titkos kódhelyének törlése
Az Azure Resource Manager API-k meghívásáról az Azure REST API-referenciában olvashat.