Amazon előrejelzés egy teljesen felügyelt szolgáltatás, amely ugyanazon a technológián alapul, amelyet az Amazon.com előrejelzéséhez használnak. A Forecast gépi tanulást (ML) használ az idősorok adatainak további változókkal való kombinálására, hogy rendkívül pontos előrejelzéseket készítsen. Az előrejelzés nem igényel ML tapasztalatot az induláshoz. Csak előzményadatokat és minden olyan további adatot kell megadnia, amelyek hatással lehetnek az előrejelzésekre.
Az ügyfelek a Software as service (SaaS) modell használata felé fordulnak a több bérlős megoldások szállítására. A szabályozási és megfelelőségi követelmények teljesítése érdekében számos különböző architektúra modellel készíthet SaaS-alkalmazásokat. A SaaS-modelltől függően az olyan erőforrások, mint az előrejelzés, meg vannak osztva a bérlők között. Az előrejelzési adatokhoz való hozzáférést, a figyelést és a számlázást bérlőnként kell figyelembe venni a SaaS-megoldások üzembe helyezéséhez.
Ez a bejegyzés bemutatja, hogyan használhatja az előrejelzést egy többbérlős SaaS-alkalmazáson belül Attribútum alapú hozzáférés-vezérlés (ABAC) be AWS Identity and Access Management (IAM) biztosítja ezeket a képességeket. Az ABAC egy hatékony megközelítés, amellyel elkülönítheti az erőforrásokat a bérlők között.
Ebben a bejegyzésben útmutatást adunk az IAM-házirendek beállításához a bérlők számára az ABAC-elvek és az előrejelzés használatával. A konfiguráció bemutatására két bérlőt állítottunk fel, TenantA
és a TenantB
, és jelenítsen meg egy használati esetet egy SaaS-alkalmazás kontextusában az előrejelzés használatával. A mi használati esetünkben TenantB
nem lehet törölni TenantA
források, és fordítva. Az alábbi ábra szemlélteti felépítésünket.
TenantA
és a TenantB
mikroszolgáltatásként futnak a szolgáltatások Amazon Elastic Kubernetes szolgáltatás (Amazon EKS). A bérlői alkalmazás üzleti folyamatának részeként használja az Előrejelzést.
Előrejelzési adatfelvétel
A Forecast adatokat importál a bérlőtől Amazon egyszerű tárolási szolgáltatás (Amazon S3) vödröt az előrejelzés által kezelt S3 gyűjtőhöz. Az adatok átvitel közben és nyugalmi állapotban automatikusan titkosíthatók előrejelzés által kezelt kulcsok vagy bérlőspecifikus kulcsok segítségével AWS kulcskezelési szolgáltatás (AWS KMS). A bérlőspecifikus kulcsot a SaaS-alkalmazás a beépítés részeként hozhatja létre, vagy a bérlő megadhatja saját ügyfél által kezelt kulcsát (CMK) az AWS KMS használatával. A bérlőspecifikus kulcsra vonatkozó engedélyek visszavonása megakadályozza, hogy az előrejelzés felhasználja a bérlő adatait. Javasoljuk, hogy használjon bérlőspecifikus kulcsot és bérlőnként egy IAM-szerepet több bérlős SaaS-környezetben. Ez lehetővé teszi az adatok bérlőnkénti biztonságát.
Megoldás áttekintése
Az Amazon S3 adatait particionálhatja, hogy a bérlői hozzáférést különböző módon elkülönítse. Ebben a bejegyzésben két stratégiát tárgyalunk:
- Használjon bérlőnként egy S3 vödröt
- Használjon egyetlen S3-csoportot, és különítse el a bérlői adatokat előtaggal
A különféle stratégiákkal kapcsolatos további információkért lásd a Több-bérlős adatok tárolása az Amazon S3-on GitHub repó.
Ha bérlőnként egy tárolót használ, egy IAM-házirend segítségével korlátozza a hozzáférést egy adott bérlői S3-csoporthoz. Például:
A fiókonkénti S3-csoportok számának szigorú korlátozása van. Ennek a korlátnak a leküzdéséhez több fiókra kiterjedő stratégiát kell mérlegelni.
Második lehetőségünkben a bérlői adatokat S3 előtaggal különítjük el egyetlen S3 tárolóban. IAM-házirendet használunk a hozzáférés korlátozására bérlőnként egy csoport előtagon belül. Például:
Ennél a bejegyzésnél a második lehetőséget használjuk az S3 előtagok egyetlen tárolón belüli hozzárendelésére. A bérlői adatokat CMK-k segítségével titkosítjuk az AWS KMS-ben.
Bérlői beszállás
A SaaS-alkalmazások súrlódásmentes modellre támaszkodnak, hogy új bérlőket vezessenek be környezetükbe. Ez gyakran több összetevő összehangolását igényli az új bérlő létrehozásához szükséges összes elem sikeres kiépítéséhez és konfigurálásához. Ezt a folyamatot a SaaS architektúrában úgy hívják bérlői beszállás. Ezt kezdeményezhetik közvetlenül a bérlők, vagy egy szolgáltató által irányított folyamat részeként. A következő diagram az előrejelzés bérlőnkénti konfigurálásának folyamatát mutatja be a belépési folyamat részeként.
Az erőforrások bérlői információkkal vannak megjelölve. Ennél a bejegyzésnél az erőforrásokat a bérlő értékével jelöljük meg, például tenant_a
.
Hozzon létre egy előrejelzési szerepet
Ezt az IAM-szerepet az Előrejelzés bérlőnként veszi át. A következő házirendet kell alkalmaznia, hogy lehetővé tegye a Forecast számára az Amazon S3 és az AWS KMS közötti interakciót az ügyfélfiókban. A szerepkör a címkebérlővel van megcímkézve. Lásd például a következő kódot:
Hozza létre a házirendeket
Ebben a következő lépésben szabályzatokat hozunk létre az előrejelzési szerepkörünkhöz. Ennél a bejegyzésnél a jobb olvashatóság érdekében két irányelvre bontottuk őket, de létrehozhatja őket igényei szerint.
1. irányelv: Csak olvasható hozzáférés előrejelzése
A következő házirend előjogokat biztosít az előrejelzési erőforrások leírásához, listázásához és lekérdezéséhez. Ez a házirend az előrejelzést csak olvasási hozzáférésre korlátozza. A bérlői címke érvényesítési feltétele a következő kódban biztosítja, hogy a bérlői címke értéke megegyezzen a megbízó bérlői címkéjével. Utal félkövér kód a konkrétumokhoz.
2. házirend: Amazon S3 és AWS KMS hozzáférési szabályzat
A következő házirend jogosultságokat biztosít az AWS KMS számára, és hozzáférést biztosít az S3 bérlői előtaghoz. A bérlői címke érvényesítési feltétele a következő kódban biztosítja, hogy a bérlői címke értéke megegyezzen a megbízó bérlői címkéjével. Utal félkövér kód a konkrétumokhoz.
Hozzon létre egy bérlőspecifikus kulcsot
Most bérlőnként létrehozunk egy bérlőspecifikus kulcsot az AWS KMS-ben, és felcímkézzük a bérlői címke értékével. Alternatív megoldásként a bérlő beviheti saját kulcsát az AWS KMS-hez. Megadjuk az előző szerepeket (Forecast_TenantA_Role
or Forecast_TenantB_Role
) hozzáférést biztosít a bérlőspecifikus kulcshoz.
Például a következő képernyőképen a kulcs-érték pár látható tenant
és a tenant_a
.
A következő képernyőképen láthatók azok az IAM-szerepek, amelyek használhatják ezt a kulcsot.
Hozzon létre egy alkalmazási szerepet
Az általunk létrehozott második szerepet a SaaS-alkalmazás bérlőnként veszi fel. Alkalmaznia kell a következő házirendet, hogy az alkalmazás együttműködjön a Forecast, az Amazon S3 és az AWS KMS szolgáltatásokkal. A szerepkör a címkebérlővel van megcímkézve. Lásd a következő kódot:
Hozza létre a házirendeket
Most házirendeket hozunk létre az alkalmazási szerepkörhöz. Ennél a bejegyzésnél a jobb olvashatóság érdekében két irányelvre bontottuk őket, de létrehozhatja őket igényei szerint.
1. irányelv: Előrejelzési hozzáférés
A következő házirend előjogokat biztosít az előrejelzési erőforrások létrehozásához, frissítéséhez és törléséhez. Az irányelv a létrehozás során érvényesíti a címkekövetelményt. Emellett korlátozza a list
, describe
és delete
erőforrásokkal kapcsolatos intézkedések az adott bérlőnek. Ennek a szabályzatnak van IAM-je PassRole
hogy a Forecast átvehesse a szerepet.
A tenant
címke érvényesítési feltétele a következő kódban biztosítja, hogy a bérlő címke értéke megegyezzen a bérlővel. Utal félkövér kód a konkrétumokhoz.
2. irányelv: Amazon S3, AWS KMS, Amazon CloudWatch és erőforráscsoport-hozzáférés
A következő házirend jogosultságokat biztosít az Amazon S3 és AWS KMS-erőforrások elérésére, valamint amazonfelhőóra. Korlátozza a hozzáférést a bérlőspecifikus S3 előtaghoz és a bérlőspecifikus CMK-hoz. A bérlő érvényesítési feltétele fennáll félkövér kód.
Hozzon létre egy erőforráscsoportot
Az erőforráscsoport lehetővé teszi az összes címkézett erőforrás lekérdezését a bérlő számára. A következő példakód a AWS parancssori interfész (AWS CLI) erőforráscsoport létrehozásához TenantA
:
Alkalmazásfolyamat előrejelzése
A következő diagram az előrejelzési alkalmazás folyamatát mutatja be. Az alkalmazásszolgáltatás IAM-szerepet vállal a bérlő számára, és az üzleti folyamat részeként meghívja az előrejelzési API-t.
Hozzon létre egy előrejelzőt a TenantB számára
A létrehozott erőforrásokat fel kell címkézni a bérlői címkével. A következő kód a Python (Boto3) API-t használja a TenantB előrejelzőjének létrehozásához (lásd: félkövér kód a részletekért):
Hozzon létre előrejelzést a TenantB előrejelzőjén
A következő kód a Python (Boto3) API-t használja előrejelzés létrehozásához az imént létrehozott előrejelzőn:
Érvényesítse az előrejelzési erőforrásokhoz való hozzáférést
Ebben a részben megerősítjük, hogy csak az adott bérlő férhet hozzá az előrejelzési erőforrásokhoz. Egy másik bérlőhöz tartozó előrejelzési erőforrások elérése, módosítása vagy törlése hibát jelez. A következő kód a Python (Boto3) API-t használja annak bemutatására, hogy a TenantA megpróbálja törölni a TenantB Forecast erőforrást:
Előrejelzők listázása és monitorozása
A következő példakód a Python (Boto3) API-t használja a TenantA előrejelzéseinek lekérdezéséhez erőforráscsoportok segítségével:
Mivel az AWS jól felépített keretrendszer kifejti, fontos figyelni a szolgáltatási kvótákat (amelyekre más néven is hivatkozunk). szolgáltatási korlátok). Az előrejelzésnek fiókonkénti korlátai vannak; további információkért lásd Irányelvek és kvóták.
A következő kód egy példa a CloudWatch-mutató feltöltésére a prediktorok teljes számával:
Egyéb megfontolások
Az erőforráskorlátokat és a szabályozást az alkalmazásnak kell kezelnie a bérlők között. Ha nem tudja befogadni a Előrejelzési határok, érdemes megfontolni a többfiókos konfigurációt.
Az előrejelzési lista API-kat vagy az erőforráscsoport-válaszokat alkalmazásonként szűrni kell a tenant
címke értéke.
Következtetés
Ebben a bejegyzésben bemutattuk, hogyan lehet elkülöníteni az előrejelzési hozzáférést az ABAC technikával egy többbérlős SaaS-alkalmazásban. Megmutattuk, hogyan korlátozható a bérlői előrejelzéshez való hozzáférés a bérlői címke használatával. További címkék alkalmazásával tovább testreszabhatja a házirendeket, vagy alkalmazhatja ezt a stratégiát más AWS-szolgáltatásokra.
Az ABAC engedélyezési stratégiaként való használatáról további információkért lásd: Mi az ABAC az AWS számára?
A szerzőkről
Gunjan Garg idősebb szoftverfejlesztő mérnök az AWS Vertical AI csapatában. Jelenlegi pozíciójában az Amazon Forecastnál a mérnöki problémákra összpontosít, és élvezi a skálázható rendszereket, amelyek a legtöbb értéket nyújtják a végfelhasználók számára. Szabadidejében szívesen játszik Sudokuval és Aknakeresővel.
Matias Battaglia az Amazon Web Services technikai fiókkezelője. Jelenlegi szerepkörében szívesen segít ügyfeleinek felhőalapú útjuk minden szakaszában. Szabadidejében szívesen épít AI/ML projekteket.
Rakesh Ramadas az Amazon Web Services ISV megoldástervezője. Fókuszterületei közé tartozik az AI/ML és a Big Data.
- hozzáférés
- Fiók
- Akció
- További
- AI
- amazon
- Amazon előrejelzés
- Az Amazon Web Services
- api
- API-k
- Alkalmazás
- alkalmazások
- építészet
- meghatalmazás
- AWS
- számlázás
- épít
- Épület
- üzleti
- felhő
- kód
- teljesítés
- Jelenlegi
- Ügyfelek
- dátum
- adat hozzáférés
- visszafejtése
- kézbesítés
- Fejlesztés
- mérnök
- Mérnöki
- Környezet
- áramlási
- Összpontosít
- Ingyenes
- GitHub
- Csoport
- Hogyan
- How To
- HTTPS
- IAM
- Identitás
- Hatás
- információ
- IT
- Kulcs
- kulcsok
- Kubernetes
- tanulás
- vonal
- Lista
- gépi tanulás
- vezetés
- ML
- modell
- ellenőrzés
- Beszállás
- opció
- Más
- Politikák
- politika
- projektek
- Piton
- követelmények
- forrás
- Tudástár
- válasz
- REST
- futás
- SaaS
- Series of
- Szolgáltatások
- készlet
- beállítás
- megosztott
- Egyszerű
- szoftver
- szoftverfejlesztés
- Megoldások
- osztott
- kezdődött
- nyilatkozat
- tárolás
- Stratégia
- Systems
- Műszaki
- Technológia
- idő
- tranzit
- Frissítések
- Felhasználók
- érték
- háló
- webes szolgáltatások
- belül