Exemples de politiques SageMaker basées sur l'identité Amazon - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples de politiques SageMaker basées sur l'identité Amazon

Par défaut, les utilisateurs et les rôles IAM ne sont pas autorisés à créer ou modifier les ressources SageMaker . Ils ne peuvent pas non plus exécuter des tâches à l’aide de AWS Management Console, AWS CLI ou de l’API AWS. Un administrateur IAM doit créer des politiques IAM autorisant les utilisateurs et les rôles à exécuter des opérations d'API spécifiques sur les ressources spécifiées dont ils ont besoin. Il doit ensuite attacher ces politiques aux utilisateurs ou aux groupes IAM ayant besoin de ces autorisations. Pour savoir comment attacher des politiques à un utilisateur ou un groupe , veuillez consulter Ajout et suppression d'autorisations d'identité IAM dans le Guide de l'utilisateur IAM.

Pour savoir comment créer une politique IAM basée sur l’identité à l’aide de ces exemples de documents de politique JSON, consultez Création de politiques dans l’onglet JSON dans le Guide de l’utilisateur IAM.

Bonnes pratiques en matière de politiques

Les politiques basées sur l'identité déterminent si quelqu'un peut créer, accéder ou supprimer SageMaker des ressources dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :

  • Démarrer avec AWS gérées et évoluez vers les autorisations de moindre privilège - Pour commencer à accorder des autorisations à vos utilisateurs et charges de travail, utilisez les politiques gérées AWS qui accordent des autorisations dans de nombreux cas d’utilisation courants. Elles sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire encore les autorisations en définissant des politiques gérées par le client AWS qui sont spécifiques à vos cas d’utilisation. Pour de plus amples informations, consultez AWS Politiques gérées ou AWS Politiques gérées pour les activités professionnelles dans le Guide de l'utilisateur IAM.

  • Accorder les autorisations de moindre privilège - Lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées autorisations de moindre privilège. Pour plus d’informations sur l’utilisation d’IAM pour appliquer des autorisations, consultez Politiques et autorisations dans IAM dans le Guide de l’utilisateur IAM.

  • Utiliser des conditions dans les politiques IAM pour restreindre davantage l’accès - Vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l’accès aux actions de service si elles sont utilisées via un Service AWS spécifique, comme AWS CloudFormation. Pour plus d’informations, consultez Conditions pour éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.

  • Utilisez IAM Access Analyzer pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles - IAM Access Analyzer valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez Validation de politique IAM Access Analyzer dans le Guide de l’utilisateur IAM.

  • Authentification multifactorielle (MFA) nécessaire : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root dans votre Compte AWS, activez l’authentification multifactorielle pour une sécurité renforcée. Pour exiger le MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez Configuration de l’accès aux API protégé par MFA dans le Guide de l’utilisateur IAM.

Pour plus d’informations sur les bonnes pratiques dans IAM, consultez Bonnes pratiques de sécurité dans IAM dans le Guide de l’utilisateur IAM.

Utilisation de la console SageMaker

Pour accéder à la SageMaker console Amazon, vous devez disposer d'un ensemble minimal d'autorisations. Ces autorisations doivent vous permettre de répertorier et de consulter les informations relatives aux ressources SageMaker de votre compte AWS. Si vous créez une stratégie basée sur l’identité qui est plus restrictive que l’ensemble minimum d’autorisations requis, la console ne fonctionnera pas comme prévu pour les entités (utilisateurs ou rôles) tributaires de cette stratégie.

Pour garantir que ces entités peuvent toujours utiliser la SageMaker console, associez également la politique AWS gérée suivante aux entités. Pour en savoir plus, consultez Ajouter des autorisations à un utilisateur dans le guide de l’utilisateur IAM.

Vous n'avez pas besoin d'accorder les autorisations minimales de console pour les utilisateurs qui effectuent des appels uniquement à l'interface AWS CLI ou API AWS. Autorisez plutôt l’accès à uniquement aux actions qui correspondent à l’opération d’API que vous tentez d’effectuer.

Autorisations requises pour utiliser la SageMaker console Amazon

Le tableau de référence des autorisations répertorie les opérations de SageMaker l'API Amazon et indique les autorisations requises pour chaque opération. Pour plus d'informations sur les opérations de SageMaker l'API Amazon, consultezAutorisations SageMaker d'API Amazon : référence sur les actions, les autorisations et les ressources.

Pour utiliser la SageMaker console Amazon, vous devez accorder des autorisations pour des actions supplémentaires. Plus précisément, la console a besoin d'autorisations qui autorisent les actions ec2 pour afficher les sous-réseaux, les VPC et les groupes de sécurité. Le cas échéant, la console nécessite l'autorisation de créer des rôles d'exécution pour des tâches telles que CreateNotebook, CreateTrainingJob et CreateModel. Accordez ces autorisations avec la politique d'autorisation suivante :

{ "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" } } } ] }

Autorisations requises pour utiliser la console Amazon SageMaker Ground Truth

Pour utiliser la console Amazon SageMaker Ground Truth, vous devez accorder des autorisations pour des ressources supplémentaires. Plus précisément, la console a besoin d'autorisations pour AWS Marketplace afin d'afficher les abonnements, d'opérations Amazon Cognito pour gérer votre main-d'œuvre privée, d'actions Amazon S3 pour accéder à vos fichiers d'entrée et de sortie, et d'actions AWS Lambda pour répertorier et invoquer des fonctions. Accordez ces autorisations avec la politique d'autorisation suivante :

{ "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": "*" } ] }

Autorisations requises pour utiliser la console Amazon Augmented AI (version préliminaire)

Pour utiliser la console Augmented AI, vous devez accorder des autorisations pour des ressources supplémentaires. Accordez ces autorisations avec la politique d'autorisation suivante :

{ "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" ] } } } ] }

Autoriser les utilisateurs à afficher leurs propres autorisations

Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques en ligne et gérées attachées à leur identité d’utilisateur. Cette politique inclut les autorisations nécessaires pour réaliser cette action sur la console ou par programmation à l’aide de l’AWS CLI ou de l’API 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": "*" } ] }

Contrôlez la création de SageMaker ressources à l'aide de clés de condition

Contrôlez l'accès détaillé pour permettre la création de SageMaker ressources à l'aide de clés de condition SageMaker spécifiques. Pour obtenir des informations sur l'utilisation de clés de condition dans des politiques IAM, veuillez consulter Éléments de politique JSON IAM : Condition dans le Guide de l'utilisateur IAM.

Les clés de condition, ainsi que les actions d'API associées, et les liens vers la documentation pertinente sont répertoriés dans la section Clés de SageMaker condition du guide de l'utilisateur IAM.

Les exemples suivants montrent comment utiliser les clés de SageMaker condition pour contrôler l'accès.

Contrôlez l'accès aux SageMaker ressources à l'aide des clés de condition du système de fichiers

SageMaker training fournit une infrastructure sécurisée dans laquelle l'algorithme d'entraînement peut s'exécuter, mais dans certains cas, vous souhaiterez peut-être renforcer votre défense en profondeur. Par exemple, vous minimisez le risque d'exécuter du code non approuvé dans votre algorithme ou vous avez des mandats de sécurité spécifiques dans votre organisation. Pour ces scénarios, vous pouvez utiliser les clés de condition spécifiques au service suivantes dans l'élément Condition d'une politique IAM pour limiter l'utilisateur à des systèmes de fichiers, des répertoires, des modes d'accès (lecture/écriture, lecture seule) et des groupes de sécurité spécifiques.

Limitation d'un utilisateur IAM à des répertoires et des modes d'accès spécifiques

La politique ci-dessous limite l'accès des utilisateurs aux /sagemaker/xgboost-dm/validation répertoires /sagemaker/xgboost-dm/train et d'un système de fichiers EFS à ro (lecture seule) : AccessMode

Note

Lorsqu'un répertoire est autorisé, tous ses sous-répertoires sont également accessibles par l'algorithme d'entraînement. Les autorisations POSIX sont ignorées.

{ "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" } } } ] }

Limitation d'un utilisateur à un système de fichiers spécifique

Pour empêcher un algorithme malveillant qui utilise un client d'espace utilisateur d'accéder directement à tout système de fichiers dans votre compte, vous pouvez limiter le trafic réseau en autorisant le trafic entrant à partir d'un groupe de sécurité spécifique. Dans l'exemple suivant, l'utilisateur peut uniquement utiliser le groupe de sécurité spécifié pour accéder au système de fichiers :

{ "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" ] } } } ] }

Bien que l'exemple ci-dessus puisse limiter un algorithme à un système de fichiers spécifique, il n'empêche pas un algorithme d'accéder à un répertoire au sein de ce système de fichiers à l'aide du client d'espace utilisateur. Pour pallier à cela, vous pouvez :

  • Vous assurer que le système de fichiers contient uniquement des données auxquelles vous autorisez vos utilisateurs à accéder

  • Créer un rôle IAM qui limite vos utilisateurs au lancement de tâches d'entraînement avec des algorithmes issus de référentiels ECR approuvés

Pour plus d'informations sur l'utilisation des rôles avec SageMaker, consultez la section SageMaker Rôles.

Limitation de l'entraînement à un VPC spécifique

Limitez un utilisateur AWS à la création de tâches d'entraînement à partir d'un Amazon VPC. Lorsqu'une tâche d'entraînement est créée au sein d'un VPC, vous pouvez utiliser les journaux de flux VPC pour contrôler l'ensemble du trafic vers et depuis le cluster d'entraînement. Pour obtenir des informations sur l'utilisation des journaux de flux VPC, veuillez consulter Journaux de flux VPC dans le Guide de l'utilisateur Amazon Virtual Private Cloud.

La politique suivante impose la création d'une tâche d'entraînement par un utilisateur appelant CreateTrainingJob depuis 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" } } } ] }

Restriction de l'accès aux types de main-d'œuvre pour les tâches d'étiquetage Ground Truth et les flux de vérification humaine Amazon A2I

Les équipes de travail d'Amazon SageMaker Ground Truth et d'Amazon Augmented AI appartiennent à l'un des trois types de personnel suivants : public (avec Amazon Mechanical Turk), privé et fournisseur. Pour restreindre l'accès des utilisateurs à une équipe de travail spécifique à l'aide de l'un de ces types ou de l'ARN de l'équipe de travail, utilisez les clés de condition sagemaker:WorkteamType et/ou sagemaker:WorkteamArn. Pour la clé de condition sagemaker:WorkteamType, utilisez les opérateurs de condition de chaîne. Pour la clé de condition sagemaker:WorkteamArn, utilisez les opérateurs de condition Amazon Resource Name (ARN). Si l'utilisateur tente de créer une tâche d'étiquetage avec une équipe de travail restreinte, SageMaker renvoie un message d'erreur de refus d'accès.

Les politiques ci-dessous illustrent différentes façons d'utiliser les clés de condition sagemaker:WorkteamArn et sagemaker:WorkteamType avec des opérateurs de condition appropriés et des valeurs de condition valides.

L'exemple suivant utilise la clé de condition sagemaker:WorkteamType avec l'opérateur de condition StringEquals pour restreindre l'accès à une équipe de travail public. Il accepte les valeurs de condition dans le format suivant : workforcetype-crowd, où workforcetype peut être égal public, private ou vendor.

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

Les politiques suivantes montrent comment restreindre l'accès à une équipe de travail public à l'aide de la clé de condition sagemaker:WorkteamArn. Le premier montre comment l'utiliser avec une expression régulière IAM valide de l'ARN de l'équipe de travail et l'opérateur de condition ArnLike. La seconde montre comment l'utiliser avec l'opérateur de condition ArnEquals et l'ARN de l'équipe de travail.

{ "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" } } } ] }

Application du chiffrement des données d'entrée

La politique suivante impose à un utilisateur de spécifier une clé AWS KMS pour chiffrer les données d'entrée lors de la création de tâches d'entraînement, de réglage des hyperparamètres et d'étiquetage à l'aide de la clé de 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" } } } ] }

Application du chiffrement du volume de stockage d'une instance de bloc-notes

La politique suivante impose à un utilisateur de spécifier une clé AWS KMS pour chiffrer le volume de stockage attaché lors de la création ou de la mise à jour d'une instance de bloc-notes à l'aide de la clé de condition sagemaker:VolumeKmsKey :

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

Application de l'isolement du réseau pour les tâches d'entraînement

La politique suivante impose à un utilisateur d'activer l'isolement du réseau lors de la création de tâches d'entraînement à l'aide de la clé de condition sagemaker:NetworkIsolation :

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

Application d'un type d'instance spécifique pour les tâches d'entraînement

La politique suivante impose à un utilisateur d'utiliser un type d'instance spécifique lors de la création de tâches d'entraînement à l'aide de la clé de condition sagemaker:InstanceTypes :

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

Application d'un accélérateur EI spécifique pour les tâches d'entraînement

La politique suivante impose à un utilisateur d'utiliser un accélérateur Elastic Inference (EI) spécifique, si un accélérateur est fourni, lors de la création ou de la mise à jour d'instances de bloc-notes et lors de la création de configurations de point de terminaison à l'aide de la clé de condition 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"] } } } ] }

Application de la désactivation de l'accès Internet et de l'accès racine pour la création d'instances de bloc-notes

Vous pouvez désactiver l'accès Internet et l'accès racine aux instances de bloc-notes pour mieux les sécuriser. Pour de plus amples informations sur le contrôle de l'accès racine à une instance de bloc-notes, veuillez consulter Contrôler l'accès root à une instance de SageMaker bloc-notes. Pour de plus amples informations sur la désactivation de l'accès Internet pour une instance de bloc-notes, veuillez consulter Connecter une instance de bloc-notes dans un VPC à des ressources externes.

La politique suivante exige qu'un utilisateur désactive l'accès réseau lors de la création de l'instance, et désactive l'accès racine lors de la création ou de la mise à jour d'une instance de bloc-notes.

{ "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" } } } ] }

Contrôlez l'accès à l' SageMaker API à l'aide de politiques basées sur l'identité

Pour contrôler l'accès aux appels d' SageMaker API et aux appels aux points de terminaison SageMaker hébergés, utilisez des politiques IAM basées sur l'identité.

Limitez l'accès à SageMaker l'API et au runtime aux appels provenant de votre VPC

Si vous configurez un point de terminaison d'interface dans votre VPC, les personnes extérieures au VPC peuvent toujours se connecter à l' SageMaker API et exécuter sur Internet, sauf si vous associez une politique IAM qui restreint l'accès aux appels provenant du VPC à tous les utilisateurs et groupes ayant accès à vos ressources. SageMaker Pour plus d'informations sur la création d'un point de terminaison d'interface VPC pour l' SageMaker API et le runtime, consultez. Connectez-vous à SageMaker Within à votre VPC

Important

Si vous appliquez une politique IAM similaire à l'une des suivantes, les utilisateurs ne peuvent pas accéder aux SageMaker API spécifiées via la console.

Pour restreindre l'accès aux seules connexions effectuées depuis votre VPC, créez une politique AWS Identity and Access Management qui restreint l'accès aux seuls appels provenant de votre VPC. Ajoutez ensuite cette politique à chaque AWS Identity and Access Management utilisateur, groupe ou rôle utilisé pour accéder à l' SageMaker API ou au runtime.

Note

Cette politique autorise les connexions uniquement pour les mandataires dans un sous-réseau où vous avez créé un point de terminaison d'interface.

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

Si vous souhaitez limiter l'accès à l'API accès aux appels effectués à l'aide du point de terminaison d'interface, utilisez la clé de condition aws:SourceVpce au lieu de 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" ] } } } ] }

Limiter l'accès aux appels d' SageMaker API et d'exécution par adresse IP

Pour autoriser l'accès aux appels d' SageMaker API et aux appels d'exécution uniquement à partir des adresses IP d'une liste que vous spécifiez, associez une politique IAM qui refuse l'accès à l'API sauf si l'appel provient d'une adresse IP de la liste à chaque AWS Identity and Access Management utilisateur, groupe ou rôle utilisé pour accéder à l'API ou à l'environnement d'exécution. Pour obtenir des informations sur la création de politiques IAM, veuillez consulter Création de politiques IAM dans le Guide de l'utilisateur AWS Identity and Access Management. Pour spécifier la liste des adresses IP que vous souhaitez voir accéder à l'appel d'API, utilisez l'opérateur de condition IpAddress et la clé de contexte de condition aws:SourceIP. Pour obtenir des informations sur les opérateurs de condition IAM, veuillez consulter Éléments de politique JSON IAM : Opérateurs de condition dans le Guide de l'utilisateur AWS Identity and Access Management. Pour obtenir des informations sur les clés de contexte de condition IAM, veuillez consulter Clés de contexte de condition globale AWS.

Par exemple, la politique suivante autorise l'accès à CreateTrainingJob uniquement depuis des adresses IP dans les plages 192.0.2.0-192.0.2.255 et 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" ] } } } ] }

Limitez l'accès à une instance de bloc-notes par adresse IP

Pour autoriser l'accès à une instance de bloc-notes uniquement depuis une liste d'adresses IP spécifiée par vous, attachez une politique IAM qui refuse l'accès à CreatePresignedNotebookInstanceUrl, sauf si l'appel provient de l'une adresse IP de la liste et est destiné à chaque utilisateur, groupe ou rôle AWS Identity and Access Management utilisé pour accéder à l'instance de bloc-notes. Pour obtenir des informations sur la création de politiques IAM, veuillez consulter Création de politiques IAM dans le Guide de l'utilisateur AWS Identity and Access Management. Pour spécifier la liste des adresses IP que vous souhaitez voir accéder à l'instance de bloc-notes, utilisez l'opérateur de condition IpAddress et la clé de contexte de condition aws:SourceIP. Pour obtenir des informations sur les opérateurs de condition IAM, veuillez consulter Éléments de politique JSON IAM : Opérateurs de condition dans le Guide de l'utilisateur AWS Identity and Access Management. Pour obtenir des informations sur les clés de contexte de condition IAM, veuillez consulter Clés de contexte de condition globale AWS.

Par exemple, la politique suivante autorise l'accès à une instance de bloc-notes uniquement depuis des adresses IP dans les plages 192.0.2.0-192.0.2.255 et 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 politique restreint l'accès à l'appel vers CreatePresignedNotebookInstanceUrl et à l'URL renvoyée par l'appel. La politique restreint également l'accès à l'ouverture d'une instance de bloc-notes dans la console et est appliquée à chaque requête et WebSocket trame HTTP qui tente de se connecter à l'instance de bloc-notes.

Note

L'utilisation de cette méthode pour filtrer par adresse IP est incompatible lors de la connexion SageMaker via un point de terminaison d'interface VPC. . Pour obtenir des informations sur la restriction d'accès à une instance de bloc-notes lors de la connexion via un point de terminaison d'interface VPC, consultez Connexion à une instance de bloc-notes via un point de terminaison d'interface VPC..

Contrôlez l'accès aux SageMaker ressources à l'aide de balises

Spécifiez des balises dans une politique IAM pour contrôler l'accès aux groupes de SageMaker ressources. Utilisez des balises pour mettre en œuvre le contrôle d'accès par attributs (ABAC). L'utilisation de balises vous permet de partitionner l'accès aux ressources entre des groupes d'utilisateurs spécifiques. Vous pouvez avoir une équipe ayant accès à un groupe de ressources et une autre équipe ayant accès à un autre ensemble de ressources. Vous pouvez fournir des conditions ResourceTag dans des politiques IAM pour fournir un accès à chaque groupe.

Note

Les politiques basées sur des balises ne peuvent pas restreindre les appels d'API suivants :

  • DeleteImageVersion

  • DescribeImageVersion

  • ListAlgorithms

  • ListCodeRepositories

  • ListCompilationJobs

  • ListEndpointConfigs

  • ListEndpoints

  • ListFlowDefinitions

  • ListHumanTaskUis

  • ListHyperparameterTuningJobs

  • ListLabelingJobs

  • ListLabelingJobsForWorkteam

  • ListModelPackages

  • ListModels

  • ListNotebookInstanceLifecycleConfigs

  • ListNotebookInstances

  • ListSubscribedWorkteams

  • ListTags

  • ListProcessingJobs

  • ListTrainingJobs

  • ListTrainingJobsForHyperParameterTuningJob

  • ListTransformJobs

  • ListWorkteams

  • Search

Un exemple simple peut vous aider à comprendre comment utiliser les balises pour partitionner les ressources. Supposons que vous ayez défini deux groupes IAM différents nommés DevTeam1 et DevTeam2 dans votre compte AWS. Vous avez également créé 10 instances de bloc-notes. Vous utilisez 5 instances de bloc-notes pour un projet. Vous utilisez les 5 autres pour un second projet. Vous pouvez fournir à DevTeam1 des autorisations pour effectuer des appels d'API sur les instances de bloc-notes que vous utilisez pour le premier projet. Vous pouvez autoriser DevTeam2 à effectuer des appels d'API sur les instances de bloc-notes utilisées pour le second projet.

La procédure suivante fournit un exemple simple qui vous aidera à comprendre le concept d'ajout de balises. Vous pouvez l'utiliser pour implémenter la solution décrite dans le paragraphe précédent.

Pour contrôler l'accès aux appels d'API (exemple)
  1. Ajoutez une balise avec la clé Project et la valeur A aux instances de bloc-notes utilisées pour le premier projet. Pour plus d'informations sur l'ajout de balises aux SageMaker ressources, consultez AddTags.

  2. Ajoutez une balise avec la clé Project et la valeur B aux instances de bloc-notes utilisées pour le second projet.

  3. Créez une politique IAM avec une condition ResourceTag qui refuse l'accès aux instances de bloc-notes utilisées pour le second projet, et associez cette politique à DevTeam1. Voici un exemple de politique qui refuse tous les appels d'API sur n'importe quelle instance de bloc-notes avec une balise comportant une clé Project et une valeur 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": "*" } ] }

    Pour obtenir des informations sur la création de politiques IAM et leur attachement à des identités, veuillez consulter Contrôle de l'accès à l'aide des politiques dans le Guide de l'utilisateur AWS Identity and Access Management.

  4. Créez une politique IAM avec une condition ResourceTag qui refuse l'accès aux instances de bloc-notes utilisées pour le premier projet, et associez cette politique à DevTeam2. Voici un exemple de politique qui refuse tous les appels d'API sur n'importe quelle instance de bloc-notes avec une balise comportant une clé Project et une valeur 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": "*" } ] }

Fournir des autorisations pour le balisage des SageMaker ressources lors de leur création

De nombreuses SageMaker opérations Amazon permettent à vos utilisateurs de spécifier des balises lorsque vous créez une ressource. Utilisez des balises de ressource pour mettre en œuvre le contrôle d'accès par attributs (ABAC). L'utilisation de balises vous permet de partitionner l'accès aux ressources entre des groupes d'utilisateurs spécifiques. Vous pouvez avoir une équipe ayant accès à un groupe de ressources et une autre équipe ayant accès à un autre ensemble de ressources. Vous pouvez fournir des conditions ResourceTag dans des politiques IAM pour fournir un accès à chaque groupe.

Vous devez donner à vos utilisateurs l'accès aux autorisations qu'ils utilisent pour créer la ressource. Pour les utilisateurs qui ont besoin de créer une tâche de traitement, vous devez leur donner accès à sagemaker:CreateProcessingJob dans la politique. Si vos utilisateurs balisent les ressources qu'ils créent, vous devez également leur accorder des autorisations de balisage.

Important

Vous pouvez uniquement autoriser vos utilisateurs à ajouter des balises aux ressources qu'ils créent. Ils ne peuvent pas ajouter de balises à des ressources déjà créées.

Voici les opérations dans lesquelles vous ne pouvez pas leur donner de ressources pour ajouter des balises :

  • DeleteImageVersion

  • DescribeImageVersion

  • ListAlgorithms

  • ListCodeRepositories

  • ListCompilationJobs

  • ListEndpointConfigs

  • ListEndpoints

  • ListFlowDefinitions

  • ListHumanTaskUis

  • ListHyperparameterTuningJobs

  • ListLabelingJobs

  • ListLabelingJobsForWorkteam

  • ListModelPackages

  • ListModels

  • ListNotebookInstanceLifecycleConfigs

  • ListNotebookInstances

  • ListSubscribedWorkteams

  • ListTags

  • ListProcessingJobs

  • ListTrainingJobs

  • ListTrainingJobsForHyperParameterTuningJob

  • ListTransformJobs

  • ListWorkteams

  • Search

Vous pouvez contrôler l'accès aux opérations que l'utilisateur peut baliser ou aux balises qu'il peut utiliser. Vous pouvez spécifier des autorisations pour les cas d'utilisation suivants :

  • Ajout d'autorisations pour étiqueter les ressources créées via des opérations quelconques et d'autorisations pour utiliser une balise quelconque

  • Ajout d'autorisations pour étiqueter les ressources créées via des opérations spécifiques et d'autorisations pour utiliser une balise quelconque

  • Ajout d'autorisations pour étiqueter les ressources créées via des opérations quelconques et d'autorisations pour utiliser des balises spécifiques

  • Ajout d'autorisations pour étiqueter les ressources créées via des opérations spécifiques et d'autorisations pour utiliser des balises spécifiques

Permissions for any operation and any tag

Ajoutez la déclaration suivante à une politique IAM pour autoriser vos utilisateurs à ajouter une balise quelconque pour une opération quelconque.

{ "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:Create*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sagemaker:AddTags" ], "Resource": "arn:aws:sagemaker:region:account:*/*", "Condition": { "Null": { "sagemaker:TaggingAction" : "false" } } } ] }
Permissions for a specific operation with specific tags

La déclaration suivante autorise l'utilisateur à ajouter la balise cc123 aux ressources créées à l'aide de l'opération CreateModel. Vous pouvez modifier cette déclaration en fonction de vos propres besoins et l'ajouter à la politique IAM attachée au rôle de vos utilisateurs.

{ "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateModel" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/cost-center": [ "cc123" ] }, "ForAnyValue:StringEquals": { "aws:TagKeys": [ "purpose" ] } } }, { "Effect": "Allow", "Action": [ "sagemaker:AddTags" ], "Resource": "arn:aws:sagemaker:region:account:*/*", "Condition": { "Null": { "sagemaker:TaggingAction" : "false" } } } ] }
Permissions for a specific operation and any tag

La déclaration suivante autorise vos utilisateurs à ajouter une balise quelconque aux ressources créées via l'opération CreateModel.

{ "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateModel" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sagemaker:AddTags" ], "Resource": "arn:aws:sagemaker:region:account:model/*", "Condition": { "String": { "sagemaker:TaggingAction" : [ "CreateModel" ] } } } ] }