Megosztás a következőn keresztül:


Dinamikus munkamenetek használata az Azure Container Appsben

Az Azure Container Apps dinamikus munkamenetei elszigetelt, biztonságos környezeteket kínálnak, ha kódokat vagy alkalmazásokat kell futtatnia a többi számítási feladattól elkülönítve. A munkamenetek egy munkamenetkészleten belül futnak, amely azonnali hozzáférést biztosít az új és a meglévő munkamenetekhez. Ezek a munkamenetek olyan helyzetekben ideálisak, amikor a felhasználó által generált bemenetet szabályozott módon kell feldolgozni, vagy olyan külső szolgáltatások integrálása esetén, amelyek kód futtatását igénylik egy elkülönített környezetben.

Ez a cikk bemutatja, hogyan kezelheti és léphet kapcsolatba a dinamikus munkamenetekkel.

Munkamenet-hozzáférés

Az alkalmazás a session pool felügyeleti API-ján keresztül kommunikál a munkamenettel.

A készletkezelési végpont a következő formátumot követi:

https://<SESSION_POOL_NAME>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io

A munkamenetkészletek kezelésével kapcsolatos további információkért lásd: munkamenetkészletek felügyeleti végpontja

Kérelmek továbbítása egy munkamenet tárolójára

Ha kérést szeretne küldeni egy munkamenet tárolójába, a felügyeleti végpontot használja a kérés gyökérként. A rendszer az alapkészlet-felügyeleti végpontot követő elérési út minden részét továbbítja a munkamenet tárolójának.

Ha például a következőre indít hívást: <POOL_MANAGEMENT_ENDPOINT>/api/uploadfilea rendszer a kérést a munkamenet tárolójára irányítja a következő helyen 0.0.0.0:<TARGET_PORT>/api/uploadfile: .

Folyamatos interakció

Mivel továbbra is ugyanahhoz a munkamenethez indít hívásokat, a munkamenet továbbra is a készletben lesz lefoglalva . Ha a lehűlési időszak leteltét követően nem érkezett kérés a munkamenethez, a rendszer automatikusan megsemmisíti a munkamenetet.

Mintakérés

Az alábbi példa bemutatja, hogyan küldhet kérést egy munkamenetbe egy felhasználó azonosítójával egyedi munkamenet-azonosítóként.

A kérés elküldése előtt cserélje le a zárójelek közötti helyőrzőket a <> kérelemre jellemző értékekre.

POST <POOL_MANAGEMENT_ENDPOINT>/<API_PATH_EXPOSED_BY_CONTAINER>?identifier=<USER_ID>
Authorization: Bearer <TOKEN>
{
  "command": "echo 'Hello, world!'"
}

Ezt a kérést a rendszer a munkamenet tárolójára továbbítja a felhasználó azonosítójának azonosítójával együtt.

Ha a munkamenet még nem fut, az Azure Container Apps automatikusan lefoglal egy munkamenetet a készletből a kérés továbbítása előtt.

Ebben a példában a munkamenet tárolója a következő időpontban fogadja a kérést http://0.0.0.0:<INGRESS_PORT>/<API_PATH_EXPOSED_BY_CONTAINER>: .

Azonosítók

HA HTTP-kérést szeretne küldeni egy munkamenetbe, meg kell adnia egy munkamenet-azonosítót a kérelemben. A munkamenet-azonosítót egy, az URL-címben elnevezett identifier lekérdezési sztring paraméterben adja át, amikor kérést küld egy munkamenethez.

  • Ha már létezik egy azonosítóval rendelkező munkamenet, a rendszer elküldi a kérést a meglévő munkamenetnek.

  • Ha az azonosítóval rendelkező munkamenet nem létezik, a rendszer automatikusan lefoglal egy új munkamenetet, mielőtt elküldené a kérést.

Képernyőkép a munkamenetkészletről és a munkamenetek használatáról.

Azonosító formátuma

A munkamenet-azonosító egy szabad formátumú sztring, ami azt jelenti, hogy bármilyen módon megadhatja, amely megfelel az alkalmazás igényeinek.

A munkamenet-azonosító egy olyan sztring, amelyet a munkamenetkészleten belül egyediként határoz meg. Webalkalmazás létrehozásakor a felhasználó azonosítóját használhatja munkamenet-azonosítóként. Ha csevegőrobotot készít, használhatja a beszélgetés azonosítóját.

Az azonosítónak 4–128 karakter hosszúságú sztringnek kell lennie, és csak alfanumerikus karaktereket és speciális karaktereket tartalmazhat a listából: |, , -, &, ^%$#(){}[];<és .>

Biztonság

A dinamikus munkameneteket úgy alakítják ki, hogy megbízhatatlan kódot és alkalmazásokat futtassanak biztonságos és izolált környezetben. Bár a munkamenetek el vannak különítve egymástól, egy munkameneten belül minden, beleértve a fájlokat és a környezeti változókat is, a munkamenet felhasználói hozzáférhetnek.

Csak akkor konfigurálhat vagy tölthet fel bizalmas adatokat egy munkamenetbe, ha megbízik a munkamenet felhasználóiban.

Alapértelmezés szerint a munkamenetek nem hajtanak végre kimenő hálózati kéréseket. A hálózati hozzáférést a munkamenetkészlet hálózati állapotbeállításainak konfigurálásával szabályozhatja.

  • Használjon erős, egyedi munkamenet-azonosítókat: Mindig olyan munkamenet-azonosítókat hozzon létre, amelyek hosszúak és összetettek a találgatásos támadások megelőzése érdekében. Titkosítási algoritmusokkal nehezen kitalálható azonosítókat hozhat létre.

  • A munkamenet láthatóságának korlátozása: Szigorú hozzáférés-vezérlők beállítása annak biztosításához, hogy a munkamenet-azonosítók csak a munkamenetkészlet számára legyenek láthatók. Kerülje a munkamenet-azonosítók URL-címekben vagy naplókban való felfedését.

  • Rövid lejárati idő implementálása: Konfigurálja a munkamenet-azonosítókat úgy, hogy rövid inaktivitás után lejárjanak. Ez a módszer minimalizálja a munkamenetek eltérítésének kockázatát, miután egy felhasználó befejezte az alkalmazással való interakciót.

  • Munkamenet hitelesítő adatainak rendszeres elforgatása: Rendszeresen tekintse át és frissítse a munkamenetekhez társított hitelesítő adatokat. A rotáció csökkenti a jogosulatlan hozzáférés kockázatát.

  • Biztonságos átviteli protokollok használata: Mindig HTTPS használatával titkosíthatja az átvitel alatt álló adatokat, beleértve a munkamenet-azonosítókat is. Ez a megközelítés védelmet nyújt a közbeékelődéses támadások ellen.

  • Munkamenet-tevékenység monitorozása: Naplózás és figyelés implementálása a munkamenet-tevékenységek nyomon követéséhez. Ezekkel a naplókkal azonosíthatja a szokatlan mintákat vagy a lehetséges biztonsági incidenseket.

  • Felhasználói bemenet ellenőrzése: Az összes felhasználói bemenetet veszélyesnek kell tekinteni. Bemeneti ellenőrzési és higiéniai technikákkal védekezhet az injektálási támadások ellen, és biztosíthatja, hogy csak megbízható adatok legyenek feldolgozva.

A munkamenetek teljes védelme érdekében a következőt teheti:

Hitelesítés és engedélyezés

Amikor kérelmeket küld egy munkamenet során a készletkezelési API használatával, a hitelesítést a Microsoft Entra-tokenekkel végzik. A készletkezelési API meghívására csak az Azure ContainerApps munkamenet-végrehajtói szerepköréhez tartozó identitásból származó Microsoft Entra-jogkivonatok jogosultak.

A szerepkör identitáshoz való hozzárendeléséhez használja a következő Azure CLI-parancsot:

az role assignment create \
    --role "Azure ContainerApps Session Executor" \
    --assignee <PRINCIPAL_ID> \
    --scope <SESSION_POOL_RESOURCE_ID>

Ha egy nagy nyelvi modell (LLM) keretrendszer-integrációt használ, a keretrendszer kezeli a tokenek generálását és kezelését ön helyett. Győződjön meg arról, hogy az alkalmazás olyan felügyelt identitással van konfigurálva, amely rendelkezik a munkamenetkészlet szükséges szerepkör-hozzárendeléseivel.

Ha közvetlenül a készlet felügyeleti API-végpontjait használja, létre kell hoznia egy jogkivonatot, és bele kell foglalnia a Authorization HTTP-kérések fejlécében. A korábban említett szerepkör-hozzárendeléseken kívül a jogkivonatnak tartalmaznia kell egy célközönségi (aud) jogcímet az értékkel https://dynamicsessions.io.

A jogkivonat azure CLI-vel történő létrehozásához futtassa a következő parancsot:

az account get-access-token --resource https://dynamicsessions.io

Fontos

Érvényes tokent használnak a készlet bármely munkamenetének létrehozásához és eléréséhez. Tartsa biztonságban a jogkivonatait, és ne ossza meg őket nem megbízható felekkel. A végfelhasználóknak soha nem szabad közvetlen hozzáféréssel rendelkezniük a jogkivonatokhoz. Csak az alkalmazás számára tegye elérhetővé a tokeneket, és soha ne a végfelhasználók számára.

Munkamenet-azonosítók védelme

A munkamenet-azonosító bizalmas információ, amelyet biztonságosan kell kezelnie. Az alkalmazásnak biztosítania kell, hogy minden felhasználó vagy bérlő csak a saját munkameneteihez férhessen hozzá.

Az alkalmazás kialakításától és architektúrájától függően eltérőek azok a konkrét stratégiák, amelyek megakadályozzák a munkamenet-azonosítókkal való visszaélést. Az alkalmazásnak azonban mindig teljes körűen szabályoznia kell a munkamenet-azonosítók létrehozását és használatát, hogy egy rosszindulatú felhasználó ne férhessen hozzá egy másik felhasználó munkamenetéhez.

Példastratégiák:

  • Felhasználónként egy munkamenet: Ha az alkalmazás felhasználónként egy munkamenetet használ, minden felhasználót biztonságosan hitelesíteni kell, és az alkalmazásnak minden bejelentkezett felhasználóhoz egyedi munkamenet-azonosítót kell használnia.

  • Ügynök-beszélgetésenként egy munkamenet: Ha az alkalmazás AI-ügynök beszélgetésenként egy munkamenetet használ, győződjön meg arról, hogy az alkalmazás egyedi munkamenet-azonosítót használ minden olyan beszélgetéshez, amelyet a végfelhasználó nem módosíthat.

Fontos

A munkamenetekhez való hozzáférés biztonságossá tételének elmulasztása a felhasználói munkamenetekben tárolt adatokkal való visszaélést vagy jogosulatlan hozzáférést eredményezhet.

Felügyelt identitás használata

A Microsoft Entra-azonosítóból származó felügyelt identitás lehetővé teszi a tároló munkamenetkészleteinek és munkameneteinek elérését más, Microsoft Entra által védett erőforrásokhoz. A munkamenet-készletben a rendszer által hozzárendelt és a felhasználó által hozzárendelt felügyelt identitások is támogatottak.

A Microsoft Entra ID-ban található felügyelt identitásokról további információt az Azure-erőforrások felügyelt identitásai című témakörben talál.

A felügyelt identitások kétféleképpen használhatók egyéni tároló munkamenetkészletekkel:

  • Rendszerkép lekéréses hitelesítése: A felügyelt identitással hitelesítheti magát a tárolóregisztrációs adatbázissal a tárolólemezkép lekéréséhez.

  • Erőforrás-hozzáférés: A munkamenet-készlet felügyelt identitásával hozzáférhet más Microsoft Entra által védett erőforrásokhoz. A biztonsági következmények miatt ez a képesség alapértelmezés szerint le van tiltva.

    Fontos

    Ha engedélyezi a felügyelt identitáshoz való hozzáférést egy munkamenetben, a munkamenetben futó bármely kód vagy program létrehozhat Microsoft Entra-jogkivonatokat a készlet felügyelt identitásához. Mivel a munkamenetek általában nem megbízható kódot futtatnak, ezt a funkciót rendkívül óvatosan használja.

Ha engedélyezni szeretné a felügyelt identitást egy egyéni tároló munkamenetkészletéhez, használja az Azure Resource Managert.

Fakitermelés

A munkamenetben futó tárolók konzolnaplói az Azure Container Apps-környezethez társított Azure Log Analytics-munkaterületen érhetők el egy nevű AppEnvSessionConsoleLogs_CLtáblában.