La sicurezza del cloud in AWS è la massima priorità. Amazon Sage Maker Studio offre il vari meccanismi per proteggere i dati e il codice utilizzando l'integrazione con i servizi di sicurezza AWS come Gestione dell'identità e dell'accesso di AWS (SONO), Servizio di gestione delle chiavi AWS (AWS KMS) o isolamento della rete con Cloud privato virtuale di Amazon (VPC Amazon).
I clienti in settori altamente regolamentati, come i servizi finanziari, possono farlo configurare Studio solo in VPC mode per abilitare l'isolamento della rete e disabilitare l'accesso a Internet dai notebook Studio. Puoi utilizzare l'integrazione IAM con Studio per controllare quali utenti hanno accesso a risorse come i notebook di Studio, l'IDE di Studio o Amazon Sage Maker lavori di formazione.
Un caso d'uso popolare è to limitare l'accesso allo Studio IDE solo agli utenti all'interno di un intervallo CIDR di rete specificato o di un VPC designato. Puoi raggiungere questo obiettivo implementando Policy SageMaker basate sull'identità IAM e collegando tali policy agli utenti o ai gruppi IAM che richiedono tali autorizzazioni. Tuttavia, il dominio SageMaker deve essere configurato con Modalità di autenticazione IAM, perché le policy basate sull'identità IAM non sono supportate in Accesso singolo AWS (SSSO) modalità di autenticazione.
Molti clienti utilizzano AWS SSO per abilitare il controllo centralizzato dell'identità della forza lavoro e fornire un'esperienza di accesso utente coerente. Questo post mostra come implementare questo caso d'uso mantenendo le funzionalità AWS SSO per accedere a Studio.
Panoramica della soluzione
Quando configuri un dominio SageMaker in modalità solo VPC e specifichi le sottoreti e i gruppi di sicurezza, SageMaker crea interfacce di rete elastiche (ENI) associati ai gruppi di sicurezza nelle sottoreti specificate. Gli ENI consentono ai tuoi container di addestramento di connettersi alle risorse nel tuo VPC.
In questa modalità, l'accesso diretto a Internet dai notebook è completamente disabilitato e tutto il traffico viene instradato attraverso un ENI nel tuo VPC privato. Ciò include anche il traffico dai widget e dalle interfacce dell'interfaccia utente di Studio, come la gestione degli esperimenti, il pilota automatico e il monitoraggio del modello, alle rispettive API SageMaker di back-end. AWS consiglia di utilizzare la modalità solo VPC per esercitare un controllo granulare sull'accesso alla rete di Studio.
La prima sfida è che, anche se Studio viene implementato senza connettività Internet, è comunque possibile accedere all'IDE di Studio da qualsiasi luogo, presupponendo l'accesso al Console di gestione AWS e Studio viene concesso a un'entità IAM. Questa situazione non è accettabile se desideri isolare completamente Studio da una rete pubblica e contenere tutte le comunicazioni all'interno di un VPC privato strettamente controllato.
Per affrontare questa sfida e disabilitare qualsiasi accesso all'IDE di Studio tranne che da un VPC designato o da un intervallo CIDR, puoi utilizzare il CreatePresignedDomainUrl API SageMaker. Il ruolo IAM o l'utente utilizzato per chiamare questa API definisce le autorizzazioni per accedere a Studio. Ora puoi utilizzare le policy basate sull'identità IAM per implementare la configurazione di accesso desiderata. Ad esempio, per abilitare l'accesso solo da un VPC designato, aggiungi la seguente condizione alla policy IAM, associata a un'entità IAM, utilizzata per generare un URL di dominio prefirmato:
Per abilitare l'accesso solo da uno o più endpoint VPC designati, specifica la seguente condizione:
Utilizza la seguente condizione per limitare l'accesso da un intervallo CIDR designato:
La seconda sfida è che il controllo degli accessi basato su IAM funziona solo quando il dominio SageMaker è configurato in modalità di autenticazione IAM; non puoi utilizzarlo quando il dominio SageMaker viene distribuito in modalità AWS SSO. La sezione successiva mostra come affrontare queste sfide e implementare il controllo degli accessi basato su IAM con l'accesso AWS SSO a Studio.
Panoramica sull'architettura
Studio è pubblicato come applicazione SAML, assegnata a un profilo utente SageMaker Studio specifico. Gli utenti possono accedere comodamente a Studio direttamente dal portale AWS SSO, come mostrato nello screenshot seguente.
La soluzione si integra con a applicazione SAML 2.0 personalizzata come meccanismo per attivare l'autenticazione dell'utente per Studio. Richiede che l'applicazione SAML personalizzata sia configurata con il file Gateway API Amazon URL dell'endpoint come Assertion Consumer Service (ACS) e necessita di attributi di mappatura contenenti l'ID utente AWS SSO e l'ID dominio SageMaker.
L'endpoint API Gateway chiama un AWS Lambda funzione che analizza la risposta SAML per estrarre l'ID dominio e l'ID utente e utilizzarli per generare un URL prefirmato di Studio. La funzione Lambda esegue infine un reindirizzamento tramite una risposta HTTP 302 per l'accesso dell'utente in Studio.
Una policy IAM controlla l'ambiente di rete da cui gli utenti di Studio possono accedere, che include le condizioni di limitazione come descritto nella sezione precedente. Questa policy IAM è collegata alla funzione Lambda. La policy IAM contiene un'autorizzazione per chiamare il sagemaker:CreatePresignedDomainURL
API solo per un profilo utente specifico:
Il diagramma seguente mostra l'architettura della soluzione.
La soluzione distribuisce un dominio SageMaker nel tuo VPC privato e Endpoint VPC per accedere a Studio, al runtime di SageMaker e all'API di SageMaker tramite una connessione privata senza bisogno di un gateway Internet. Gli endpoint VPC sono configurati con DNS privato abilitato (PrivateDnsEnabled=True
) associare a zona ospitata privata con il tuo VPC. Ciò consente a Studio di accedere all'API SageMaker utilizzando il nome DNS pubblico predefinito api.sagemaker.<Region>.amazonaws.com
risolto nell'indirizzo IP privato dell'endpoint anziché utilizzare l'URL dell'endpoint VPC.
Devi aggiungere endpoint VPC al tuo VPC se desideri accedere a qualsiasi altro servizio AWS come Servizio di archiviazione semplice Amazon (Amazon S3), Registro dei contenitori Amazon Elastic (Raccolta Amazon), Servizio token di sicurezza AWS (AWS STS), AWS CloudFormazione, o AWS CodeCommit.
Puoi controllare completamente le autorizzazioni utilizzate per generare l'URL prefirmato e qualsiasi altra chiamata API con policy IAM collegate al ruolo di esecuzione della funzione Lambda o controllare l'accesso a qualsiasi servizio AWS utilizzato tramite Criteri dell'endpoint VPC. Per esempi di utilizzo delle policy IAM per controllare l'accesso a Studio e all'API SageMaker, fare riferimento a Controlla l'accesso all'API SageMaker utilizzando criteri basati sull'identità.
Sebbene la soluzione richieda la distribuzione del dominio Studio in modalità IAM, consente l'utilizzo di AWS SSO come meccanismo per consentire agli utenti finali di accedere a Studio.
Le seguenti sottosezioni contengono descrizioni dettagliate dei principali componenti della soluzione.
API Gateway
L'endpoint API Gateway funge da destinazione per l'URL ACS dell'applicazione configurato nell'applicazione SAML 2.0 personalizzata. L'endpoint è privato e dispone di una risorsa chiamata /saml
e un metodo POST con richiesta di integrazione configurata come proxy Lambda. La soluzione utilizza un endpoint VPC con un file configurato com.amazonaws.<region>.execute-api
Nome DNS per chiamare questo endpoint API dall'interno del VPC.
SSO dell'AWS
Un'applicazione SAML 2.0 personalizzata è configurata con l'URL dell'endpoint di API Gateway https:/{ restapi-id}.execute-api.amazonaws.com/saml
come URL ACS dell'applicazione e utilizza le mappature degli attributi con i seguenti requisiti:
- Identificativo utente:
- Attributo utente nell'applicazione – nome utente
- Mappa l'attributo utente in AWS SSO -
${user:AD_GUID}
- Identificatore ID dominio SageMaker:
- Attributo utente nell'applicazione -
domain-id
- Mappa l'attributo utente in AWS SSO – ID dominio per l'istanza di Studio
- Attributo utente nell'applicazione -
L'applicazione implementa il controllo degli accessi per un utente AWS SSO eseguendo il provisioning di un profilo utente di Studio con il nome uguale all'ID utente AWS SSO.
Funzione Lambda
La soluzione configura una funzione Lambda come punto di chiamata per il gateway API /saml
risorsa. La funzione analizza il file SAMLResponse
inviato da AWS SSO, estrae il file domain-id
così come il nome utente, e chiama il createPresignedDomainUrl
SageMaker API per recuperare l'URL e il token di Studio e reindirizzare l'utente per accedere utilizzando una risposta HTTP 302. La funzione Lambda ha una policy IAM specifica collegata al suo ruolo di esecuzione che consente il sagemaker:createPresignedDomainUrl
azione solo quando viene richiesta da un intervallo CIDR di rete specifico utilizzando il VpcSourceIp
condizione.
La funzione Lambda non ha alcuna logica per convalidare la risposta SAML, ad esempio per controllare una firma. Tuttavia, poiché l'endpoint API Gateway che funge da ACS è solo privato o interno, non è obbligatorio per questo ambiente di prova.
Distribuisci la soluzione
I Repository GitHub fornisce il codice sorgente completo per la soluzione end-to-end.
Per distribuire la soluzione, devi disporre delle autorizzazioni di amministratore (o power user) per un account AWS e installare il file Interfaccia della riga di comando di AWS (AWS CLI) e CLI di AWS SAM e minimo Python 3.8.
La soluzione supporta la distribuzione in tre regioni AWS: eu-west-1
, eu-central-1
e us-east-1
. Assicurati di selezionare una di queste regioni per la distribuzione.
Per iniziare a testare la soluzione, è necessario completare i seguenti passaggi di distribuzione dalla soluzione File LEGGIMI di GitHub:
- Configura AWS SSO se non lo hai configurato.
- Distribuire la soluzione utilizzando l'applicazione SAM.
- Crea una nuova applicazione SAML 2.0 personalizzata.
Dopo aver completato i passaggi di distribuzione, puoi procedere con il test della soluzione.
Prova la soluzione
La soluzione simula due casi d'uso per dimostrare l'utilizzo di AWS SSO e delle policy basate sull'identità di SageMaker:
- Caso d'uso positivo – Un utente accede a Studio dall'interno di un intervallo CIDR designato tramite un endpoint VPC
- Caso d'uso negativo – Un utente accede a Studio da un indirizzo IP pubblico
Per testare questi casi d'uso, la soluzione ne ha creati tre Cloud di calcolo elastico di Amazon (Amazon EC2) istanze:
- Ospite privato – Un'istanza Windows EC2 in una sottorete privata che è in grado di accedere a Studio (l'ambiente protetto locale)
- Ospite del bastione – Un'istanza EC2 Linux nella sottorete pubblica utilizzata per stabilire un tunnel SSH nell'host privato sulla rete privata
- Ospite pubblico – Un'istanza EC2 Windows in una sottorete pubblica per dimostrare che l'utente non può accedere a Studio da un indirizzo IP non autorizzato
Testare l'accesso a Studio da una rete autorizzata
Segui questi passaggi per eseguire il test:
- Per accedere all'istanza EC2 Windows sulla rete privata, esegui il comando fornito come valore della chiave di output SAM
TunnelCommand
. Assicurarsi che la chiave privata della coppia di chiavi specificata nel parametro si trovi nella directory da cui viene eseguito il comando del tunnel SSH. Il comando crea un file Tunnel SSH dal computer locale in poilocalhost:3389
all'istanza EC2 Windows sulla rete privata. Vedere il seguente codice di esempio: - Sul tuo desktop o notebook locale, apri una nuova connessione RDP (ad esempio utilizzando Microsoft Remote Desktop) utilizzando
localhost
come host remoto di destinazione. Questa connessione viene incanalata tramite il bastion host all'istanza Windows EC2 privata. Usa il nome utenteAdministrator
e la password dall'output dello stackSageMakerWindowsPassword
. - Apri il browser Web Firefox dal desktop remoto.
- Naviga e accedi al portale AWS SSO utilizzando le credenziali associate al nome utente che hai specificato come file
ssoUserName
parametro. - Scegliere il Demo sicura di SageMaker Applicazione AWS SSO dal portale AWS SSO.
Verrai reindirizzato all'IDE di Studio in una nuova finestra del browser.
Verifica l'accesso a Studio da una rete non autorizzata
Ora segui questi passaggi per simulare l'accesso da una rete non autorizzata:
- Aprire una nuova connessione RDP sull'IP fornito nel file
SageMakerWindowsPublicHost
Uscita SAML. - Apri il browser Web Firefox dal desktop remoto.
- Naviga e accedi al portale AWS SSO utilizzando le credenziali associate al nome utente specificato come
ssoUserName
parametro. - Scegliere il Demo sicura di SageMaker Applicazione AWS SSO dal portale AWS SSO.
Questa volta ricevi un messaggio di accesso non autorizzato.
ripulire
Per evitare addebiti, devi rimuovere tutte le risorse fornite dalla soluzione e create manualmente dal tuo account AWS. Seguire le istruzioni nella soluzione File README.
Conclusione
Abbiamo dimostrato che introducendo un livello di autenticazione middleware tra l'utente finale e Studio, possiamo controllare l'ambiente da cui l'utente può accedere a Studio e bloccare esplicitamente ogni altro ambiente non autorizzato.
Per rafforzare ulteriormente la sicurezza, puoi aggiungere una policy IAM a un ruolo utente per impedire l'accesso a Studio dalla console. Se usi Organizzazioni AWS, puoi implementare quanto segue politica di controllo del servizio per le unità organizzative o gli account che necessitano dell'accesso a Studio:
Sebbene la soluzione descritta in questo post utilizzi API Gateway e Lambda, puoi esplorare altri modi come un'istanza EC2 con un ruolo di istanza utilizzando lo stesso flusso di lavoro di convalida delle autorizzazioni descritto o anche un sistema indipendente per gestire l'autenticazione e l'autorizzazione degli utenti e generare un URL prefirmato di Studio.
Ulteriori letture
Garantire l'accesso a Studio è un argomento di ricerca attivo e ci sono altri post pertinenti su approcci simili. Fai riferimento ai seguenti post sul blog AWS Machine Learning per ulteriori informazioni su altri servizi e architetture che puoi utilizzare:
Informazioni sugli autori
Girolamo Bachelet è un architetto di soluzioni presso Amazon Web Services. Si impegna ad aiutare i clienti a ottenere il massimo da AWS per raggiungere i loro obiettivi aziendali. Jerome ha oltre 10 anni di esperienza nel lavorare con soluzioni di protezione e sicurezza dei dati. Oltre a essere nel cloud, Jerome ama viaggiare e trascorrere del tempo di qualità con la moglie e le 2 figlie nell'area di Ginevra, in Svizzera.
Evgenij Il'in è un Solutions Architect presso AWS. Ha oltre 20 anni di esperienza lavorando a tutti i livelli di sviluppo software e architettura di soluzioni e ha utilizzato linguaggi di programmazione da COBOL e Assembler a .NET, Java e Python. Sviluppa e codifica soluzioni cloud native concentrandosi su big data, analisi e ingegneria dei dati.
- '
- "
- 100
- 7
- 9
- Chi siamo
- accesso
- Il mio account
- Action
- attivo
- indirizzo
- Tutti
- Amazon
- Amazon EC2
- Amazon Sage Maker
- Amazon Web Services
- analitica
- api
- API
- Applicazioni
- architettura
- RISERVATA
- Autenticazione
- autorizzazione
- autopilota
- AWS
- essendo
- Big Data
- Blog
- del browser
- affari
- chiamata
- casi
- Challenge
- sfide
- oneri
- Cloud
- Nativo nube
- codice
- Comunicazione
- Calcolare
- Configurazione
- veloce
- Connettività
- consolle
- Consumer
- Contenitore
- Tecnologie Container
- Credenziali
- Clienti
- dati
- protezione dati
- la sicurezza dei dati
- Mercato
- dns
- non
- effetto
- endpoint
- Ingegneria
- Ambiente
- esempio
- esecuzione
- Esercitare
- esperienza
- esperimento
- estratti
- Infine
- finanziario
- servizi finanziari
- Firefox
- Nome
- Focus
- seguire
- pieno
- function
- generare
- gif
- Come
- Tutorial
- HTTPS
- IAM
- Identità
- realizzare
- Implementazione
- industrie
- integrazione
- Internet
- IP
- Indirizzo IP
- da solo
- IT
- Java
- Offerte di lavoro
- conservazione
- Le
- Le Lingue
- IMPARARE
- apprendimento
- linea
- linux
- locale
- machine learning
- gestione
- Microsoft
- modello
- rete
- Rete
- Accesso alla rete
- computer portatili
- Offerte
- aprire
- Altro
- Password
- Termini e Condizioni
- politica
- Popolare
- Portale
- Post
- energia
- Direttore
- un bagno
- chiave privata
- Profilo
- Programmazione
- linguaggi di programmazione
- prova
- prova del concetto
- protegge
- protezione
- fornire
- fornisce
- delega
- la percezione
- Python
- qualità
- gamma
- reindirizzare
- Requisiti
- riparazioni
- risorsa
- Risorse
- risposta
- Correre
- sagemaker
- problemi di
- Servizi
- servizio
- set
- simile
- Un'espansione
- Software
- lo sviluppo del software
- Soluzioni
- inizia a
- dichiarazione
- conservazione
- supportato
- supporti
- Svizzera
- sistema
- Target
- test
- Testing
- Attraverso
- tempo
- token
- traffico
- Training
- ui
- utenti
- APPREZZIAMO
- virtuale
- sito web
- browser web
- servizi web
- finestre
- entro
- senza
- flusso di lavoro
- Forza lavoro
- lavori
- anni