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à.
Utilizzo del controllo degli accessi basato su attributi (ABAC) per l’addestramento multi-tenancy
In un ambiente multi-tenant, è fondamentale garantire che i dati di ciascun tenant siano isolati e accessibili solo alle entità autorizzate. SageMaker L'intelligenza artificiale supporta l'uso del controllo degli accessi basato sugli attributi (ABAC) per ottenere questo isolamento per i lavori di formazione. Invece di creare più ruoli IAM per ogni tenant, puoi utilizzare lo stesso ruolo IAM per tutti i tenant configurando una configurazione di concatenamento delle sessioni che utilizza i tag di sessione AWS Security Token Service (AWS STS) per richiedere credenziali temporanee con privilegi limitati per il tuo processo di formazione per accedere a tenant specifici. Per ulteriori informazioni sui tag di sessione, consulta Passare i tag di sessione in AWS STS.
Quando si crea un processo di formazione, la configurazione del concatenamento delle sessioni utilizza la richiesta di credenziali di sicurezza temporanee. AWS STS Questa richiesta genera una sessione, che viene contrassegnata con tag. Ogni processo SageMaker di formazione può accedere solo a un tenant specifico utilizzando un singolo ruolo condiviso da tutti i lavori di formazione. L’implementazione di ABAC con il concatenamento delle sessioni assicura che ogni job di addestramento abbia accesso solo al tenant specificato dal tag di sessione, isolando e proteggendo efficacemente tutti i tenant. La sezione seguente illustra i passaggi per configurare e utilizzare ABAC per l'isolamento dei lavori di formazione multi-tenant utilizzando Python SageMaker SDK.
Prerequisiti
Per iniziare a utilizzare ABAC per l’isolamento dei job di addestramento multi-tenant, è necessario disporre di quanto segue:
-
Tenant con denominazione coerente in tutte le posizioni. Ad esempio, se un dato di input è un URI Amazon S3 per un tenant,
s3://your-input-s3-bucket/la FSx directory Amazon per lo stesso tenant dovrebbe essereexample-tenant/fsx-train/train/e i dati di output dovrebbe essere l'URI Amazon S3.example-tenants3://your-output-s3-bucket/example-tenant -
Un ruolo nell' SageMaker IA nella creazione di posti di lavoro. Puoi creare un ruolo per la creazione di posti di lavoro nell' SageMaker intelligenza artificiale utilizzando Amazon SageMaker AI Role Manager. Per informazioni, consulta Utilizzo del gestore dei ruoli.
-
Un ruolo di esecuzione dell' SageMaker IA che
sts:AssumeRoleinclude ests:TagSessionautorizzazioni nella sua politica di fiducia. Per ulteriori informazioni sui ruoli di esecuzione dell' SageMaker IA, consulta Ruoli SageMaker AI.Il ruolo di esecuzione dovrebbe inoltre avere una policy che consenta ai tenant di qualsiasi architettura multi-tenancy basata sugli attributi di leggere il prefisso allegato a un tag principale. Di seguito è riportato un esempio di policy che limita il ruolo di esecuzione dell' SageMaker IA all'accesso al valore associato alla
tenant-idchiave. Per ulteriori informazioni, consulta Regole per l’etichettatura in IAM e STS.
Creazione di un job di addestramento con il concatenamento dei tag di sessione abilitato
La procedura seguente mostra come creare un processo di formazione con concatenamento di tag di sessione utilizzando SageMaker Python SDK per la formazione multi-tenancy abilitata per ABAC.
Nota
Oltre allo storage di dati multi-tenancy, puoi anche utilizzare il flusso di lavoro ABAC per passare i tag di sessione al tuo ruolo di esecuzione per Amazon VPC e qualsiasi altro servizio che AWS Key Management Service consenti all'IA di chiamare SageMaker
Abilitazione del concatenamento dei tag di sessione per ABAC
-
Import
boto3e SageMaker Python SDK. L'isolamento dei job di formazione abilitato per ABAC è disponibile solo nella versione 2.217o successiva di AI SageMaker Python SDK. import boto3 import sagemaker from sagemaker.estimator import Estimator from sagemaker.inputs import TrainingInput -
Configura un client SageMaker AI per utilizzare AWS STS i tag di sessione etichettati dal tenant. È possibile modificare il valore del tag per specificare un tenant diverso.
# Start an AWS STS client sts_client = boto3.client('sts') # Define your tenants using tags # The session tag key must match the principal tag key in your execution role policy tags = [] tag = {} tag['Key'] ="tenant-id"tag['Value'] ="example-tenant"tags.append(tag) # Have AWS STS assume your ABAC-enabled job creation role response = sts_client.assume_role( RoleArn="arn:aws:iam::<account-id>:role/<your-training-job-creation-role>", RoleSessionName="SessionName", Tags=tags) credentials = response['Credentials'] # Create a client with your job creation role (which was assumed with tags) sagemaker_client = boto3.client( 'sagemaker', aws_access_key_id=credentials['AccessKeyId'], aws_secret_access_key=credentials['SecretAccessKey'], aws_session_token=credentials['SessionToken'] ) sagemaker_session = sagemaker.Session(sagemaker_client=sagemaker_client)Quando al ruolo di creazione del job si aggiungono i tag
"tenant-id=example-tenant", questi vengono estratti dal ruolo di esecuzione in modo da utilizzare la seguente policy: -
Definisci uno stimatore per creare un lavoro di formazione utilizzando l'SDK SageMaker Python. Impostato
enable_session_tag_chainingper consentireTrueal ruolo di responsabile dell'addestramento basato sull' SageMaker intelligenza artificiale di recuperare i tag dal ruolo di creazione di posti di lavoro.# Specify your training input trainingInput = TrainingInput( s3_data='s3://<your-input-bucket>/example-tenant', distribution='ShardedByS3Key', s3_data_type='S3Prefix' ) # Specify your training job execution role execution_role_arn ="arn:aws:iam::<account-id>:role/<your-training-job-execution-role>"# Define your esimator with session tag chaining enabled estimator = Estimator( image_uri="<your-training-image-uri>", role=execution_role_arn, instance_count=1, instance_type='ml.m4.xlarge', volume_size=20, max_run=3600, sagemaker_session=sagemaker_session, output_path="s3://<your-output-bucket>/example-tenant", enable_session_tag_chaining=True) estimator.fit(inputs=trainingInput, job_name="abac-demo")
SageMaker L'IA può solo leggere i tag forniti nella richiesta di lavoro di formazione e non aggiunge alcun tag alle risorse per tuo conto.
ABAC for SageMaker training è compatibile con le piscine calde gestite dall' SageMaker IA. Per utilizzare ABAC con i warm pool, i job di addestramento corrispondenti devono avere tag di sessione identici. Per ulteriori informazioni, consulta Processi di addestramento corrispondenti.