Esempi di policy SageMaker basate sull'identità di Amazon - 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à.

Esempi di policy SageMaker basate sull'identità di Amazon

Per impostazione predefinita, gli utenti e i ruoli IAM non sono autorizzati a creare o modificare risorse. SageMaker Inoltre, non possono eseguire attività utilizzando l' AWS API AWS Management Console AWS CLI, o. Un amministratore IAM deve creare policy IAM che concedono a utenti e ruoli l'autorizzazione per eseguire operazioni API specifiche sulle risorse specificate di cui hanno bisogno. L'amministratore deve quindi collegare queste policy a utenti o IAM che richiedono tali autorizzazioni. Per informazioni su come collegare le policy a un utente o a un gruppo IAM, consulta Aggiunta e rimozione di autorizzazioni per identità IAM nella Guida per l'utente IAM.

Per informazioni su come creare una policy basata su identità IAM utilizzando questi documenti di policy JSON di esempio, consulta Creazione di policy nella scheda JSON nella Guida per l'utente IAM.

Best practice delle policy

Le politiche basate sull'identità determinano se qualcuno può creare, accedere o eliminare SageMaker risorse nel tuo account. Queste azioni possono comportare costi aggiuntivi per l' Account AWS. Quando crei o modifichi policy basate su identità, segui queste linee guida e raccomandazioni:

  • Inizia con le policy AWS gestite e passa alle autorizzazioni con privilegi minimi: per iniziare a concedere autorizzazioni a utenti e carichi di lavoro, utilizza le politiche gestite che concedono le autorizzazioni per molti casi d'uso comuni.AWS Sono disponibili nel tuo. Account AWS Ti consigliamo di ridurre ulteriormente le autorizzazioni definendo politiche gestite dai AWS clienti specifiche per i tuoi casi d'uso. Per ulteriori informazioni, consulta Policy gestite da AWSo Policy gestite da AWS per le funzioni dei processi nella Guida per l'utente IAM.

  • Applica le autorizzazioni con privilegio minimo: quando imposti le autorizzazioni con le policy IAM, concedi solo le autorizzazioni richieste per eseguire un'attività. Puoi farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come autorizzazioni con privilegi minimi. Per ulteriori informazioni sull'utilizzo di IAM per applicare le autorizzazioni, consulta Policy e autorizzazioni in IAM nella Guida per l'utente IAM.

  • Condizioni d'uso nelle policy IAM per limitare ulteriormente l'accesso: per limitare l'accesso a operazioni e risorse puoi aggiungere una condizione alle tue policy. Ad esempio, è possibile scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzando SSL. Puoi anche utilizzare le condizioni per concedere l'accesso alle azioni del servizio se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio AWS CloudFormation. Per ulteriori informazioni, consulta la sezione Elementi delle policy JSON di IAM: condizione nella Guida per l'utente IAM.

  • Utilizzo di IAM Access Analyzer per convalidare le policy IAM e garantire autorizzazioni sicure e funzionali: IAM Access Analyzer convalida le policy nuove ed esistenti in modo che aderiscano alla sintassi della policy IAM (JSON) e alle best practice di IAM. IAM Access Analyzer offre oltre 100 controlli delle policy e consigli utili per creare policy sicure e funzionali. Per ulteriori informazioni, consulta Convalida delle policy per IAM Access Analyzer nella Guida per l'utente IAM.

  • Richiedi l'autenticazione a più fattori (MFA): se hai uno scenario che richiede utenti IAM o un utente root nel Account AWS tuo, attiva l'MFA per una maggiore sicurezza. Per richiedere la MFA quando vengono chiamate le operazioni API, aggiungi le condizioni MFA alle policy. Per ulteriori informazioni, consulta Configurazione dell'accesso alle API protetto con MFA nella Guida per l'utente IAM.

Per maggiori informazioni sulle best practice in IAM, consulta Best practice di sicurezza in IAM nella Guida per l'utente di IAM.

Utilizzo della console SageMaker

Per accedere alla SageMaker console Amazon, devi disporre di un set minimo di autorizzazioni. Queste autorizzazioni devono consentirti di elencare e visualizzare i dettagli sulle SageMaker risorse del tuo AWS account. Se crei una policy basata sull'identità più restrittiva rispetto alle autorizzazioni minime richieste, la console non funzionerà nel modo previsto per le entità (utenti o ruoli) associate a tale policy.

Per garantire che tali entità possano ancora utilizzare la SageMaker console, allega anche la seguente politica AWS gestita alle entità. Per ulteriori informazioni, consulta Aggiunta di autorizzazioni a un utente nella Guida per l'utente di IAM:

Non è necessario consentire autorizzazioni minime per la console per gli utenti che effettuano chiamate solo verso AWS CLI o l' AWS API. Al contrario, è possibile accedere solo alle operazioni che soddisfano l'operazione API che si sta cercando di eseguire.

Autorizzazioni necessarie per utilizzare la console Amazon SageMaker

La tabella di riferimento delle autorizzazioni elenca le operazioni dell' SageMaker API Amazon e mostra le autorizzazioni richieste per ciascuna operazione. Per ulteriori informazioni sulle operazioni delle SageMaker API di Amazon, consultaAutorizzazioni Amazon SageMaker API: riferimento ad azioni, autorizzazioni e risorse.

Per utilizzare la SageMaker console Amazon, devi concedere le autorizzazioni per azioni aggiuntive. Nello specifico, la console necessita di autorizzazioni che consentono le azioni ec2 per visualizzare le sottoreti, i VPC e i gruppi di sicurezza. La console potrebbe richiedere l'autorizzazione per creare ruoli di esecuzione per attività come CreateNotebook, CreateTrainingJob e CreateModel. Concedi queste autorizzazioni con la seguente policy di autorizzazioni:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerApis", "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*" }, { "Sid": "VpcConfigurationForCreateForms", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Sid":"KmsKeysForCreateForms", "Effect":"Allow", "Action":[ "kms:DescribeKey", "kms:ListAliases" ], "Resource":"*" }, { "Sid": "AccessAwsMarketplaceSubscriptions", "Effect": "Allow", "Action": [ "aws-marketplace:ViewSubscriptions" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "codecommit:BatchGetRepositories", "codecommit:CreateRepository", "codecommit:GetRepository", "codecommit:ListRepositories", "codecommit:ListBranches", "secretsmanager:CreateSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Sid":"ListAndCreateExecutionRoles", "Effect":"Allow", "Action":[ "iam:ListRoles", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy" ], "Resource":"*" }, { "Sid": "DescribeECRMetaData", "Effect": "Allow", "Action": [ "ecr:Describe*" ], "Resource": "*" }, { "Sid": "PassRoleForExecutionRoles", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

Autorizzazioni necessarie per utilizzare la console Amazon SageMaker Ground Truth

Per utilizzare la console Amazon SageMaker Ground Truth, devi concedere le autorizzazioni per risorse aggiuntive. In particolare, la console necessita delle autorizzazioni per consentire al AWS Marketplace di visualizzare gli abbonamenti, alle operazioni di Amazon Cognito per gestire la forza lavoro privata, alle azioni di Amazon S3 per l'accesso ai file di input e output e alle azioni per elencare e richiamare le AWS Lambda funzioni. Concedi queste autorizzazioni con la seguente policy di autorizzazioni:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GroundTruthConsole", "Effect": "Allow", "Action": [ "aws-marketplace:DescribeListings", "aws-marketplace:ViewSubscriptions", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListGroups", "cognito-idp:ListIdentityProviders", "cognito-idp:ListUsers", "cognito-idp:ListUsersInGroup", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient", "groundtruthlabeling:DescribeConsoleJob", "groundtruthlabeling:ListDatasetObjects", "groundtruthlabeling:RunFilterOrSampleManifestJob", "groundtruthlabeling:RunGenerateManifestByCrawlingJob", "lambda:InvokeFunction", "lambda:ListFunctions", "s3:GetObject", "s3:PutObject", "s3:SelectObjectContent" ], "Resource": "*" } ] }

Autorizzazioni necessarie per l'utilizzo della console IA aumentata Amazon (Anteprima)

Per utilizzare la console IA aumentata Amazon, occorre concedere le autorizzazioni per le risorse aggiuntive. Concedi queste autorizzazioni con la seguente policy di autorizzazioni:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*Algorithm", "sagemaker:*Algorithms", "sagemaker:*App", "sagemaker:*Apps", "sagemaker:*AutoMLJob", "sagemaker:*AutoMLJobs", "sagemaker:*CodeRepositories", "sagemaker:*CodeRepository", "sagemaker:*CompilationJob", "sagemaker:*CompilationJobs", "sagemaker:*Endpoint", "sagemaker:*EndpointConfig", "sagemaker:*EndpointConfigs", "sagemaker:*EndpointWeightsAndCapacities", "sagemaker:*Endpoints", "sagemaker:*Environment", "sagemaker:*EnvironmentVersion", "sagemaker:*EnvironmentVersions", "sagemaker:*Environments", "sagemaker:*Experiment", "sagemaker:*Experiments", "sagemaker:*FlowDefinitions", "sagemaker:*HumanLoop", "sagemaker:*HumanLoops", "sagemaker:*HumanTaskUi", "sagemaker:*HumanTaskUis", "sagemaker:*HyperParameterTuningJob", "sagemaker:*HyperParameterTuningJobs", "sagemaker:*LabelingJob", "sagemaker:*LabelingJobs", "sagemaker:*Metrics", "sagemaker:*Model", "sagemaker:*ModelPackage", "sagemaker:*ModelPackages", "sagemaker:*Models", "sagemaker:*MonitoringExecutions", "sagemaker:*MonitoringSchedule", "sagemaker:*MonitoringSchedules", "sagemaker:*NotebookInstance", "sagemaker:*NotebookInstanceLifecycleConfig", "sagemaker:*NotebookInstanceLifecycleConfigs", "sagemaker:*NotebookInstanceUrl", "sagemaker:*NotebookInstances", "sagemaker:*ProcessingJob", "sagemaker:*ProcessingJobs", "sagemaker:*RenderUiTemplate", "sagemaker:*Search", "sagemaker:*SearchSuggestions", "sagemaker:*Tags", "sagemaker:*TrainingJob", "sagemaker:*TrainingJobs", "sagemaker:*TransformJob", "sagemaker:*TransformJobs", "sagemaker:*Trial", "sagemaker:*TrialComponent", "sagemaker:*TrialComponents", "sagemaker:*Trials", "sagemaker:*Workteam", "sagemaker:*Workteams" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sagemaker:*FlowDefinition" ], "Resource": "*", "Condition": { "StringEqualsIfExists": { "sagemaker:WorkteamType": [ "private-crowd", "vendor-crowd" ] } } }, { "Effect": "Allow", "Action": [ "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "aws-marketplace:ViewSubscriptions", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "codecommit:BatchGetRepositories", "codecommit:CreateRepository", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:ListRepositories", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListGroups", "cognito-idp:ListIdentityProviders", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:ListUsers", "cognito-idp:ListUsersInGroup", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:CreateRepository", "ecr:Describe*", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "elastic-inference:Connect", "elasticfilesystem:DescribeFileSystems", "elasticfilesystem:DescribeMountTargets", "fsx:DescribeFileSystems", "glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:GetJobRun", "glue:GetJobRuns", "glue:GetJobs", "glue:ResetJobBookmark", "glue:StartJobRun", "glue:UpdateJob", "groundtruthlabeling:*", "iam:ListRoles", "kms:DescribeKey", "kms:ListAliases", "lambda:ListFunctions", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents", "sns:ListTopics" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery", "logs:DescribeResourcePolicies", "logs:GetLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:UpdateLogDelivery" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:CompleteLayerUpload", "ecr:BatchDeleteImage", "ecr:UploadLayerPart", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:DeleteRepository", "ecr:PutImage" ], "Resource": "arn:aws:ecr:*:*:repository/*sagemaker*" }, { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:*:*:*sagemaker*", "arn:aws:codecommit:*:*:*SageMaker*", "arn:aws:codecommit:*:*:*Sagemaker*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:CreateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:AmazonSageMaker-*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "robomaker:CreateSimulationApplication", "robomaker:DescribeSimulationApplication", "robomaker:DeleteSimulationApplication" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "robomaker:CreateSimulationJob", "robomaker:DescribeSimulationJob", "robomaker:CancelSimulationJob" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:GetBucketCors", "s3:PutBucketCors" ], "Resource": [ "arn:aws:s3:::*SageMaker*", "arn:aws:s3:::*Sagemaker*", "arn:aws:s3:::*sagemaker*", "arn:aws:s3:::*aws-glue*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*SageMaker*", "arn:aws:lambda:*:*:function:*sagemaker*", "arn:aws:lambda:*:*:function:*Sagemaker*", "arn:aws:lambda:*:*:function:*LabelingFunction*" ] }, { "Action": "iam:CreateServiceLinkedRole", "Effect": "Allow", "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint", "Condition": { "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com" } } }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "robomaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "sns:Subscribe", "sns:CreateTopic" ], "Resource": [ "arn:aws:sns:*:*:*SageMaker*", "arn:aws:sns:*:*:*Sagemaker*", "arn:aws:sns:*:*:*sagemaker*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com", "glue.amazonaws.com", "robomaker.amazonaws.com", "states.amazonaws.com" ] } } } ] }

Consenti agli utenti di visualizzare le loro autorizzazioni

Questo esempio mostra in che modo è possibile creare una policy che consente agli utenti IAM di visualizzare le policy inline e gestite che sono cpllegate alla relativa identità utente. Questa politica include le autorizzazioni per completare questa azione sulla console o utilizzando l'API o in modo programmatico. AWS CLI AWS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Controlla la creazione di SageMaker risorse con le chiavi di condizione

Controlla l'accesso granulare per consentire la creazione di SageMaker risorse utilizzando chiavi di condizione SageMaker specifiche. Per informazioni sull'uso delle chiavi di condizione nelle policy IAM, consulta elementi della policy IAM JSON: condizione nella Guida per l'utente di IAM.

Le chiavi di condizione, insieme alle relative azioni API e i collegamenti alla documentazione pertinente sono elencati in Condition Keys for, nella IAM User SageMaker Guide.

Gli esempi seguenti mostrano come utilizzare i tasti SageMaker condizionali per controllare l'accesso.

Controlla l'accesso alle SageMaker risorse utilizzando le chiavi di condizione del file system

SageMaker la formazione fornisce un'infrastruttura sicura su cui eseguire l'algoritmo di addestramento, ma in alcuni casi potrebbe essere necessaria una difesa più approfondita. Ad esempio, riduci al minimo il rischio di eseguire codice non attendibile nell'algoritmo oppure disponi di mandati di sicurezza specifici nell'organizzazione. Per questi scenari, puoi utilizzare le chiavi di condizione specifiche del servizio nell'elemento Condition di una policy IAM per ridurre l'ambito dell'utente a file system, directory, modalità di accesso (lettura-scrittura, sola lettura) e gruppi di sicurezza specifici.

Limitazione di un utente IAM a directory e modalità di accesso specifiche

La politica seguente limita un utente alle directory /sagemaker/xgboost-dm/train e alle /sagemaker/xgboost-dm/validation directory di un file system EFS a ro (sola lettura): AccessMode

Nota

Quando una directory è consentita, tutte le sue sottodirectory sono accessibili anche dall'algoritmo di addestramento. Le autorizzazioni POSIX vengono ignorate.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToElasticFileSystem", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "EFS", "sagemaker:FileSystemDirectoryPath": "/sagemaker/xgboost-dm/train" } } }, { "Sid": "AccessToElasticFileSystemValidation", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "EFS", "sagemaker:FileSystemDirectoryPath": "/sagemaker/xgboost-dm/validation" } } } ] }

Limitazione di un utente a un file system specifico

Per evitare che un algoritmo dannoso che utilizza un client dello spazio utente acceda a qualsiasi file system direttamente nel tuo account, puoi limitare il traffico di rete consentendo l'ingresso da un gruppo di sicurezza specifico. Nell'esempio seguente, l'utente può utilizzare solo il gruppo di sicurezza specificato per accedere al file system:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToLustreFileSystem", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "FSxLustre", "sagemaker:FileSystemDirectoryPath": "/fsx/sagemaker/xgboost/train" }, "ForAllValues:StringEquals": { "sagemaker:VpcSecurityGroupIds": [ "sg-12345678" ] } } } ] }

Anche se l'esempio precedente può limitare un algoritmo a un file system specifico, non impedisce a un algoritmo di accedere a qualsiasi directory all'interno di tale file system utilizzando il client dello spazio utente. Per mitigare questo problema, puoi:

  • Assicurarti che il file system contenga solo i dati a cui ritieni che gli utenti possano accedere

  • Crea un ruolo IAM che impedisca agli utenti di avviare processi di addestramento con algoritmi da repository ECR approvati

Per ulteriori informazioni su come utilizzare i ruoli con SageMaker, consulta Ruoli. SageMaker

Limitazione dell’addestramento a un VPC specifico

Limita un AWS utente alla creazione di lavori di formazione dall'interno di un Amazon VPC. Quando un processo di addestramento viene creato all'interno di un VPC, puoi utilizzare i log di flusso VPC per monitorare tutto il traffico da e verso il cluster di addestramento. Per informazioni sull'utilizzo dei log di flusso VPC, consulta Log di flusso VPC nella Guida per l'utente di Amazon Virtual Private Cloud.

L’applicazione della policy seguente impone che un processo di addestramento venga creato da un utente chiamando CreateTrainingJob dall'interno di un VPC:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFromVpc", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "sagemaker:VpcSubnets": ["subnet-a1234"], "sagemaker:VpcSecurityGroupIds": ["sg12345", "sg-67890"] }, "Null": { "sagemaker:VpcSubnets": "false", "sagemaker:VpcSecurityGroupIds": "false" } } } ] }

Limitare l'accesso ai tipi di forza lavoro per i processi di etichettatura Ground Truth e i flussi di lavoro di revisione umana Amazon A2I

I team di lavoro di Amazon SageMaker Ground Truth e Amazon Augmented AI rientrano in tre tipi di forza lavoro: pubblica (con Amazon Mechanical Turk), privata e vendor. Per limitare l'accesso dell'utente a un team di lavoro specifico utilizzando uno di questi tipi o l'ARN del team di lavoro, utilizza sagemaker:WorkteamType e/o le chiavi di condizione sagemaker:WorkteamArn. Per la chiave di sagemaker:WorkteamType condizione, utilizza gli operatori di condizione stringa. Per la chiave di condizione sagemaker:WorkteamArn, utilizza gli operatori di condizione nome della risorsa Amazon (ARN). Se l'utente tenta di creare un processo di etichettatura con un team di lavoro limitato, SageMaker restituisce un errore di accesso negato.

Le policy riportate di seguito illustrano diversi modi per utilizzare le chiavi di condizione sagemaker:WorkteamType e sagemaker:WorkteamArn con gli operatori di condizione appropriati e i valori di condizione validi.

Nell'esempio seguente viene utilizzata la chiave di condizione sagemaker:WorkteamType con l'operatore di condizione StringEquals per limitare l'accesso a un team di lavoro pubblico. Accetta valori di condizione nel seguente formato: workforcetype-crowd, dove workforcetype può essere uguale public, private o vendor.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:WorkteamType": "public-crowd" } } } ] }

Le policy seguenti mostrano come limitare l'accesso a un team di lavoro pubblico utilizzando la chiave di condizione sagemaker:WorkteamArn. La prima mostra come usare una variante regex IAM valida dell'ARN del team di lavoro e l'operatore di condizione ArnLike. La seconda mostra come usare l'operatore di condizione ArnEquals e l'ARN del team di lavoro.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "ArnLike": { "sagemaker:WorkteamArn": "arn:aws:sagemaker:*:*:workteam/public-crowd/*" } } } ] }
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "ArnEquals": { "sagemaker:WorkteamArn": "arn:aws:sagemaker:us-west-2:394669845002:workteam/public-crowd/default" } } } ] }

Applicazione della crittografia dei dati di input

La seguente politica limita a un utente la possibilità di specificare una AWS KMS chiave per crittografare i dati di input durante la creazione di lavori di formazione, ottimizzazione degli iperparametri ed etichettatura utilizzando la chiave condition: sagemaker:VolumeKmsKey

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceEncryption", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:CreateLabelingJob", "sagemaker:CreateFlowDefiniton" ], "Resource": "*", "Condition": { "ArnEquals": { "sagemaker:VolumeKmsKey": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } } } ] }

Applicazione della crittografia del volume di storage dell'istanza del notebook

La seguente politica limita la possibilità per un utente di specificare una AWS KMS chiave per crittografare il volume di archiviazione collegato durante la creazione o l'aggiornamento di un'istanza di notebook utilizzando la chiave di condizione: sagemaker:VolumeKmsKey

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceEncryption", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance" ], "Resource": "*", "Condition": { "ArnLike": { "sagemaker:VolumeKmsKey": "*key/volume-kms-key-12345" } } } ] }

Applicazione dell'isolamento di rete per processi di addestramento

La policy seguente limita un utente ad abilitare l'isolamento di rete durante la creazione di processi di addestramento utilizzando la chiave di condizione sagemaker:NetworkIsolation:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceIsolation", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "Bool": { "sagemaker:NetworkIsolation": "true" } } } ] }

Applicazione di un tipo di istanza specifico per i processi di addestramento

La policy seguente limita un utente a utilizzare un tipo di istanza specifico durante la creazione di processi di addestramento utilizzando la chiave di condizione sagemaker:InstanceTypes:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceInstanceType", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "ForAllValues:StringLike": { "sagemaker:InstanceTypes": ["ml.c5.*"] } } } ] }

Applicazione di un acceleratore EI specifico per i processi di addestramento

La policy seguente consente a un utente di utilizzare solo uno specifico acceleratore di inferenza elastica (EI), se viene fornito un acceleratore, durante la creazione o l'aggiornamento di istanze del notebook e durante la creazione di configurazioni di endpoint utilizzando la chiave di condizione sagemaker:AcceleratorTypes:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceAcceleratorType", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance", "sagemaker:UpdateNotebookInstance", "sagemaker:CreateEndpointConfig" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "sagemaker:AcceleratorTypes": ["ml.eia1.medium"] } } } ] }

Imporre la disabilitazione dell'accesso a Internet e dell'accesso root per la creazione di istanze del notebook

Puoi disabilitare l'accesso a Internet e l'accesso root alle istanze del notebook per renderle più sicure. Per informazioni sul controllo dell'accesso root a un'istanza del notebook, consulta Controlla l'accesso root a un'istanza di notebook SageMaker . Per informazioni su come disabilitare l'accesso a Internet per un'istanza del notebook, consulta Connessione di un'istanza del notebook in un VPC a risorse esterne.

La policy seguente richiede che un utente disabiliti l'accesso alla rete durante la creazione dell'istanza o disabiliti l'accesso principale durante la creazione o l'aggiornamento di un'istanza del notebook.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LockDownCreateNotebookInstance", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:DirectInternetAccess": "Disabled", "sagemaker:RootAccess": "Disabled" }, "Null": { "sagemaker:VpcSubnets": "false", "sagemaker:VpcSecurityGroupIds": "false" } } }, { "Sid": "LockDownUpdateNotebookInstance", "Effect": "Allow", "Action": [ "sagemaker:UpdateNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:RootAccess": "Disabled" } } } ] }

Controlla l'accesso all' SageMaker API utilizzando policy basate sull'identità

Per controllare l'accesso alle chiamate SageMaker API e alle chiamate agli endpoint SageMaker ospitati, utilizza politiche IAM basate sull'identità.

Limita l'accesso all' SageMaker API e il runtime alle chiamate dall'interno del tuo VPC

Se configuri un endpoint di interfaccia nel tuo VPC, le persone esterne al VPC possono comunque connettersi all'API e eseguire SageMaker l'esecuzione su Internet, a meno che non alleghi una policy IAM che limiti l'accesso alle chiamate provenienti dall'interno del VPC a tutti gli utenti e i gruppi che hanno accesso alle tue risorse. SageMaker Per informazioni sulla creazione di un endpoint di interfaccia VPC per l' SageMaker API e il runtime, consulta. Connect a SageMaker Within your VPC

Importante

Se applichi una policy IAM simile a una delle seguenti, gli utenti non possono accedere alle SageMaker API specificate tramite la console.

Per limitare l'accesso alle sole connessioni effettuate dall'interno del VPC, crea una policy AWS Identity and Access Management che limita l'accesso alle sole chiamate provenienti dall'interno del VPC. Quindi aggiungi quella policy a ogni AWS Identity and Access Management utente, gruppo o ruolo utilizzato per accedere all' SageMaker API o al runtime.

Nota

Questa policy consente connessioni solo ai chiamanti all'interno di una sottorete in cui è stato creato un endpoint di interfaccia.

{ "Id": "api-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableAPIAccess", "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-111bbaaa" } } } ] }

Se desideri limitare l'accesso all'API alle sole chiamate effettuate utilizzando l'endpoint di interfaccia, utilizza la chiave di condizione aws:SourceVpce anziché aws:SourceVpc:

{ "Id": "api-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableAPIAccess", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedNotebookInstanceUrl" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpce": [ "vpce-111bbccc", "vpce-111bbddd" ] } } } ] }

Limita l'accesso all' SageMaker API e alle chiamate di runtime in base all'indirizzo IP

Per consentire l'accesso alle chiamate SageMaker API e alle chiamate di runtime solo dagli indirizzi IP di un elenco specificato, allega una policy IAM che neghi l'accesso all'API a meno che la chiamata non provenga da un indirizzo IP nell'elenco a ogni AWS Identity and Access Management utente, gruppo o ruolo utilizzato per accedere all'API o al runtime. Per informazioni sulla creazione di una policy IAM, consulta Creazione di policy IAM nella AWS Identity and Access Management Guida per l'utente di IAM. Per specificare l'elenco di indirizzi IP che devono disporre dell'accesso alla chiamata API, utilizza l'operatore di condizione IpAddress e la chiave di contesto di condizione aws:SourceIP. Per informazioni sugli operatori di condizione IAM, consulta Elementi della policy JSON di IAM: operatori di condizione nella Guida per l'utente di AWS Identity and Access Management . Per ulteriori informazioni sulle chiavi di contesto della condizione IAM, consulta Chiavi di contesto delle condizioni globali AWS.

Ad esempio, la seguente policy consente l'accesso a CreateTrainingJob solo dagli indirizzi IP negli intervalli 192.0.2.0-192.0.2.255 e 203.0.113.0-203.0.113.255:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:CreateTrainingJob", "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] } } } ] }

Limitazione dell'accesso a un'istanza del notebook in base all'indirizzo IP

Per consentire l'accesso a un'istanza di notebook solo dagli indirizzi IP di un elenco specificato, allega una policy IAM che neghi l'accesso a CreatePresignedNotebookInstanceUrlmeno che la chiamata non provenga da un indirizzo IP nell'elenco a ogni AWS Identity and Access Management utente, gruppo o ruolo utilizzato per accedere all'istanza del notebook. Per informazioni sulla creazione di una policy IAM, consulta Creazione di policy IAM nella AWS Identity and Access Management Guida per l'utente di IAM. Per specificare l'elenco di indirizzi IP che devono disporre dell'accesso all'istanza del notebook, utilizza l'operatore di condizione IpAddress e la chiave di contesto di condizione aws:SourceIP. Per informazioni sugli operatori di condizione IAM, consulta Elementi della policy JSON di IAM: operatori di condizione nella Guida per l'utente di AWS Identity and Access Management . Per ulteriori informazioni sulle chiavi di contesto della condizione IAM, consulta Chiavi di contesto delle condizioni globali AWS.

Ad esempio, la seguente policy consente l'accesso a un'istanza del notebook solo da indirizzi IP negli intervalli 192.0.2.0-192.0.2.255 e 203.0.113.0-203.0.113.255:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:CreatePresignedNotebookInstanceUrl", "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] } } } ] }

La policy limita l'accesso alla chiamata a CreatePresignedNotebookInstanceUrl e all'URL restituito dalla chiamata. La policy limita inoltre l'accesso all'apertura di un'istanza di notebook nella console e viene applicata per ogni richiesta HTTP e WebSocket frame che tenta di connettersi all'istanza del notebook.

Nota

L'utilizzo di questo metodo per filtrare in base all'indirizzo IP è incompatibile quando ci si connette SageMaker tramite un endpoint con interfaccia VPC. . Per informazioni sulla limitazione dell'accesso a un'istanza del notebook durante la connessione tramite un endpoint VPC di interfaccia, consulta Connessione a un'istanza del notebook tramite un endpoint VPC di interfaccia.

Controlla l'accesso alle SageMaker risorse utilizzando i tag

Specificate i tag all'interno di una policy IAM per controllare l'accesso a gruppi di SageMaker risorse. Utilizza i tag per implementare il controllo degli accessi basato su attributi (ABAC). L'utilizzo dei tag consente di partizionare l'accesso alle risorse a gruppi specifici di utenti. Puoi avere un team con accesso a un gruppo di risorse e un team diverso con accesso a un altro set di risorse. Puoi fornire ResourceTag condizioni nelle policy IAM per fornire l'accesso a ciascun gruppo.

Nota

Le policy basate su tag non vanno bene per limitare le seguenti chiamate API:

  • DeleteImageVersione

  • DescribeImageversione

  • ListAlgorithms

  • ListCodeRepository

  • ListCompilationLavori

  • ListEndpointConfigurazioni

  • ListEndpoints

  • ListFlowDefinizioni

  • ListHumanTaskUis

  • ListHyperparameterTuningJobs

  • ListLabelingLavori

  • ListLabelingJobsForSquadra di lavoro

  • ListModelPacchetti

  • ListModels

  • ListNotebookInstanceLifecycleConfigurazioni

  • ListNotebookIstanze

  • ListSubscribedGruppi di lavoro

  • ListTags

  • ListProcessingLavori

  • ListTrainingLavori

  • ListTrainingJobsForHyperParameterTuningJob

  • ListTransformLavori

  • ListWorkteams

  • Cerca

Un semplice esempio può aiutarti a capire come utilizzare i tag per partizionare le risorse. Supponiamo di aver definito due diversi gruppi IAM, denominati DevTeam1 eDevTeam2, nel tuo AWS account. Hai creato anche 10 istanze del notebook. Stai utilizzando 5 istanze del notebook per un progetto. Stai usando le altre 5 per un secondo progetto. Puoi fornire a DevTeam1 le autorizzazioni per effettuare chiamate API sulle istanze del notebook che stai utilizzando per il primo progetto. Puoi consentire a DevTeam2 di effettuare chiamate API sulle istanze del notebook utilizzate per il secondo progetto.

La procedura seguente fornisce un semplice esempio che aiuta a comprendere il concetto di aggiunta di tag. È possibile utilizzarlo per implementare la soluzione descritta nel paragrafo precedente.

Per controllare l'accesso alle chiamate API (esempio)
  1. Aggiungere un tag con la chiave Project e il valore A alle istanze del notebook utilizzate per il primo progetto. Per informazioni sull'aggiunta di tag alle SageMaker risorse, consulta AddTags.

  2. Aggiungere un tag con la chiave Project e il valore B alle istanze del notebook utilizzate per il secondo progetto.

  3. Crea una policy IAM con una condizione ResourceTag che nega l'accesso alle istanze del notebook utilizzate per il secondo progetto e collega questa policy a DevTeam1. Di seguito è riportato un esempio di una policy che rifiuta tutte le chiamate API su qualsiasi istanza del notebook che ha un tag con una chiave Project e un valore B:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:*", "Resource": "*" }, { "Effect": "Deny", "Action": "sagemaker:*", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/Project": "B" } } }, { "Effect": "Deny", "Action": [ "sagemaker:AddTags", "sagemaker:DeleteTags" ], "Resource": "*" } ] }

    Per informazioni su come creare policy IAM e collegarle alle identità, consulta Controllo dell'accesso tramite le policy nella Guida per l'utente di AWS Identity and Access Management .

  4. Crea una policy IAM con una condizione ResourceTag che nega l'accesso alle istanze del notebook utilizzate per il primo progetto e collega questa policy a DevTeam2. Di seguito è riportato un esempio di una policy che rifiuta tutte le chiamate API su qualsiasi istanza del notebook che ha un tag con una chiave Project e un valore A:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:*", "Resource": "*" }, { "Effect": "Deny", "Action": "sagemaker:*", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/Project": "A" } } }, { "Effect": "Deny", "Action": [ "sagemaker:AddTags", "sagemaker:DeleteTags" ], "Resource": "*" } ] }

Fornire le autorizzazioni per l' SageMakeretichettatura delle risorse

I tag sono etichette di metadati che puoi allegare a determinate risorse. AWS Un tag è costituito da una coppia chiave-valore che fornisce un modo flessibile per annotare le risorse con attributi di metadati per vari casi d'uso dei tag, tra cui ricerca, sicurezza, attribuzione dei costi, controllo degli accessi e automazione. Possono essere utilizzati nelle autorizzazioni e nelle politiche, nelle quote di servizio e nelle integrazioni con altri servizi. AWS I tag possono essere definiti dall'utente o AWS generati durante la creazione di risorse, a seconda che un utente specifichi manualmente i tag personalizzati o che un AWS servizio generi automaticamente un tag.

  • Tag definiti dall'utente in SageMaker: gli utenti possono aggiungere tag quando creano SageMaker risorse utilizzando SageMaker SDK, AWS CLI CLI, SageMaker API, SageMaker console o modelli. AWS CloudFormation

    Nota

    I tag definiti dall'utente possono essere sovrascritti se una risorsa viene successivamente aggiornata e il valore del tag viene modificato o sostituito. Ad esempio, un lavoro di formazione creato con {Team: A} potrebbe essere aggiornato in modo errato e ritaggato come {Team: B} e le autorizzazioni consentite potrebbero essere assegnate in modo errato. Pertanto, è necessario prestare attenzione quando si consente agli utenti o ai gruppi di aggiungere tag, poiché potrebbero essere in grado di sovrascrivere i valori dei tag esistenti. È buona prassi stabilire un ambito rigoroso delle autorizzazioni dei tag e utilizzare le condizioni IAM per controllare le capacità di tagging.

  • AWS tag generati in SageMaker: tagga SageMaker automaticamente determinate risorse che crea. Ad esempio, Studio e Studio Classic assegnano automaticamente il sagemaker:domain-arn tag alle SageMaker risorse che creano. L'etichettatura di nuove risorse con il Domain ARN fornisce la tracciabilità della provenienza di risorse SageMaker come lavori di formazione, modelli ed endpoint. Per un controllo e un tracciamento più accurati, le nuove risorse ricevono tag aggiuntivi come:

    • sagemaker:user-profile-arn- L'ARN del profilo utente che ha creato la risorsa. Ciò consente di tracciare le risorse create da utenti specifici.

    • sagemaker:space-arn- L'ARN dello spazio in cui è stata creata la risorsa. Ciò consente di raggruppare e isolare le risorse per spazio.

    Nota

    AWS i tag generati non possono essere modificati dagli utenti.

Per informazioni generali sull'etichettatura AWS delle risorse e sulle migliori pratiche, consulta Etichettare le AWS risorse. Per informazioni sui principali casi d'uso dell'etichettatura, consulta Casi d'uso dell'etichettatura.

Concedi l'autorizzazione ad aggiungere tag durante la creazione di risorse SageMaker

Per consentire agli utenti (tag definiti dall'utente) o a Studio e Studio Classic (tag AWS generati) di aggiungere tag a nuove SageMaker risorse al momento della creazione, le loro autorizzazioni IAM devono includere entrambe:

  • L'autorizzazione di SageMaker creazione di base per quel tipo di risorsa.

  • L'sagemaker:AddTagsautorizzazione.

Ad esempio, consentire a un utente di creare un processo di SageMaker formazione e di etichettarlo richiederebbe la concessione di autorizzazioni per sagemaker:CreateTrainingJob e. sagemaker:AddTags

Importante

Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon devono inoltre concedere le autorizzazioni per aggiungere tag a tali risorse. L'autorizzazione per aggiungere tag alle risorse è necessaria perché Studio e Studio Classic taggano automaticamente tutte le risorse che creano. Se una policy IAM consente a Studio e Studio Classic di creare risorse ma non consente l'aggiunta di tag, si possono verificare errori AccessDenied "" durante il tentativo di creare risorse.

AWS Policy gestite per Amazon SageMakerche danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Gli amministratori associano queste autorizzazioni IAM ai ruoli AWS IAM assegnati all'utente per i tag definiti dall'utente o al ruolo di esecuzione utilizzato da Studio o Studio Classic per i tag generati. AWS Per istruzioni sulla creazione e l'applicazione di policy IAM personalizzate, consulta Creazione di policy IAM (console).

Nota

L'elenco delle operazioni di creazione di SageMaker risorse è disponibile nella documentazione dell'SageMaker API cercando le azioni che iniziano conCreate. Queste azioni di creazione, come CreateTrainingJob eCreateEndpoint, sono le operazioni che creano nuove SageMaker risorse.

Aggiungi le autorizzazioni relative ai tag a determinate azioni di creazione

Concedi l'sagemaker:AddTagsautorizzazione con vincoli allegando una politica IAM aggiuntiva alla politica di creazione delle risorse originale. La seguente politica di esempio consentesagemaker:AddTags, ma la limita solo a determinate azioni di creazione di SageMaker risorse, come. CreateTrainingJob

{ "Sid": "AllowAddTagsForCreateOperations", "Effect": "Allow", "Action": [ "sagemaker:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:TaggingAction": "CreateTrainingJob" } } }

La condizione della policy si limita sagemaker:AddTags all'utilizzo insieme a specifiche azioni di creazione. In questo approccio, la politica di creazione dei permessi rimane invariata mentre una politica aggiuntiva fornisce un sagemaker:AddTags accesso limitato. Questa condizione impedisce l'sagemaker:AddTagsautorizzazione generalizzata, limitandola esclusivamente alle azioni di creazione che richiedono l'aggiunta di tag. Ciò implementa il privilegio minimo per consentendolo solo per casi d'sagemaker:AddTagsuso specifici di creazione di risorse. SageMaker

Esempio: consenti l'autorizzazione dei tag a livello globale e limita le azioni di creazione a un dominio

In questo esempio di policy IAM personalizzata, le prime due istruzioni illustrano l'utilizzo di tag per tracciare la creazione di risorse, ovvero consentire l'sagemaker:CreateModelazione su tutte le risorse e contrassegnare tali risorse quando viene utilizzata tale azione. La terza dichiarazione dimostra come i valori dei tag possono essere utilizzati per controllare le operazioni sulle risorse. In questo caso, impedisce la creazione di SageMaker risorse etichettate con un ARN di dominio specifico, limitando l'accesso in base al valore del tag.

In particolare:

  • La prima istruzione consente l'CreateModelazione su qualsiasi risorsa ()*.

  • La seconda istruzione consente l'sagemaker:AddTagsazione, ma solo quando la chiave di sagemaker:TaggingAction condizione è ugualeCreateModel. Ciò limita l'sagemaker:AddTagsazione solo quando viene utilizzata per etichettare un modello appena creato.

  • La terza istruzione nega qualsiasi azione SageMaker create (Create*) su qualsiasi risorsa (*), ma solo quando la risorsa ha un tag sagemaker:domain-arn uguale a un domain-arn ARN di dominio specifico,.

{ "Statement":[ { "Effect":"Allow", "Action":[ "sagemaker:CreateModel" ], "Resource":"*" }, { "Effect":"AllowTagging", "Action":[ "sagemaker:AddTags" ], "Resource":"*", "Condition":{ "String":{ "sagemaker:TaggingAction":[ "CreateModel" ] } } }, { "Sid":"IsolateDomain", "Effect":"Deny", "Resource":"*", "Action":[ "sagemaker:Create*" ], "Condition":{ "StringEquals":{ "aws:ResourceTag/sagemaker:domain-arn":"domain-arn" } } } ] }

Limita l'accesso alle risorse ricercabili con condizioni di visibilità

Utilizza le condizioni di visibilità per limitare l'accesso degli utenti a risorse contrassegnate specifiche all'interno di un AWS account. I tuoi utenti possono accedere solo alle risorse per le quali dispongono delle autorizzazioni. Quando gli utenti effettuano ricerche tra le proprie risorse, possono limitare i risultati della ricerca a risorse specifiche.

Potresti volere che i tuoi utenti vedano e interagiscano solo con le risorse associate a domini Amazon SageMaker Studio o Amazon SageMaker Studio Classic specifici. Puoi utilizzare le condizioni di visibilità per limitare il loro accesso a uno o più domini.

{ "Sid": "SageMakerApis", "Effect": "Allow", "Action": "sagemaker:Search", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:SearchVisibilityCondition/Tags.sagemaker:example-domain-arn/EqualsIfExists": "arn:aws:sagemaker:Regione AWS:111122223333:domain/example-domain-1", "sagemaker:SearchVisibilityCondition/Tags.sagemaker:example-domain-arn/EqualsIfExists": "arn:aws:sagemaker:Regione AWS:111122223333:domain/example-domain-2" } } }

Il formato generale di una condizione di visibilità è"sagemaker:SearchVisibilityCondition/Tags.key": "value". È possibile fornire la coppia chiave-valore per qualsiasi risorsa etichettata.

{ "MaxResults": number, "NextToken": "string", "Resource": "string", # Required Parameter "SearchExpression": { "Filters": [ { "Name": "string", "Operator": "string", "Value": "string" } ], "NestedFilters": [ { "Filters": [ { "Name": "string", "Operator": "string", "Value": "string" } ], "NestedPropertyName": "string" } ], "Operator": "string", "SubExpressions": [ "SearchExpression" ] }, "IsCrossAccount": "string", "VisibilityConditions" : [ List of conditions for visibility {"Key": "Tags.sagemaker:example-domain-arn", "Value": "arn:aws:sagemaker:Regione AWS:111122223333:domain/example-domain-1"}, {"Key": "Tags.sagemaker:example-domain-arn", "Value": "arn:aws:sagemaker:Regione AWS:111122223333:domain/example-domain-2"} ] ], "SortBy": "string", "SortOrder": "string" }

La condizione di visibilità all'interno utilizza la stessa "sagemaker:SearchVisibilityCondition/Tags.key": "value" formattazione specificata nella politica. Gli utenti possono specificare le coppie chiave-valore utilizzate per qualsiasi risorsa etichettata.

Se un utente include il VisibilityConditions parametro nella richiesta di ricerca, ma la politica di accesso che si applica a tale utente non contiene alcuna chiave per le condizioni corrispondenti specificataVisibilityConditions, la Search richiesta è comunque consentita e verrà eseguita.

Se un VisibilityConditions parametro non è specificato nella richiesta dell'API di ricerca dell'utente, ma la politica di accesso che si applica a quell'utente contiene chiavi di condizione relative aVisibilityConditions, la Search richiesta dell'utente viene rifiutata.