Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Appendice
Confronto tra più locazioni
Tabella 2 — Confronto tra più locazioni
Multidominio |
Account multiplo |
Controllo degli accessi basato sugli attributi (ABAC) all'interno di un singolo dominio |
---|---|---|
L'isolamento delle risorse si ottiene utilizzando i tag. SageMaker Studio etichetta automaticamente tutte le risorse con l'ARN del dominio e l'ARN del profilo utente/spazio. |
Ogni inquilino ha il proprio account, quindi c'è un isolamento assoluto delle risorse. |
L'isolamento delle risorse si ottiene utilizzando i tag. Gli utenti devono gestire l'etichettatura delle risorse create per ABAC. |
Le API degli elenchi non possono essere limitate dai tag. Il filtraggio delle risorse tramite interfaccia utente viene eseguito sugli spazi condivisi, tuttavia, le chiamate API List effettuate tramite AWS CLI o l'SDK Boto3 elencheranno le risorse in tutta la regione. |
È anche possibile l'isolamento delle API di List, poiché gli inquilini si trovano nei loro account dedicati. |
Le API degli elenchi non possono essere limitate dai tag. Elenca le chiamate API effettuate tramite AWS CLI o l'SDK Boto3 elencherà le risorse in tutta la regione. |
SageMaker I costi di elaborazione e archiviazione di Studio per tenant possono essere facilmente monitorati utilizzando Domain ARN come tag di allocazione dei costi. |
SageMaker I costi di calcolo e archiviazione di Studio per tenant sono facili da monitorare con un account dedicato. |
SageMaker I costi di elaborazione di Studio per tenant devono essere calcolati utilizzando tag personalizzati. SageMaker I costi di storage di Studio non possono essere monitorati per dominio poiché tutti i tenant condividono lo stesso volume EFS. |
Le quote di servizio sono impostate a livello di account, quindi un singolo tenant potrebbe comunque utilizzare tutte le risorse. |
Le quote di servizio possono essere impostate a livello di account per ogni tenant. |
Le quote di servizio sono impostate a livello di account, in modo che un singolo tenant possa comunque utilizzare tutte le risorse. |
La scalabilità a più tenant può essere ottenuta tramite Infrastructure as code (IaC) o Service Catalog. |
La scalabilità a più tenant coinvolge Organizations e la vendita di più account. |
La scalabilità richiede un ruolo specifico del tenant per ogni nuovo tenant e i profili utente devono essere etichettati manualmente con i nomi dei tenant. |
La collaborazione tra gli utenti all'interno di un tenant è possibile tramite spazi condivisi. |
La collaborazione tra utenti all'interno di un tenant è possibile tramite spazi condivisi. |
Tutti gli inquilini avranno accesso allo stesso spazio condiviso per la collaborazione. |
SageMaker Backup e ripristino del dominio Studio
In caso di eliminazione accidentale di EFS o quando è necessario ricreare un dominio a causa di modifiche alla rete o all'autenticazione, segui queste istruzioni.
Opzione 1: eseguire il backup da EFS esistente utilizzando EC2
SageMaker Backup del dominio Studio
-
Elenca i profili utente e gli spazi in SageMaker Studio (CLI, SDK
). -
Mappa i profili/gli spazi utente agli UID su EFS.
-
Per ogni utente nell'elenco di utenti/spazi, descrivi il profilo/spazio utente (CLI, SDK).
-
Mappa il profilo/spazio utente su.
HomeEfsFileSystemUid
-
Mappa il profilo utente per verificare
UserSettings['ExecutionRole']
se gli utenti hanno ruoli di esecuzione distinti. -
Identifica il ruolo di esecuzione Space predefinito.
-
-
Crea un nuovo dominio e specifica il ruolo di esecuzione Space predefinito.
-
Crea profili e spazi utente.
-
Crea una mappatura per i nuovi EFS e UID.
-
Facoltativamente, elimina tutte le app, i profili utente, gli spazi, quindi elimina il dominio.
Backup EFS
Per eseguire il backup di EFS, utilizzare le seguenti istruzioni:
-
Avvia l'istanza EC2 e collega i gruppi di sicurezza in entrata/uscita del vecchio dominio SageMaker Studio alla nuova istanza EC2 (consenti il traffico NFS su TCP sulla porta 2049). Consulta Connect SageMaker Studio Notebooks in un VPC a risorse esterne.
-
Monta il volume SageMaker Studio EFS sulla nuova istanza EC2. Fare riferimento a Montaggio dei file system EFS.
-
Copia i file nell'archivio locale EBS:
>sudo cp -rp /efs /studio-backup:
-
Collega i nuovi gruppi di sicurezza del dominio all'istanza EC2.
-
Monta il nuovo volume EFS sull'istanza EC2.
-
Copia i file nel nuovo volume EFS.
-
Per ogni utente nella raccolta dell'utente:
-
Crea la directory:
mkdir new_uid
. -
Copia i file dalla vecchia directory UID alla nuova directory UID.
-
Cambia la proprietà di tutti i file:
chown <new_UID>
per tutti i file.
-
-
Opzione 2: backup da EFS esistente utilizzando S3 e la configurazione del ciclo di vita
-
Fai riferimento a Migrare il tuo lavoro su un'istanza di SageMaker notebook Amazon con Amazon Linux 2
. -
Crea un bucket S3 per il backup (ad esempio.
>studio-backup
-
Elenca tutti i profili utente con ruoli di esecuzione.
-
Nel dominio SageMaker Studio corrente, imposta uno script LCC predefinito a livello di dominio.
-
Nella scheda LCC, copia tutto nel
/home/sagemaker-user
prefisso del profilo utente in S3 (ad esempio,).s3://studio-backup/studio-user1
-
-
Riavvia tutte le app predefinite di Jupyter Server (per eseguire la scheda LCC).
-
Elimina tutte le app, i profili utente e i domini.
-
Crea un nuovo dominio SageMaker Studio.
-
Crea nuovi profili utente dall'elenco dei profili utente e dei ruoli di esecuzione.
-
Configura un LCC a livello di dominio:
-
Nella scheda LCC, copia tutto ciò che è presente nel prefisso del profilo utente in S3 in
/home/sagemaker-user
-
-
Crea app Jupyter Server predefinite per tutti gli utenti con la configurazione LCC (CLI, SDK).
SageMaker Accesso allo studio tramite asserzione SAML
Configurazione della soluzione:
-
Crea un'applicazione SAML nel tuo IdP esterno.
-
Configura l'IdP esterno come provider di identità in IAM.
-
Crea una funzione
SAMLValidator
Lambda a cui l'IdP può accedere (tramite un URL di funzione o un API Gateway). -
Crea una funzione
GeneratePresignedUrl
Lambda e un API Gateway per accedere alla funzione. -
Crea un ruolo IAM che gli utenti possano assumere per richiamare l'API Gateway. Questo ruolo deve essere passato nell'asserzione SAML come attributo nel seguente formato:
-
Nome dell'attributo: https://aws.amazon.com/SAML/Attributes/Role
-
Valore dell'attributo:
<IdentityProviderARN>
,<RoleARN>
-
-
Aggiorna l'endpoint SAML Assertion Consumer Service (ACS) all'URL di richiamo.
SAMLValidator
Codice di esempio di validatore SAML:
import requests import os import boto3 from urllib.parse import urlparse, parse_qs import base64 import requests from aws_requests_auth.aws_auth import AWSRequestsAuth import json # Config for calling AssumeRoleWithSAML idp_arn = "arn:aws:iam::0123456789:saml-provider/MyIdentityProvider" api_gw_role_arn = 'arn:aws:iam:: 0123456789:role/APIGWAccessRole' studio_api_url = "abcdef.execute-api.us-east-1.amazonaws.com" studio_api_gw_path = "https://" + studio_api_url + "/Prod " # Every customer will need to get SAML Response from the POST call def get_saml_response(event): saml_response_uri = base64.b64decode(event['body']).decode('ascii') request_body = parse_qs(saml_response_uri) print(f"b64 saml response: {request_body['SAMLResponse'][0]}") return request_body['SAMLResponse'][0] def lambda_handler(event, context): sts = boto3.client('sts') # get temporary credentials response = sts.assume_role_with_saml( RoleArn=api_gw_role_arn, PrincipalArn=durga_idp_arn, SAMLAssertion=get_saml_response(event) ) auth = AWSRequestsAuth(aws_access_key=response['Credentials']['AccessKeyId'], aws_secret_access_key=response['Credentials']['SecretAccessKey'], aws_host=studio_api_url, aws_region='us-west-2', aws_service='execute-api', aws_token=response['Credentials']['SessionToken']) presigned_response = requests.post( studio_api_gw_path, data=saml_response_data, auth=auth) return presigned_response