View a markdown version of this page

Come utilizzare i ruoli di esecuzione SageMaker AI - Amazon SageMaker AI

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à.

Come utilizzare i ruoli di esecuzione SageMaker AI

Amazon SageMaker AI esegue operazioni per tuo conto utilizzando altri AWS servizi. Devi concedere all' SageMaker IA le autorizzazioni per utilizzare questi servizi e le risorse su cui agiscono. Concedi all' SageMaker IA queste autorizzazioni utilizzando un ruolo di esecuzione AWS Identity and Access Management (IAM). Per ulteriori informazioni sui ruoli IAM, consulta Ruoli IAM.

Per creare e utilizzare un ruolo di esecuzione, puoi utilizzare le seguenti procedure.

Crea ruolo di esecuzione

Utilizza la seguente procedura per creare un ruolo di esecuzione con la policy gestita IAM, AmazonSageMakerFullAccess, collegata. Se il tuo caso d'uso richiede autorizzazioni più granulari, utilizza le altre sezioni di questa pagina per creare un ruolo di esecuzione che soddisfi le tue esigenze aziendali. Puoi creare un ruolo di esecuzione utilizzando la console SageMaker AI o il AWS CLI.

Importante

La policy gestita IAM, AmazonSageMakerFullAccess, utilizzata nella seguente procedura, concede al ruolo di esecuzione solo l'autorizzazione a eseguire determinate azioni Amazon S3 su bucket o oggetti con SageMaker, Sagemaker, sagemaker o aws-glue nel nome. Per informazioni su come aggiungere una policy aggiuntiva a un ruolo di esecuzione per concedergli l'accesso ad altri bucket e oggetti Amazon S3, consulta Aggiungi autorizzazioni Amazon S3 aggiuntive a un ruolo di esecuzione AI SageMaker.

Nota

Puoi creare un ruolo di esecuzione direttamente quando crei un dominio SageMaker AI o un'istanza del notebook.

Per creare un nuovo ruolo di esecuzione dalla console SageMaker AI

  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Selezionare Roles (Ruoli), quindi selezionare Create role (Crea ruolo).

  3. Mantieni il AWS servizio come tipo di entità attendibile, quindi utilizza la freccia verso il basso per trovare l'SageMaker IA nei casi d'uso per altri AWS servizi.

  4. Scegli SageMaker AI — Execution, quindi scegli Avanti.

  5. La policy gestita IAM, AmazonSageMakerFullAccess, viene collegata automaticamente al ruolo . Per visualizzare le autorizzazioni incluse in questa policy, scegli il segno più (+) accanto al nome della policy. Scegli Next (Successivo).

  6. Inserire un nome di ruolo e una descrizione.

  7. (Facoltativo) Aggiungi autorizzazioni aggiuntive e tag al ruolo.

  8. Scegli Crea ruolo.

  9. Nella sezione Ruoli della console IAM, trova il ruolo che hai appena creato. Se necessario, utilizza la casella di testo per cercare il ruolo utilizzando il nome del ruolo.

  10. Nella pagina Riepilogo ruolo, annota l’ARN.

Per creare un nuovo ruolo di esecuzione da AWS CLI

Prima di creare un ruolo di esecuzione utilizzando il AWS CLI, assicurati di aggiornarlo e configurarlo seguendo le istruzioni in(Facoltativo) Configura AWS CLI, quindi continua con le istruzioni inConfigurazione personalizzata utilizzando AWS CLI.

Dopo aver creato un ruolo di esecuzione, puoi associarlo a un dominio SageMaker AI, a un profilo utente o a un'istanza del notebook Jupyter.

Puoi anche passare l'ARN di un ruolo di esecuzione alla chiamata API. Ad esempio, utilizzando Amazon SageMaker Python SDK, puoi passare l'ARN del tuo ruolo di esecuzione a un. ModelTrainer Nell'esempio di codice che segue, creiamo un contenitore dell'algoritmo ModelTrainer utilizzando XGBoost e passiamo l'ARN del ruolo di esecuzione come parametro. Per l'esempio completo GitHub, vedi Customer Churn Prediction with XGBoost.

import boto3 from sagemaker.core import image_uris from sagemaker.core.helper.session_helper import Session from sagemaker.core.shapes import OutputDataConfig from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute sess = Session() region = sess.boto_region_name bucket = sess.default_bucket() prefix = "sagemaker/DEMO-xgboost-churn" container = image_uris.retrieve("xgboost", region, "1.7-1") xgb = ModelTrainer( training_image=container, role=execution-role-ARN, compute=Compute( instance_count=1, instance_type="ml.m4.xlarge", ), output_data_config=OutputDataConfig(s3_output_path="s3://{}/{}/output".format(bucket, prefix)), sagemaker_session=sess, ) ...

Aggiungi autorizzazioni Amazon S3 aggiuntive a un ruolo di esecuzione AI SageMaker

Quando utilizzi una funzionalità di SageMaker intelligenza artificiale con risorse in Amazon S3, come i dati di input, il ruolo di esecuzione specificato nella richiesta (ad esempioCreateTrainingJob) viene utilizzato per accedere a tali risorse.

Se colleghi la policy gestita IAM, AmazonSageMakerFullAccess, a un ruolo di esecuzione, tale ruolo è autorizzato a eseguire determinate azioni Amazon S3 su bucket o oggetti con SageMaker, Sagemaker, sagemaker o aws-glue nel nome. È inoltre autorizzato a eseguire le seguenti azioni su qualsiasi risorsa Amazon S3:

"s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors"

Per dare a un ruolo di esecuzione le autorizzazioni per accedere a uno o più bucket specifici in Amazon S3, è possibile collegare una policy simile al seguente ruolo. Questa policy concede a un ruolo IAM l’autorizzazione per eseguire tutte le azioni consentite da AmazonSageMakerFullAccess, ma limita l’accesso ai bucket amzn-s3-demo-bucket1 e amzn-s3-demo-bucket2. Consulta la documentazione di sicurezza per la specifica funzionalità di SageMaker intelligenza artificiale che stai utilizzando per saperne di più sulle autorizzazioni Amazon S3 richieste per quella funzionalità.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket2" ] } ] }

Acquisizione del ruolo di esecuzione

Puoi utilizzare la console SageMaker AI, Amazon SageMaker Python SDK o AWS CLI per recuperare l'ARN e il nome del ruolo di esecuzione associato a un dominio, spazio o profilo utente SageMaker AI.

Acquisizione del ruolo di esecuzione del dominio

Di seguito vengono fornite istruzioni su come trovare il ruolo di esecuzione del dominio.

Trova il ruolo di esecuzione collegato al tuo dominio
  1. Apri la console AI, SageMaker https://console.aws.amazon.com/sagemaker/

  2. Nel riquadro di navigazione a sinistra, scegli Domini in Configurazioni di amministrazione.

  3. Scegli il link che corrisponde al tuo dominio.

  4. Scegli la scheda Impostazioni del dominio.

  5. Nella sezione Impostazioni generali, l’ARN del ruolo di esecuzione è elencato in Ruolo di esecuzione.

    Il nome del ruolo di esecuzione si trova dopo l’ultimo / nell’ARN del ruolo di esecuzione.

Acquisizione del ruolo di esecuzione dello spazio

Di seguito vengono fornite istruzioni su come trovare il ruolo di esecuzione dello spazio.

Trova il ruolo di esecuzione collegato al tuo spazio
  1. Apri la console SageMaker AI, https://console.aws.amazon.com/sagemaker/

  2. Nel riquadro di navigazione a sinistra, scegli Domini in Configurazioni di amministrazione.

  3. Scegli il link che corrisponde al tuo dominio.

  4. Scegli la scheda Gestione dello spazio.

  5. Nella sezione Dettagli, l’ARN del ruolo di esecuzione è elencato in Ruolo di esecuzione.

    Il nome del ruolo di esecuzione si trova dopo l’ultimo / nell’ARN del ruolo di esecuzione.

Nota

Il codice seguente è pensato per essere eseguito in un ambiente di SageMaker intelligenza artificiale, come qualsiasi IDE di Amazon SageMaker Studio. Riceverai un errore se esegui l'esecuzione get_execution_role al di fuori di un ambiente SageMaker AI.

Il seguente comando get_execution_role Amazon SageMaker Python SDK recupera l'ARN del ruolo di esecuzione collegato allo spazio.

from sagemaker.core.helper.session_helper import get_execution_role role = get_execution_role() print(role)

Il nome del ruolo di esecuzione si trova dopo l’ultimo / nell’ARN del ruolo di esecuzione.

Acquisizione del ruolo di esecuzione dell’utente

Di seguito vengono fornite istruzioni su come trovare il ruolo di esecuzione di un utente.

Cerca il ruolo di esecuzione collegato a un utente
  1. Apri la console AI, SageMaker https://console.aws.amazon.com/sagemaker/

  2. Nel riquadro di navigazione a sinistra, scegli Domini in Configurazioni di amministrazione.

  3. Scegli il link che corrisponde al tuo dominio.

  4. Scegli la scheda Profili utente.

  5. Scegli il link che corrisponde al tuo utente.

  6. Nella sezione Dettagli, l’ARN del ruolo di esecuzione è elencato in Ruolo di esecuzione.

    Il nome del ruolo di esecuzione si trova dopo l’ultimo / nell’ARN del ruolo di esecuzione.

Nota

Per utilizzare gli esempi seguenti, è necessario che AWS Command Line Interface (AWS CLI) sia installato e configurato. Per informazioni, consulta Nozioni di base sulla AWS CLI nella Guida per l’utente di AWS Command Line Interface per la versione 2.

Il comando get-caller-identity AWS CLI seguente visualizza informazioni sull’identità IAM utilizzata per autenticare la richiesta. Il chiamante è un utente IAM.

aws sts get-caller-identity

Il nome del ruolo di esecuzione si trova dopo l’ultimo / nell’ARN del ruolo di esecuzione.

Modifica del ruolo di esecuzione

Un ruolo di esecuzione è un ruolo IAM che un'identità SageMaker AI (come un utente, uno spazio o un dominio SageMaker AI) assume. La modifica del ruolo IAM altera le autorizzazioni per tutte le identità che assumono quel ruolo.

Quando modifichi un ruolo di esecuzione, cambia anche il ruolo di esecuzione dello spazio corrispondente. Gli effetti della modifica potrebbero essere visibili solo dopo un po’ di tempo.

  • Quando modifichi il ruolo di esecuzione di un utente, gli spazi privati creati dall’utente assumeranno il ruolo di esecuzione modificato.

  • Quando modifichi il ruolo di esecuzione predefinito di uno spazio, gli spazi condivisi nel dominio assumeranno il ruolo di esecuzione modificato.

Per ulteriori informazioni sugli spazi e sui ruoli di esecuzione, consulta Informazioni sulle autorizzazioni e sui ruoli di esecuzione dello spazio del dominio.

Puoi sostituire il ruolo di esecuzione per un’identità con un ruolo IAM diverso utilizzando una delle istruzioni seguenti.

Se invece vuoi modificare un ruolo assunto da un’identità, consulta Modifica delle autorizzazioni per il ruolo di esecuzione.

Modifica del ruolo di esecuzione predefinito del dominio

Di seguito vengono fornite istruzioni su come cambiare il ruolo di esecuzione predefinito del dominio.

Modifica il ruolo di esecuzione predefinito collegato al tuo dominio
  1. Apri la console SageMaker AI, https://console.aws.amazon.com/sagemaker/

  2. Nel riquadro di navigazione a sinistra, scegli Domini in Configurazioni di amministrazione.

  3. Scegli il link che corrisponde al tuo dominio.

  4. Scegli la scheda Impostazioni del dominio.

  5. Nella sezione Impostazioni generali, scegli Modifica.

  6. Nella sezione Autorizzazioni, in Ruolo di esecuzione predefinito, espandi l’elenco a discesa.

  7. Nell’elenco a discesa puoi scegliere un ruolo esistente, inserire un ARN personalizzato per il ruolo IAM o creare un nuovo ruolo.

    Per creare un nuovo ruolo, puoi scegliere Crea un ruolo utilizzando la procedura guidata per la creazione del ruolo.

  8. Scegli Avanti nelle fasi seguenti e seleziona Invia nell’ultima fase.

Modifica del ruolo di esecuzione predefinito dello spazio

Di seguito vengono fornite istruzioni su come cambiare il ruolo di esecuzione predefinito dello spazio. La modifica di questo ruolo di esecuzione cambierà il ruolo assunto da tutti gli spazi condivisi nel dominio.

Modifica il ruolo di esecuzione predefinito dello spazio quando crei un nuovo spazio
  1. Apri la console SageMaker AI, https://console.aws.amazon.com/sagemaker/

  2. Nel riquadro di navigazione a sinistra, scegli Domini in Configurazioni di amministrazione.

  3. Scegli il link che corrisponde al tuo dominio.

  4. Scegli la scheda Impostazioni del dominio.

  5. Nella sezione Impostazioni generali, scegli Modifica.

  6. Nella sezione Autorizzazioni, in Ruolo di esecuzione predefinito dello spazio, espandi l’elenco a discesa.

  7. Nell’elenco a discesa puoi scegliere un ruolo esistente, inserire un ARN personalizzato per il ruolo IAM o creare un nuovo ruolo.

    Per creare un nuovo ruolo, puoi scegliere Crea un ruolo utilizzando la procedura guidata per la creazione del ruolo.

  8. Scegli Avanti nelle fasi seguenti e seleziona Invia nell’ultima fase.

Modifica del ruolo di esecuzione del profilo utente

Di seguito vengono fornite istruzioni su come cambiare il ruolo di esecuzione di un utente. La modifica di questo ruolo di esecuzione cambierà il ruolo assunto da tutti gli spazi privati creati da questo utente.

Modifica il ruolo di esecuzione collegato a un utente
  1. Apri la console SageMaker AI, https://console.aws.amazon.com/sagemaker/

  2. Nel riquadro di navigazione a sinistra, scegli Domini in Configurazioni di amministrazione.

  3. Scegli il link che corrisponde al tuo dominio.

  4. Scegli la scheda Profili utente.

  5. Scegli il link che corrisponde al nome del profilo utente.

  6. Scegli Modifica.

  7. Nell’elenco a discesa puoi scegliere un ruolo esistente, inserire un ARN personalizzato per il ruolo IAM o creare un nuovo ruolo.

    Per creare un nuovo ruolo, puoi scegliere Crea un ruolo utilizzando la procedura guidata per la creazione del ruolo.

  8. Scegli Avanti nelle fasi seguenti e seleziona Invia nell’ultima fase.

Modifica delle autorizzazioni per il ruolo di esecuzione

Puoi modificare le autorizzazioni esistenti per il ruolo di esecuzione di un'identità (ad esempio un utente, uno spazio o un dominio SageMaker AI). Per farlo, individua e modifica il ruolo IAM appropriato che l’identità sta assumendo. Di seguito vengono fornite le istruzioni per eseguire questa operazione tramite la console.

Quando modifichi un ruolo di esecuzione, cambierà anche il ruolo di esecuzione dello spazio corrispondente. Gli effetti della modifica potrebbero non essere immediati.

  • Quando modifichi il ruolo di esecuzione di un utente, gli spazi privati creati dall’utente assumeranno il ruolo di esecuzione modificato.

  • Quando modifichi il ruolo di esecuzione predefinito di uno spazio, gli spazi condivisi nel dominio assumeranno il ruolo di esecuzione modificato.

Per ulteriori informazioni sugli spazi e sui ruoli di esecuzione, consulta Informazioni sulle autorizzazioni e sui ruoli di esecuzione dello spazio del dominio.

Invece, per cambiare un ruolo assunto da un’identità, consulta Modifica del ruolo di esecuzione.

Per modificare le autorizzazioni per i ruoli di esecuzione
  1. Prima di tutto, ottieni il nome dell’identità da modificare.

  2. Per modificare un ruolo assunto da un’identità, consulta Modifying a role in AWS Identity and Access Management User Guide.

    Per ulteriori informazioni e istruzioni su come aggiungere le autorizzazioni alle identità IAM, consulta Add or remove identity permissions in AWS Identity and Access Management User Guide.

Passaggio dei ruoli

Azioni come il passaggio di un ruolo tra i servizi sono una funzione comune all'interno dell' SageMaker IA. Puoi trovare maggiori dettagli su azioni, risorse e chiavi di condizione per l' SageMaker intelligenza artificiale nel Service Authorization Reference.

Il ruolo viene passato (iam:PassRole) quando effettui le chiamate API seguenti: CreateAutoMLJob, CreateCompilationJob, CreateDomain, CreateFeatureGroup, CreateFlowDefiniton, CreateHyperParameterTuningJob, CreateImage, CreateLabelingJob, CreateModel, CreateMonitoringSchedule, CreateNotebookInstance, CreateProcessingJob, CreateTrainingJob, CreateUserProfile, RenderUiTemplate, UpdateImage e UpdateNotebookInstance.

Si allega la seguente politica di fiducia al ruolo IAM, che concede l'autorizzazione principale dell' SageMaker IA per assumere il ruolo ed è la stessa per tutti i ruoli di esecuzione:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Le autorizzazioni che hai bisogno di concedere al ruolo variano a seconda dell'API che chiami. Le seguenti sezioni spiegano queste autorizzazioni.

Nota

Invece di gestire le autorizzazioni creando una policy di autorizzazione, puoi utilizzare la politica di autorizzazione -managed. AWSAmazonSageMakerFullAccess Le autorizzazioni in questa politica sono piuttosto ampie, per consentire qualsiasi azione che potresti voler eseguire in AI. SageMaker Per un elenco delle policy, incluse le informazioni sui motivi per l'aggiunta di molte autorizzazioni, consulta AWS policy gestita: AmazonSageMakerFullAccess. Se si preferiscono creare policy personalizzate e gestire le autorizzazioni per limitarle alle sole azioni necessarie da eseguire con il ruolo di esecuzione, consultare i seguenti argomenti.

Per ulteriori informazioni sui ruoli IAM, consulta Ruoli IAM in Informazioni di riferimento sull’autorizzazione del servizio.

CreateAutoMLJob e CreateAutoMLJobV2 API: autorizzazioni per i ruoli di esecuzione

Per un ruolo di esecuzione che puoi passare in una richiesta API CreateAutoMLJob o CreateAutoMLJobV2, puoi collegare la policy di autorizzazione minima seguente al ruolo:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:InvokeEndpoint", "sagemaker:ListTags", "sagemaker:DescribeEndpoint", "sagemaker:CreateModel", "sagemaker:CreateEndpointConfig", "sagemaker:CreateEndpoint", "sagemaker:DeleteModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteEndpoint", "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Se specifichi un VPC privato per il tuo processo AutoML, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Se l'input è crittografato utilizzando la crittografia lato server con una chiave AWS gestita da KMS (SSE-KMS), aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Se specifichi una chiave KMS nella configurazione di output del processo AutoML, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Se specifichi una chiave KMS del volume nella configurazione della risorsa del processo AutoML, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateDomain API: autorizzazioni per i ruoli di esecuzione

Il ruolo di esecuzione per i domini con IAM Identity Center e il user/execution ruolo per i domini IAM richiedono le seguenti autorizzazioni quando si passa una chiave gestita AWS KMS dal cliente come chiave KmsKeyId nella richiesta API. CreateDomain Le autorizzazioni vengono applicate durante la chiamata API CreateApp.

Per un ruolo di esecuzione che puoi passare in una richiesta API CreateDomain, puoi collegare la seguente policy di autorizzazione al ruolo:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/kms-key-id" } ] }

In alternativa, se le autorizzazioni sono specificate in una policy KMS, puoi collegare la seguente policy al ruolo:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/ExecutionRole" ] }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }

CreateImage e UpdateImage API: autorizzazioni per i ruoli di esecuzione

Per un ruolo di esecuzione che puoi passare in una richiesta API CreateImage o UpdateImage, puoi collegare la seguente policy di autorizzazione al ruolo:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" } ] }

CreateNotebookInstance API: autorizzazioni per i ruoli di esecuzione

Le autorizzazioni che concedi al ruolo di esecuzione per la chiamata dell'API CreateNotebookInstance dipendono da ciò che intendi fare con l'istanza del notebook. Se intendi utilizzarlo per richiamare le API SageMaker AI e passare lo stesso ruolo quando chiami le CreateModel API CreateTrainingJob and, allega al ruolo la seguente politica di autorizzazione:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:SetRepositoryPolicy", "ecr:CompleteLayerUpload", "ecr:BatchDeleteImage", "ecr:UploadLayerPart", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:DeleteRepository", "ecr:PutImage", "ecr:CreateRepository", "cloudwatch:PutMetricData", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "s3:CreateBucket", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "robomaker:CreateSimulationApplication", "robomaker:DescribeSimulationApplication", "robomaker:DeleteSimulationApplication", "robomaker:CreateSimulationJob", "robomaker:DescribeSimulationJob", "robomaker:CancelSimulationJob", "ec2:CreateVpcEndpoint", "ec2:DescribeRouteTables", "elasticfilesystem:DescribeMountTargets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:*:*:*sagemaker*", "arn:aws:codecommit:*:*:*SageMaker*", "arn:aws:codecommit:*:*:*Sagemaker*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

Per ridurre le autorizzazioni, limitale a specifiche risorse Amazon S3 e Amazon ECR, limitando "Resource": "*", come segue:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "cloudwatch:PutMetricData", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object1", "arn:aws:s3:::outputbucket/path", "arn:aws:s3:::inputbucket/object2", "arn:aws:s3:::inputbucket/object3" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:us-east-1:111122223333:repository/my-repo1", "arn:aws:ecr:us-east-1:111122223333:repository/my-repo2", "arn:aws:ecr:us-east-1:111122223333:repository/my-repo3" ] } ] }

Se si prevede di accedere ad altre risorse, come Amazon DynamoDB o Amazon Relational Database Service, aggiungere le relative autorizzazioni a questa policy.

Nella policy precedente, crei l'ambito della policy come segue:

  • Crea l'ambito dell'autorizzazione s3:ListBucket nel bucket specifico da te specificato come InputDataConfig.DataSource.S3DataSource.S3Uri in una richiesta CreateTrainingJob.

  • Crea l'ambito delle autorizzazioni s3:GetObject , s3:PutObjecte s3:DeleteObject come segue:

    • Crea l'ambito dei seguenti valori, da te specificato in una richiesta CreateTrainingJob:

      InputDataConfig.DataSource.S3DataSource.S3Uri

      OutputDataConfig.S3OutputPath

    • Crea l'ambito dei seguenti valori, da te specificato in una richiesta CreateModel:

      PrimaryContainer.ModelDataUrl

      SuplementalContainers.ModelDataUrl

  • Crea l'ambito delle autorizzazioni ecr, come segue:

    • Crea l'ambito del valore AlgorithmSpecification.TrainingImage da te specificato in una richiesta CreateTrainingJob.

    • Crea l'ambito del valore PrimaryContainer.Image da te specificato in una richiesta CreateModel:

Le azioni cloudwatch e logs sono applicabili per le risorse "*". Per ulteriori informazioni, consulta CloudWatch Risorse e operazioni nella Amazon User Guide. CloudWatch

CreateHyperParameterTuningJob API: autorizzazioni per i ruoli di esecuzione

Per un ruolo di esecuzione che puoi passare in una richiesta API CreateHyperParameterTuningJob, puoi collegare la seguente policy di autorizzazione al ruolo:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Invece di specificarlo"Resource": "*", puoi assegnare queste autorizzazioni a risorse specifiche di Amazon S3, Amazon ECR e Amazon Logs: CloudWatch

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-repo" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/TrainingJobs*" } ] }

Se il container di addestramento associato al processo di regolazione degli iperparametri deve accedere ad altre origini dati, ad esempio a risorse DynamoDB o Amazon RDS, aggiungi le autorizzazioni rilevanti a questa policy.

Nella policy precedente, crei l'ambito della policy come segue:

  • Crea l'ambito dell'autorizzazione s3:ListBucket in un bucket specifico da te specificato come InputDataConfig.DataSource.S3DataSource.S3Uri in una richiesta CreateTrainingJob.

  • Crea l'ambito delle autorizzazioni s3:GetObject e s3:PutObject nei seguenti oggetti specificati nella configurazione di dati in entrata e in uscita in una richiesta CreateHyperParameterTuningJob:

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • Crea l'ambito delle autorizzazioni Amazon ECR nel percorso di registro (AlgorithmSpecification.TrainingImage) da te specificato in una richiesta CreateHyperParameterTuningJob.

  • Ambito delle autorizzazioni Amazon CloudWatch Logs per registrare un gruppo di lavori di formazione. SageMaker

Le azioni cloudwatch sono applicabili per le risorse "*". Per ulteriori informazioni, consulta CloudWatch Resources and Operations nella Amazon CloudWatch User Guide.

Se specifichi un VPC privato per il tuo processo di ottimizzazione degli iperparametri, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Se l'input è crittografato utilizzando la crittografia lato server con una chiave AWS gestita da KMS (SSE-KMS), aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Se specifichi una chiave KMS nella configurazione di output del processo di ottimizzazione iperparametri, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Se specifichi una chiave KMS del volume nella configurazione della risorsa del processo di ottimizzazione iperparametri, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateProcessingJob API: autorizzazioni per i ruoli di esecuzione

Per un ruolo di esecuzione che puoi passare in una richiesta API CreateProcessingJob, puoi collegare la seguente policy di autorizzazione al ruolo:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Invece di specificare "Resource": "*", puoi creare l'ambito delle autorizzazioni nelle risorse specifiche Amazon S3 e Amazon ECR:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-repo" } ] }

Se CreateProcessingJob.AppSpecification.ImageUri deve accedere ad altre origini dati, ad esempio le risorse DynamoDB o Amazon RDS, aggiungi autorizzazioni pertinenti a questa policy.

Nella policy precedente, crei l'ambito della policy come segue:

  • Crea l'ambito dell'autorizzazione s3:ListBucket in un bucket specifico da te specificato come ProcessingInputs in una richiesta CreateProcessingJob.

  • Crea l'ambito delle autorizzazioni s3:GetObject e s3:PutObject agli oggetti che verranno scaricati o caricati in ProcessingInputs e ProcessingOutputConfig in una richiesta CreateProcessingJob.

  • Crea l'ambito delle autorizzazioni Amazon ECR nel percorso di registro (AppSpecification.ImageUri) da te specificato in una richiesta CreateProcessingJob.

Le azioni cloudwatch e logs sono applicabili per le risorse "*". Per ulteriori informazioni, consulta CloudWatch Risorse e operazioni nella Amazon CloudWatch User Guide.

Se specifichi un VPC privato per il processo di elaborazione, aggiungi le seguenti autorizzazioni. Non definire l'ambito della policy con condizioni o filtri delle risorse. In caso contrario, i controlli di convalida effettuati durante la creazione del processo di elaborazione avranno esito negativo.

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Se l'input è crittografato utilizzando la crittografia lato server con una chiave AWS gestita da KMS (SSE-KMS), aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Se specifichi una chiave KMS nella configurazione di output dell'attività di elaborazione, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Se specifichi una chiave KMS del volume nella configurazione della risorsa dell'attività di elaborazione, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateTrainingJob API: autorizzazioni per i ruoli di esecuzione

Per un ruolo di esecuzione che puoi passare in una richiesta API CreateTrainingJob, puoi collegare la seguente policy di autorizzazione al ruolo:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Invece di specificare "Resource": "*", puoi creare l'ambito delle autorizzazioni nelle risorse specifiche Amazon S3 e Amazon ECR:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-repo" } ] }

Se CreateTrainingJob.AlgorithSpecifications.TrainingImage deve accedere ad altre origini dati, ad esempio le risorse DynamoDB o Amazon RDS, aggiungi autorizzazioni pertinenti a questa policy.

Se si specifica una risorsa dell'algoritmo utilizzando il AlgorithmSpecification.AlgorithmArn parametro, il ruolo di esecuzione deve inoltre disporre della seguente autorizzazione:

{ "Effect": "Allow", "Action": [ "sagemaker:DescribeAlgorithm" ], "Resource": "arn:aws:sagemaker:*:*:algorithm/*" }

Nella policy precedente, crei l'ambito della policy come segue:

  • Crea l'ambito dell'autorizzazione s3:ListBucket in un bucket specifico da te specificato come InputDataConfig.DataSource.S3DataSource.S3Uri in una richiesta CreateTrainingJob.

  • Crea l'ambito delle autorizzazioni s3:GetObject e s3:PutObject nei seguenti oggetti specificati nella configurazione di dati in entrata e in uscita in una richiesta CreateTrainingJob:

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • Crea l'ambito delle autorizzazioni Amazon ECR nel percorso di registro (AlgorithmSpecification.TrainingImage) da te specificato in una richiesta CreateTrainingJob.

Le azioni cloudwatch e logs sono applicabili per le risorse "*". Per ulteriori informazioni, consulta CloudWatch Risorse e operazioni nella Amazon CloudWatch User Guide.

Se specifichi un VPC privato per il tuo processo di addestramento, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Se l'input è crittografato utilizzando la crittografia lato server con una chiave AWS gestita da KMS (SSE-KMS), aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Se specifichi una chiave KMS nella configurazione di output del processo di addestramento, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Se specifichi una chiave KMS del volume nella configurazione della risorsa del processo di addestramento, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateModel API: autorizzazioni per i ruoli di esecuzione

Per un ruolo di esecuzione che puoi passare in una richiesta API CreateModel, puoi collegare la seguente policy di autorizzazione al ruolo:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Invece di specificare "Resource": "*", puoi creare l'ambito delle autorizzazioni nelle risorse specifiche Amazon S3 e Amazon ECR:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:us-east-1:111122223333:repository/my-repo", "arn:aws:ecr:us-east-1:111122223333:repository/my-repo" ] } ] }

Se CreateModel.PrimaryContainer.Image deve accedere ad altre origini dati, ad esempio le risorse Amazon DynamoDB o Amazon RDS, aggiungi autorizzazioni pertinenti a questa policy.

Nella policy precedente, crei l'ambito della policy come segue:

  • Crea l'ambito delle autorizzazioni S3 negli oggetti PrimaryContainer.ModelDataUrl in una richiesta CreateModel.

  • Crea l'ambito delle autorizzazioni ECR in un percorso di registro specifico da te specificato come PrimaryContainer.Image e SecondaryContainer.Image in una richiesta CreateModel.

Le azioni cloudwatch e logs sono applicabili per le risorse "*". Per ulteriori informazioni, consulta CloudWatch Risorse e operazioni nella Amazon CloudWatch User Guide.

Nota

Se prevedi di utilizzare la funzionalità SageMaker AI deployment guardrails per l'implementazione del modello in produzione, assicurati che il tuo ruolo di esecuzione sia autorizzato a eseguire l'cloudwatch:DescribeAlarmsazione sugli allarmi di rollback automatico.

Se specifichi un VPC privato per il tuo modello, aggiungi le seguenti autorizzazioni:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }