Come utilizzare i ruoli di SageMaker esecuzione - Amazon SageMaker

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 SageMaker esecuzione

Amazon SageMaker esegue operazioni per tuo conto utilizzando altri AWS servizi. Devi concedere SageMaker le autorizzazioni per utilizzare questi servizi e le risorse su cui agiscono. Concedi SageMaker 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. È possibile creare un ruolo di esecuzione utilizzando la SageMaker console 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 Aggiungere autorizzazioni Amazon S3 aggiuntive a un ruolo di esecuzione SageMaker .

Nota

È possibile creare un ruolo di esecuzione direttamente quando si crea un SageMaker dominio o un'istanza di notebook.

Per creare un nuovo ruolo di esecuzione dalla SageMaker console

  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 tipo di entità attendibile come AWS servizio, quindi utilizza la freccia rivolta verso il basso per cercare SageMakerin Casi d'uso per altri AWS servizi.

  4. Scegli SageMaker — Esecuzione, 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. Seleziona 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, assicuratevi di aggiornarlo e configurarlo seguendo le istruzioni riportate inConfigura il AWS CLI, quindi continuate con le istruzioni contenute inConfigurazione personalizzata utilizzando AWS CLI.

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

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 uno stimatore. Nell'esempio di codice che segue, creiamo uno strumento di valutazione utilizzando il container dell'algoritmo XGBoost e passiamo l'ARN del ruolo di esecuzione come parametro. Per l'esempio completo GitHub, consulta Customer Churn Prediction with XGBoost.

import sagemaker, boto3 from sagemaker import image_uris sess = sagemaker.Session() region = sess.boto_region_name bucket = sess.default_bucket() prefix = "sagemaker/DEMO-xgboost-churn" container = sagemaker.image_uris.retrieve("xgboost", region, "1.7-1") xgb = sagemaker.estimator.Estimator( container, execution-role-ARN, instance_count=1, instance_type="ml.m4.xlarge", output_path="s3://{}/{}/output".format(bucket, prefix), sagemaker_session=sess, ) ...

Aggiungere autorizzazioni Amazon S3 aggiuntive a un ruolo di esecuzione SageMaker

Quando utilizzi una SageMaker funzionalità con risorse in Amazon S3, ad esempio 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 l'autorizzazione del ruolo IAM a eseguire tutte le azioni che AmazonSageMakerFullAccess consentono ma limitano questo accesso ai bucket DOC-EXAMPLE-BUCKET1 e DOC-EXAMPLE-BUCKET2. Consulta la documentazione di sicurezza per la SageMaker funzionalità specifica che stai utilizzando per ulteriori informazioni sulle autorizzazioni Amazon S3 richieste per tale funzionalità.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*", "arn:aws:s3:::DOC-EXAMPLE-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:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2" ] } ] }

Ottieni ruolo di esecuzione

È possibile utilizzare la SageMaker console o il AWS CLI per recuperare l'ARN del ruolo di esecuzione associato a SageMaker un dominio, un profilo utente o un'istanza di notebook.

In alternativa, gli utenti di Amazon SageMaker Python SDK possono recuperare l'ARN del ruolo di esecuzione associato al proprio profilo utente o a un'istanza del notebook eseguendo il codice seguente:

import sagemaker sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role()
Nota

Il ruolo di esecuzione è disponibile solo quando si esegue un notebook all'interno. SageMaker Se get_execution_role esegui su un notebook non acceso SageMaker, aspettati un errore di «regione».

Passaggio dei ruoli

Azioni come il passaggio di un ruolo tra i servizi sono una funzione comune all'interno SageMaker. Puoi trovare maggiori dettagli su Actions, Resources e Condition Keys for SageMaker nella IAM User Guide.

Trasmetti il ruolo (iam:PassRole) quando effettui queste chiamate API: CreateAutoMLJobCreateCompilationJobCreateDomain, CreateFeatureGroup, CreateFlowDefiniton, CreateHyperParameterTuningJob, CreateImage, CreateLabelingJob, CreateModel, CreateMonitoringScheduleCreateNotebookInstance, CreateProcessingJob, CreateTrainingJob, CreateUserProfile, RenderUiTemplate, UpdateImage, e UpdateNotebookInstance.

Al ruolo IAM si allega la seguente politica di fiducia, che concede le autorizzazioni SageMaker principali per assumere il ruolo ed è la stessa per tutti i ruoli di esecuzione:

{ "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 politica di autorizzazione, puoi utilizzare la politica di autorizzazione -managed. AWSAmazonSageMakerFullAccess Le autorizzazioni contenute in questa politica sono abbastanza ampie, per consentire qualsiasi azione che potresti voler eseguire. SageMaker Per un elenco delle policy, incluse le informazioni sui motivi per l'aggiunta di molte autorizzazioni, consulta AWS politica 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 nella Guida per l'utente di IAM.

CreateAutoAPI MLJob: autorizzazioni per i ruoli di esecuzione

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

{ "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 ruolo utente/esecuzione per i domini IAM richiedono le seguenti autorizzazioni quando si passa una chiave gestita AWS KMS dal cliente come nella richiesta API. KmsKeyId 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:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region:account-id:key/kms-key-id" } ] }

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

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

CreateImage e API: autorizzazioni per i ruoli di esecuzione UpdateImage

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

{ "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 prevedi di utilizzarlo per richiamare le SageMaker API e passare lo stesso ruolo quando chiami le CreateModel API CreateTrainingJob and, allega la seguente politica di autorizzazioni al ruolo:

{ "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:

{ "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:region::repository/my-repo1", "arn:aws:ecr:region::repository/my-repo2", "arn:aws:ecr:region::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 Resources and Operations nella Amazon CloudWatch User Guide.

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:

{ "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 assegnare queste autorizzazioni a risorse specifiche di Amazon S3, Amazon ECR CloudWatch e Amazon Logs:

{ "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:region::repository/my-repo" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:*:*: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.

  • Valuta le autorizzazioni di Amazon CloudWatch Logs per registrare gruppi di lavori di SageMaker formazione.

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:

{ "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:

{ "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:region::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 Resources and Operations 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:

{ "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:

{ "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:region::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.

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 Resources and Operations 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:

{ "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:

{ "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:region::repository/my-repo", "arn:aws:ecr:region::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 Resources and Operations nella Amazon CloudWatch User Guide.

Nota

Se prevedi di utilizzare la funzionalità di SageMaker distribuzione dei 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" ] }