Amazonska napoved je popolnoma upravljana storitev, ki temelji na isti tehnologiji, ki se uporablja za napovedovanje na Amazon.com. Napoved uporablja strojno učenje (ML) za združevanje podatkov časovnih vrst z dodatnimi spremenljivkami za izdelavo zelo natančnih napovedi. Za začetek Forecast ne potrebuje izkušenj z ML. Navesti morate le pretekle podatke in vse dodatne podatke, ki lahko vplivajo na napovedi.
Stranke se obračajo k uporabi modela programske opreme kot storitve (SaaS) za dostavo rešitev za več najemnikov. Aplikacije SaaS lahko zgradite z različnimi arhitekturnimi modeli, da izpolnite regulativne zahteve in zahteve skladnosti. Odvisno od modela SaaS si vire, kot je Forecast, delijo najemniki. Pri uvajanju rešitev SaaS je treba za vsakega najemnika upoštevati dostop do napovedanih podatkov, spremljanje in zaračunavanje.
Ta objava opisuje, kako uporabljati Forecast v aplikaciji SaaS z več najemniki z uporabo Nadzor dostopa na podlagi atributov (ABAC) in AWS upravljanje identitete in dostopa (IAM) za zagotavljanje teh zmogljivosti. ABAC je zmogljiv pristop, ki ga lahko uporabite za izolacijo virov med najemniki.
V tej objavi nudimo navodila za nastavitev pravilnikov IAM za najemnike z uporabo načel ABAC in napovedi. Za predstavitev konfiguracije smo nastavili dva najemnika, TenantA
in TenantB
in pokažite primer uporabe v kontekstu aplikacije SaaS z uporabo Forecast. V našem primeru uporabe, TenantB
ne morem izbrisati TenantA
sredstva in obratno. Naslednji diagram ponazarja našo arhitekturo.
TenantA
in TenantB
imeti storitve, ki tečejo kot mikroservis znotraj Amazonski elastični kubernetes storitev (Amazon EKS). Aplikacija najemnika uporablja Forecast kot del svojega poslovnega toka.
Zaužitje podatkov napovedi
Napoved uvozi podatke iz najemnikovih Preprosta storitev shranjevanja Amazon (Amazon S3) v vedro S3, ki ga upravlja Forecast. Podatke je mogoče samodejno šifrirati med prenosom in v mirovanju z uporabo ključev, ki jih upravlja Forecast, ali ključev, specifičnih za najemnika, prek AWS Service Key Management (AWS KMS). Ključ, specifičen za najemnika, lahko ustvari aplikacija SaaS kot del vkrcanja ali pa lahko najemnik zagotovi svoj ključ, ki ga upravlja stranka (CMK) z uporabo AWS KMS. Preklic dovoljenja za ključ, specifičen za najemnika, prepreči Forecastu uporabo podatkov najemnika. Priporočamo uporabo ključa, specifičnega za najemnika, in vloge IAM na najemnika v okolju SaaS z več najemniki. To omogoča varovanje podatkov od najemnika do najemnika.
Pregled rešitev
Podatke na Amazon S3 lahko razdelite na različne načine, da ločite dostop najemnika. Za to objavo razpravljamo o dveh strategijah:
- Uporabite eno vedro S3 na najemnika
- Uporabite eno vedro S3 in ločite podatke o najemnikih s predpono
Za več informacij o različnih strategijah glejte Shranjevanje podatkov več najemnikov na Amazon S3 Repo za GitHub.
Ko uporabljate eno vedro na najemnika, uporabite pravilnik IAM za omejitev dostopa do danega vedra S3 najemnika. Na primer:
Obstaja stroga omejitev števila veder S3 na račun. Za premagovanje te omejitve je treba razmisliti o strategiji z več računi.
V naši drugi možnosti so podatki najemnika ločeni s predpono S3 v enem samem vedru S3. Za omejitev dostopa znotraj predpone vedra na najemnika uporabljamo pravilnik IAM. Na primer:
Za to objavo uporabljamo drugo možnost dodeljevanja predpon S3 znotraj enega vedra. Šifriramo podatke najemnikov z uporabo CMK v AWS KMS.
Uvajanje najemnika
Aplikacije SaaS temeljijo na modelu brez trenja za uvajanje novih najemnikov v njihovo okolje. To pogosto zahteva orkestriranje več komponent za uspešno zagotavljanje in konfiguracijo vseh elementov, potrebnih za ustvarjanje novega najemnika. Ta proces se v arhitekturi SaaS imenuje vkrcanje najemnika. To lahko sprožijo neposredno najemniki ali kot del postopka, ki ga upravlja ponudnik. Naslednji diagram ponazarja potek konfiguriranja napovedi na najemnika kot del procesa vkrcanja.
Viri so označeni z informacijami o najemniku. Za to objavo vire označimo z vrednostjo za najemnika, na primer tenant_a
.
Ustvarite vlogo napovedi
To vlogo IAM prevzame napoved na najemnika. Uporabite naslednji pravilnik, da omogočite Forecast interakcijo z Amazon S3 in AWS KMS v računu stranke. Vloga je označena z oznako najemnik. Oglejte si na primer naslednjo kodo:
Ustvarite politike
V tem naslednjem koraku ustvarimo politike za našo vlogo napovedi. Za to objavo smo jih za večjo berljivost razdelili na dva pravilnika, vendar jih lahko ustvarite glede na svoje potrebe.
Politika 1: Napoved dostopa samo za branje
Naslednji pravilnik daje privilegije za opisovanje, seznam in poizvedovanje po virih napovedi. Ta pravilnik omejuje Forecast na dostop samo za branje. Pogoj za preverjanje veljavnosti oznake najemnika v naslednji kodi zagotavlja, da se vrednost oznake najemnika ujema z oznako najemnika glavnega. Glejte na krepko označena koda za specifike.
Politika 2: Politika dostopa Amazon S3 in AWS KMS
Naslednji pravilnik daje privilegije AWS KMS in dostop do predpone najemnika S3. Pogoj za preverjanje veljavnosti oznake najemnika v naslednji kodi zagotavlja, da se vrednost oznake najemnika ujema z oznako najemnika glavnega. Glejte na krepko označena koda za specifike.
Ustvarite poseben ključ za najemnika
Zdaj ustvarimo ključ, specifičen za najemnika, v AWS KMS na najemnika in ga označimo z vrednostjo oznake najemnika. Druga možnost je, da lahko najemnik prinese svoj ključ v AWS KMS. Podajamo prejšnje vloge (Forecast_TenantA_Role
or Forecast_TenantB_Role
) dostop do ključa, specifičnega za najemnika.
Naslednji posnetek zaslona na primer prikazuje par ključ-vrednost tenant
in tenant_a
.
Naslednji posnetek zaslona prikazuje vloge IAM, ki lahko uporabljajo ta ključ.
Ustvari vlogo aplikacije
Drugo vlogo, ki jo ustvarimo, prevzame aplikacija SaaS na najemnika. Uporabite naslednji pravilnik, da aplikaciji omogočite interakcijo z Forecast, Amazon S3 in AWS KMS. Vloga je označena z oznako najemnik. Oglejte si naslednjo kodo:
Ustvarite politike
Zdaj ustvarjamo politike za vlogo aplikacije. Za to objavo smo jih za večjo berljivost razdelili na dva pravilnika, vendar jih lahko ustvarite glede na svoje potrebe.
Politika 1: Dostop do napovedi
Naslednji pravilnik daje privilegije za ustvarjanje, posodabljanje in brisanje virov napovedi. Pravilnik uveljavlja zahtevo po oznaki med ustvarjanjem. Poleg tega omejuje list
, describe
in delete
zadevnemu najemniku. Ta pravilnik ima IAM PassRole
da omogočite Forecastu, da prevzame vlogo.
O tenant
pogoj za preverjanje veljavnosti oznake v naslednji kodi zagotavlja, da se vrednost oznake najemnika ujema z najemnikom. Glejte na krepko označena koda za specifike.
Politika 2: Amazon S3, AWS KMS, Amazon CloudWatch in dostop do skupine virov
Naslednji pravilnik daje privilegije za dostop do virov Amazon S3 in AWS KMS ter tudi amazoncloudwatch. Omejuje dostop do predpone S3, specifične za najemnika, in CMK, specifičnega za najemnika. Pogoj za preverjanje najemnika je izpolnjen krepko označena koda.
Ustvarite skupino virov
Skupina virov omogoča, da najemnik poizveduje po vseh označenih virih. Naslednji primer kode uporablja Vmesnik ukazne vrstice AWS (AWS CLI), da ustvarite skupino virov TenantA
:
Napoved toka aplikacije
Naslednji diagram prikazuje tok naše aplikacije Forecast. Aplikacijska storitev prevzame vlogo IAM za najemnika in kot del svojega poslovnega toka prikliče Forecast API.
Ustvarite napovednik za TenantB
Ustvarjeni viri morajo biti označeni z oznako najemnika. Naslednja koda uporablja API Python (Boto3) za ustvarjanje napovednika za TenantB (glejte krepko označena koda za podrobnosti):
Ustvarite napoved na napovedniku za TenantB
Naslednja koda uporablja API Python (Boto3) za ustvarjanje napovedi za napovedovalec, ki ste ga pravkar ustvarili:
Potrdite dostop do virov napovedi
V tem razdelku potrjujemo, da lahko samo zadevni najemnik dostopa do virov napovedi. Dostop, spreminjanje ali brisanje virov napovedi, ki pripadajo drugemu najemniku, povzroči napako. Naslednja koda uporablja API Python (Boto3) za prikaz poskusa TenantA izbrisati vir napovedi TenantB:
Navedite in spremljajte napovednike
Naslednji primer kode uporablja API Python (Boto3) za poizvedovanje po napovednikih napovedi za TenantA z uporabo skupin virov:
Kot Dobro zasnovan okvir AWS pojasnjuje, je pomembno spremljati kvote storitev (ki se imenujejo tudi omejitve storitve). Napoved ima omejitve po računih; za več informacij glejte Smernice in kvote.
Naslednja koda je primer zapolnitve metrike CloudWatch s skupnim številom napovedovalcev:
Drugi premisleki
Omejitve virov in omejevanje mora upravljati aplikacija med najemniki. Če se ne morete prilagoditi Omejitve napovedi, razmislite o konfiguraciji z več računi.
API-je Forecast List ali odziv skupine virov je treba filtrirati glede na aplikacijo glede na tenant
vrednost oznake.
zaključek
V tej objavi smo pokazali, kako izolirati dostop do napovedi s tehniko ABAC v aplikaciji SaaS z več najemniki. Pokazali smo, kako najemniku omejiti dostop do napovedi z uporabo oznake najemnika. Politike lahko dodatno prilagodite tako, da uporabite več oznak, ali uporabite to strategijo za druge storitve AWS.
Za več informacij o uporabi ABAC kot avtorizacijske strategije glejte Kaj je ABAC za AWS?
O avtorjih
Gunjan Garg je višji inženir za razvoj programske opreme v ekipi AWS Vertical AI. V svoji trenutni vlogi pri Amazon Forecast se osredotoča na inženirske probleme in uživa v gradnji razširljivih sistemov, ki končnim uporabnikom zagotavljajo največjo vrednost. V prostem času rada igra Sudoku in Minolovca.
Matias Battaglia je tehnični vodja računa pri Amazon Web Services. V svoji trenutni vlogi uživa v pomoči strankam na vseh stopnjah njihovega potovanja v oblak. V prostem času uživa v gradnji AI/ML projektov.
Rakesh Ramadas je arhitekt rešitev ISV pri Amazon Web Services. Njegova glavna področja so AI/ML in Big Data.
- dostop
- Račun
- Ukrep
- Dodatne
- AI
- Amazon
- Amazonska napoved
- Amazon Web Services
- API
- API-ji
- uporaba
- aplikacije
- Arhitektura
- pooblastilo
- AWS
- zaračunavanje
- izgradnjo
- Building
- poslovni
- Cloud
- Koda
- skladnost
- Trenutna
- Stranke, ki so
- datum
- dostop do podatkov
- Dešifriraj
- dostava
- Razvoj
- inženir
- Inženiring
- okolje
- Pretok
- Osredotočite
- brezplačno
- GitHub
- skupina
- Kako
- Kako
- HTTPS
- IAM
- identiteta
- vpliv
- Podatki
- IT
- Ključne
- tipke
- Kubernetes
- učenje
- vrstica
- Seznam
- strojno učenje
- upravljanje
- ML
- Model
- spremljanje
- Na vkrcanje
- Možnost
- Ostalo
- politike
- politika
- projekti
- Python
- Zahteve
- vir
- viri
- Odgovor
- REST
- tek
- SaaS
- Serija
- Storitve
- nastavite
- nastavitev
- deli
- Enostavno
- Software
- Razvoj programske opreme
- rešitve
- po delih
- začel
- Izjava
- shranjevanje
- Strategija
- sistemi
- tehnični
- Tehnologija
- čas
- tranzit
- Nadgradnja
- Uporabniki
- vrednost
- web
- spletne storitve
- v