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 basées sur l'identité Amazon SageMaker AI
Par défaut, IAM les utilisateurs et les rôles ne sont pas autorisés à créer ou à modifier des ressources d' SageMaker IA. Ils ne peuvent pas non plus effectuer de tâches à l'aide du AWS Management Console AWS CLI, ou AWS API. Un IAM administrateur doit créer des IAM politiques qui accordent aux utilisateurs et aux rôles l'autorisation d'effectuer des API opérations spécifiques sur les ressources spécifiques dont ils ont besoin. Il doit ensuite attacher ces stratégies aux utilisateurs ou aux groupes IAM ayant besoin de ces autorisations. Pour savoir comment associer des politiques à un IAM utilisateur ou à un groupe, consultez la section Ajouter et supprimer des autorisations IAM d'identité dans la référence d'autorisation de service.
Pour savoir comment créer une politique IAM basée sur l'identité à l'aide de ces exemples de documents JSON de stratégie, voir Création de politiques sur l'JSONonglet.
Rubriques
- Bonnes pratiques en matière de politiques
- Utilisation de la console SageMaker AI
- Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations
- Contrôlez la création de ressources d' SageMaker IA à l'aide de clés de condition
- Contrôlez l'accès à l' SageMaker IA API en utilisant des politiques basées sur l'identité
- Limitez l'accès à SageMaker l'IA API et aux appels d'exécution par adresse IP
- Limiter l'accès à une instance de bloc-notes par adresse IP
- Contrôlez l'accès aux ressources de SageMaker l'IA à l'aide de balises
- Fournir des autorisations pour le balisage des ressources d' SageMaker IA
- Limitez l'accès aux ressources consultables avec des conditions de visibilité
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 des ressources d' SageMaker IA 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 :
-
Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations à vos utilisateurs et à vos charges de travail, utilisez les politiques AWS gérées qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par les AWS clients spécifiques à vos cas d'utilisation. Pour plus d'informations, consultez les politiques AWS gérées ou les politiques AWS gérées pour les fonctions professionnelles dans le Guide de IAM l'utilisateur.
-
Appliquer les autorisations du moindre privilège : lorsque vous définissez des autorisations à IAM l'aide de politiques, accordez uniquement les autorisations nécessaires à l'exécution d'une 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 IAM pour appliquer des autorisations, consultez la section Politiques et autorisations du Guide de IAM l'utilisateur. IAM
-
Utilisez des conditions dans IAM les politiques pour restreindre davantage l'accès : vous pouvez ajouter une condition à vos politiques pour limiter l'accès aux actions et aux ressources. Par exemple, vous pouvez rédiger une condition de politique pour spécifier que toutes les demandes doivent être envoyées en utilisantSSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que AWS CloudFormation. Pour plus d'informations, voir Éléments IAM JSON de politique : Condition dans le guide de IAM l'utilisateur.
-
Utilisez IAM Access Analyzer pour valider vos IAM politiques afin de garantir des autorisations sécurisées et fonctionnelles. IAM Access Analyzer valide les politiques nouvelles et existantes afin qu'elles soient conformes au langage des IAM politiques (JSON) et IAM aux meilleures pratiques. IAM Access Analyzer fournit plus de 100 vérifications des politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d'informations, consultez la section Valider les politiques avec IAM Access Analyzer dans le guide de l'IAMutilisateur.
-
Exiger l'authentification multifactorielle (MFA) : si vous avez un scénario qui nécessite des IAM utilisateurs ou un utilisateur root Compte AWS, activez-le MFA pour une sécurité supplémentaire. Pour exiger le MFA moment où les API opérations sont appelées, ajoutez MFA des conditions à vos politiques. Pour plus d'informations, consultez la section APIAccès sécurisé avec MFA dans le guide de IAM l'utilisateur.
Pour plus d'informations sur les meilleures pratiques en matière de sécuritéIAM, consultez la section Bonnes pratiques en matière de sécurité IAM dans le Guide de IAM l'utilisateur.
Utilisation de la console SageMaker AI
Pour accéder à la console Amazon SageMaker AI, vous devez disposer d'un ensemble minimal d'autorisations. Ces autorisations doivent vous permettre de répertorier et d'afficher les informations relatives aux ressources d' SageMaker IA de votre AWS compte. Si vous créez une politique basée sur l'identité plus restrictive que les autorisations minimales requises, la console ne fonctionnera pas correctement pour les entités dotées de cette politique. Cela inclut les utilisateurs ou les rôles concernés par cette politique.
Pour garantir que ces entités peuvent toujours utiliser la console SageMaker AI, vous devez également associer la politique AWS gérée suivante aux entités. Pour plus d'informations, voir Ajouter des autorisations à un utilisateur dans la référence d'autorisation de service :
Il n'est pas nécessaire d'accorder des autorisations de console minimales aux utilisateurs qui passent des appels uniquement vers le AWS CLI ou le AWS API. Au lieu de cela, autorisez uniquement l'accès aux actions correspondant à l'APIopération que vous essayez d'effectuer.
Rubriques
Autorisations requises pour utiliser la console Amazon SageMaker AI
Le tableau de référence des autorisations répertorie les API opérations Amazon SageMaker AI et indique les autorisations requises pour chaque opération. Pour plus d'informations sur les API opérations d'Amazon SageMaker AI, consultezAPIAutorisations Amazon SageMaker AI : référence sur les actions, les autorisations et les ressources.
Pour utiliser la console Amazon SageMaker AI, vous devez accorder des autorisations pour des actions supplémentaires. Plus précisément, la console a besoin d'autorisations permettant aux ec2
actions d'afficher des sous-réseaux et VPCs des 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 :
-
le AWS Marketplace pour consulter les abonnements,
-
Opérations Amazon Cognito pour gérer votre personnel privé
-
Actions Amazon S3 pour accéder à vos fichiers d'entrée et de sortie
-
AWS Lambda actions 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" ] } } } ] }
Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations
Cet exemple montre comment créer une stratégie qui permet aux utilisateurs IAM d'afficher les stratégies en ligne et gérées attachées à leur identité d'utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide du AWS CLI ou. AWS API
{ "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 ressources d' SageMaker IA à l'aide de clés de condition
Contrôlez l'accès détaillé pour permettre la création de ressources d' SageMaker IA à l'aide de clés de condition spécifiques à l' SageMaker IA. Pour plus d'informations sur l'utilisation des clés de condition dans IAM les politiques, voir Éléments de IAM JSON politique : condition dans le guide de IAM l'utilisateur.
Les clés de condition, les API actions associées et les liens vers la documentation pertinente sont répertoriés dans la section Clés de condition pour l' SageMaker IA dans la référence d'autorisation de service.
Les exemples suivants montrent comment utiliser les clés de condition de l' SageMaker IA pour contrôler l'accès.
Rubriques
- Contrôlez l'accès aux ressources de l' SageMaker IA à l'aide des clés de condition du système de fichiers
- Restreindre l'entraînement à un objectif spécifique VPC
- Limitez l'accès aux types de main-d'œuvre pour les tâches d'étiquetage Ground Truth et les flux de travail Amazon A2I Human Review
- Appliquer le chiffrement des données d'entrée
- Appliquer l'isolation du réseau pour les tâches de formation
- Appliquer un type d'instance spécifique pour les tâches de formation
- Appliquer la désactivation de l'accès Internet et de l'accès root pour créer des instances de blocs-notes
Contrôlez l'accès aux ressources de l' SageMaker IA à l'aide des clés de condition du système de fichiers
SageMaker La formation à l'IA fournit une infrastructure sécurisée dans laquelle l'algorithme d'entraînement peut être exécuté, 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 dans l'élément Condition d'une IAM politique pour limiter l'utilisateur à :
-
systèmes de fichiers spécifiques
-
annuaires
-
modes d'accès (lecture-écriture, lecture seule)
-
groupes de sécurité
Rubriques
Limiter un IAM utilisateur à des répertoires et à des modes d'accès spécifiques
La politique suivante limite l'accès des utilisateurs aux /sagemaker/xgboost-dm/validation
répertoires /sagemaker/xgboost-dm/train
et d'un système de EFS fichiers ro
(lecture seule) : AccessMode
Note
Lorsqu'un répertoire est autorisé, tous ses sous-répertoires sont également accessibles par l'algorithme d'apprentissage. POSIXles autorisations 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" } } } ] }
Restreindre un utilisateur à un système de fichiers spécifique
Pour empêcher un algorithme malveillant utilisant un client de l'espace utilisateur d'accéder à un système de fichiers directement dans votre compte, vous pouvez restreindre le trafic réseau. Pour limiter ce trafic, autorisez l'entrée uniquement à 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" ] } } } ] }
Cet exemple peut restreindre un algorithme à un système de fichiers spécifique. Toutefois, cela n'empêche pas un algorithme d'accéder à n'importe quel répertoire de ce système de fichiers à l'aide du client de l'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éez un IAM rôle qui limite vos utilisateurs au lancement de tâches de formation à l'aide d'algorithmes provenant de référentiels approuvés ECR
Pour plus d'informations sur l'utilisation des rôles avec l' SageMaker IA, consultez la section Rôles SageMaker IA.
Restreindre l'entraînement à un objectif spécifique VPC
Limitez un AWS utilisateur à la création de postes de formation depuis un AmazonVPC. Lorsqu'une tâche de formation est créée dans unVPC, utilisez les journaux de VPC flux pour surveiller l'ensemble du trafic à destination et en provenance du cluster de formation. Pour plus d'informations sur l'utilisation des journaux de VPC flux, consultez VPCFlow Logs dans le guide de l'utilisateur d'Amazon Virtual Private Cloud.
La politique suivante impose qu'un poste de formation soit créé 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" } } } ] }
Limitez l'accès aux types de main-d'œuvre pour les tâches d'étiquetage Ground Truth et les flux de travail Amazon A2I Human Review
Les équipes de travail Amazon SageMaker Ground Truth et Amazon Augmented AI appartiennent à l'un des trois types de personnel suivants :
-
public (avec Amazon Mechanical Turk)
-
privé
-
fournisseur
Vous pouvez restreindre l'accès des utilisateurs à une équipe de travail spécifique en utilisant l'un de ces types ou l'équipe de travailARN. Pour ce faire, utilisez les touches sagemaker:WorkteamType
et/ou les touches de sagemaker:WorkteamArn
condition. Pour la clé de condition sagemaker:WorkteamType
, utilisez les opérateurs de condition de chaîne. Pour la clé de sagemaker:WorkteamArn
condition, 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 AI renvoie un message d'erreur de refus d'accès.
Les politiques suivantes indiquent différentes manières d'utiliser les clés de sagemaker:WorkteamArn
condition sagemaker:WorkteamType
et 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 au format suivant :
, où workforcetype
-crowdworkforcetype
peut être égal à public
private
, ouvendor
.
{ "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
. La première montre comment l'utiliser avec une IAM variante régulière valide de l'équipe de travail ARN et de l'opérateur de ArnLike
condition. La seconde montre comment l'utiliser avec l'opérateur de ArnEquals
maintenance et l'équipe de travailARN.
{ "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
" } } } ] }
Appliquer le chiffrement des données d'entrée
La politique suivante interdit à un utilisateur de spécifier une AWS KMS clé pour chiffrer les données d'entrée à l'aide de la clé de sagemaker:VolumeKmsKey
condition lors de la création :
-
entraînement
-
réglage des hyperparamètres
-
travaux d'étiquetage
{ "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" } } } ] }
Appliquer l'isolation du réseau pour les tâches de formation
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" } } } ] }
Appliquer un type d'instance spécifique pour les tâches de formation
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.*"] } } } ] }
Appliquer la désactivation de l'accès Internet et de l'accès root pour créer des instances de blocs-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 plus d'informations sur le contrôle de l'accès root à une instance de bloc-notes, consultezContrôler l'accès root à une instance de SageMaker bloc-notes. Pour plus d'informations sur la désactivation de l'accès à Internet pour une instance de bloc-notes, consultezConnecter 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 IA API en utilisant des politiques basées sur l'identité
Pour contrôler l'accès aux API appels basés sur l' SageMaker IA et aux appels aux terminaux hébergés par l' SageMaker IA, utilisez des politiques basées sur l'identitéIAM.
Limitez l'accès à SageMaker l'IA API et au runtime aux appels provenant de votre VPC
Si vous configurez un point de terminaison d'interface dans votre ordinateurVPC, les personnes extérieures VPC peuvent se connecter à l' SageMaker IA API et s'exécuter sur Internet. Pour éviter cela, associez une IAM politique qui restreint l'accès aux appels provenant de l'VPCintérieur du. Ces appels doivent être limités à tous les utilisateurs et groupes ayant accès à vos ressources d' SageMaker IA. Pour plus d'informations sur la création d'un point de terminaison d'VPCinterface pour l' SageMaker IA API et le runtime, consultezConnectez-vous à l' SageMaker IA au sein de votre VPC.
Important
Si vous appliquez une IAM politique similaire à l'une des suivantes, les utilisateurs ne peuvent pas accéder à l' SageMaker IA spécifiée APIs via la console.
Pour restreindre l'accès aux seules connexions établies depuis votre ordinateurVPC, créez une AWS Identity and Access Management politique qui restreint l'accès. Cet accès doit être limité aux seuls appels provenant de votre intérieurVPC. Ajoutez ensuite cette politique à chaque AWS Identity and Access Management utilisateur, groupe ou rôle utilisé pour accéder à l' SageMaker IA API ou à l'environnement d'exécution.
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" } } } ] }
Pour restreindre l'accès aux seuls appels effectués API à l'aide du point de terminaison de l'interface, utilisez la clé de aws:SourceVpce
condition 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" ] } } } ] }
Limitez l'accès à SageMaker l'IA API et aux appels d'exécution par adresse IP
Vous pouvez autoriser l'accès aux API appels SageMaker AI et aux invocations d'exécution uniquement à partir des adresses IP figurant dans une liste que vous spécifiez. Pour ce faire, créez une IAM politique qui refuse l'accès au API sauf si l'appel provient d'une adresse IP de la liste. Attachez ensuite cette politique à chaque AWS Identity and Access Management utilisateur, groupe ou rôle utilisé pour accéder à l'APIenvironnement d'exécution. Pour plus d'informations sur la création IAM de politiques, consultez la section Création de IAM politiques dans le guide de AWS Identity and Access Management l'utilisateur.
Pour spécifier la liste des adresses IP ayant accès à l'APIappel, utilisez :
-
IpAddress
opérateur de condition -
aws:SourceIP
clé de contexte de condition
Pour plus d'informations sur les opérateurs de IAM conditions, voir Éléments de IAM JSON politique : opérateurs de conditions dans le guide de AWS Identity and Access Management l'utilisateur. Pour plus d'informations sur les clés de contexte de IAM condition, consultez la section Clés de contexte de condition AWS globales.
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" ] } } } ] }
Limiter l'accès à une instance de bloc-notes par adresse IP
Vous pouvez autoriser l'accès à une instance de bloc-notes uniquement à partir des adresses IP figurant dans une liste que vous spécifiez. Pour ce faire, créez une IAM politique qui refuse l'accès à CreatePresignedNotebookInstanceUrl
sauf si l'appel provient d'une adresse IP de la liste. Attachez ensuite cette politique à chaque AWS Identity and Access Management utilisateur, groupe ou rôle utilisé pour accéder à l'instance du bloc-notes. Pour plus d'informations sur la création IAM de politiques, consultez la section Création de IAM politiques dans le guide de AWS Identity and Access Management l'utilisateur.
Pour spécifier la liste des adresses IP auxquelles vous souhaitez accéder à l'instance de bloc-notes, utilisez :
-
IpAddress
opérateur de condition -
aws:SourceIP
clé de contexte de condition
Pour plus d'informations sur les opérateurs de IAM conditions, voir Éléments de IAM JSON politique : opérateurs de conditions dans le guide de AWS Identity and Access Management l'utilisateur. Pour plus d'informations sur les clés de contexte de IAM condition, consultez la section Clés de contexte de condition AWS globales.
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 à la fois à l'appel CreatePresignedNotebookInstanceUrl
et à URL celui vers lequel l'appel renvoie. La stratégie restreint également l'accès pour ouvrir une instance bloc-notes dans la console. Il est appliqué pour chaque HTTP demande et chaque WebSocket cadre qui tente de se connecter à l'instance du bloc-notes.
Note
L'utilisation de cette méthode pour filtrer par adresse IP est incompatible lors de la connexion à l' SageMaker IA via un point de terminaison d'VPCinterface. . Pour plus d'informations sur la restriction de l'accès à une instance de bloc-notes lors de la connexion via un point de terminaison d'VPCinterface, consultezConnectez-vous à une instance de bloc-notes via un point de terminaison d'VPCinterface.
Contrôlez l'accès aux ressources de SageMaker l'IA à l'aide de balises
Spécifiez des balises dans une IAM politique pour contrôler l'accès à des groupes de ressources d' SageMaker IA. Utilisez des balises pour implémenter le contrôle d'accès basé sur les 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 définir des ResourceTag
conditions dans IAM les politiques afin de fournir un accès à chaque groupe.
Note
Les politiques basées sur des balises ne permettent pas de restreindre les API appels 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 IAM groupes différents, nommés DevTeam1
etDevTeam2
, dans votre AWS compte. 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 DevTeam1
fournir des autorisations pour passer des API appels sur les instances de bloc-notes que vous utilisez pour le premier projet. Vous pouvez prévoir DevTeam2
de passer des API appels 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 API appels (exemple)
-
Ajoutez une balise avec la clé
Project
et la valeurA
aux instances de bloc-notes utilisées pour le premier projet. Pour plus d'informations sur l'ajout de balises aux ressources d' SageMaker IA, consultezAddTags
. -
Ajoutez une balise avec la clé
Project
et la valeurB
aux instances de bloc-notes utilisées pour le second projet. -
Créez une IAM politique assortie d'une
ResourceTag
condition interdisant l'accès aux instances du bloc-notes utilisées pour le deuxième projet. Attachez ensuite cette politique àDevTeam1
. L'exemple de politique suivant refuse tous les API appels sur toute instance de bloc-notes dont la cléProject
et la valeur sont lesB
suivantes :{ "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 de plus amples informations sur la création de stratégies IAM et leur attachement à des identités, veuillez consulter Contrôle de l'accès à l'aide des stratégies dans le Guide de l'utilisateur AWS Identity and Access Management .
-
Créez une IAM politique assortie d'une
ResourceTag
condition interdisant l'accès aux instances du bloc-notes utilisées pour le premier projet. Attachez ensuite cette politique àDevTeam2
. L'exemple de politique suivant refuse tous les API appels sur toute instance de bloc-notes dont la cléProject
et la valeur sont lesA
suivantes :{ "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 ressources d' SageMaker IA
Les balises sont des étiquettes de métadonnées que vous pouvez associer à certaines AWS ressources. Une balise se compose d'une paire clé-valeur qui fournit un moyen flexible d'annoter les ressources avec des attributs de métadonnées pour divers cas d'utilisation du balisage, notamment :
-
search
-
sécurité
-
contrôle d'accès
-
Automatisation
Ils peuvent être utilisés dans les autorisations et les politiques, les quotas de service et les intégrations avec d'autres AWS services. Les balises peuvent être définies par l'utilisateur ou AWS générées lors de la création de ressources. Cela dépend du fait qu'un utilisateur spécifie manuellement des balises personnalisées ou qu'un AWS service génère automatiquement une balise.
-
Balises définies par l'utilisateur dans l' SageMaker IA : les utilisateurs peuvent ajouter des balises lorsqu'ils créent SageMaker des ressources d' SageMaker IA SDKs à l'aide de l' SageMaker IA AWS CLI CLI SageMaker APIs, de la console AI ou de AWS CloudFormation modèles.
Note
Les balises définies par l'utilisateur peuvent être remplacées si une ressource est mise à jour ultérieurement et si la valeur de la balise est modifiée ou remplacée. Par exemple, une tâche de formation créée avec {Team : A} peut être incorrectement mise à jour et reétiquetée en tant que {Team : B}. Par conséquent, les autorisations autorisées peuvent être attribuées de manière incorrecte. Par conséquent, il convient de faire preuve de prudence lorsque vous autorisez des utilisateurs ou des groupes à ajouter des balises, car ils peuvent être en mesure de remplacer les valeurs des balises existantes. Il est recommandé de bien définir les autorisations relatives aux balises et d'utiliser des IAM conditions pour contrôler les capacités de balisage.
-
AWS balises générées dans l' SageMaker IA : SageMaker L'IA balise automatiquement certaines ressources qu'elle crée. Par exemple, Studio et Studio Classic attribuent automatiquement la
sagemaker:domain-arn
balise aux ressources d' SageMaker IA qu'ils créent. Le marquage de nouvelles ressources avec le domaine ARN permet de suivre l'origine des ressources d' SageMaker IA telles que les tâches de formation, les modèles et les points de terminaison. Pour un contrôle et un suivi plus précis, les nouvelles ressources reçoivent des balises supplémentaires telles que :-
sagemaker:user-profile-arn
- Le ARN profil utilisateur qui a créé la ressource. Cela permet de suivre les ressources créées par des utilisateurs spécifiques. -
sagemaker:space-arn
- ARN L'espace dans lequel la ressource a été créée. Cela permet de regrouper et d'isoler les ressources par espace.
Note
AWS les balises générées ne peuvent pas être modifiées par les utilisateurs.
-
Pour obtenir des informations générales sur le balisage AWS des ressources et les meilleures pratiques, consultez la section Marquage de vos AWS ressources. Pour plus d'informations sur les principaux cas d'utilisation du balisage, consultez la section Cas d'utilisation du balisage.
Autoriser l'ajout de balises lors de la création de ressources d' SageMaker IA
Vous pouvez autoriser les utilisateurs (balises définies par l'utilisateur) ou Studio et Studio Classic (balises AWS générées) à ajouter des balises sur les nouvelles ressources d' SageMaker IA au moment de leur création. Pour ce faire, leurs IAM autorisations doivent inclure à la fois :
-
L' SageMaker IA de base crée une autorisation pour ce type de ressource.
-
L'
sagemaker:AddTags
autorisation.
Par exemple, pour permettre à un utilisateur de créer une tâche de SageMaker formation et de l'étiqueter, il faudrait lui accorder des autorisations pour sagemaker:CreateTrainingJob
etsagemaker:AddTags
.
Important
Les IAM politiques personnalisées qui autorisent Amazon SageMaker Studio ou Amazon SageMaker Studio Classic à créer des ressources Amazon SageMaker AI doivent également accorder des autorisations pour ajouter des balises à ces ressources. L'autorisation d'ajouter des balises aux ressources est requise car Studio et Studio Classic balisent automatiquement toutes les ressources qu'ils créent. Si une IAM politique autorise Studio et Studio Classic à créer des ressources mais n'autorise pas le balisage, des erreurs « AccessDenied » peuvent se produire lors de la tentative de création de ressources.
AWS politiques gérées pour Amazon SageMaker AIqui donnent des autorisations pour créer des ressources d' SageMaker IA incluent déjà des autorisations pour ajouter des balises lors de la création de ces ressources.
Les administrateurs associent ces IAM autorisations à l'un des éléments suivants :
-
AWS IAMrôles attribués à l'utilisateur pour les balises définies par l'utilisateur
-
le rôle d'exécution utilisé par Studio ou Studio Classic pour les balises AWS générées
Pour obtenir des instructions sur la création et l'application de IAM politiques personnalisées, consultez la section Création de IAM politiques (console).
Note
La liste des opérations de création de ressources d' SageMaker IA se trouve dans la SageMaker APIdocumentation en recherchant les actions commençant parCreate
. Celles-ci créent des actions, telles que CreateTrainingJob
etCreateEndpoint
, sont les opérations qui créent de nouvelles ressources d' SageMaker IA.
Ajouter des autorisations de balise à certaines actions de création
Vous accordez l'sagemaker:AddTags
autorisation avec des contraintes en attachant une IAM politique supplémentaire à la stratégie de création de ressources d'origine. L'exemple de politique suivant autorisesagemaker:AddTags
, mais ne le limite qu'à certaines actions de création de ressources SageMaker AI, telles queCreateTrainingJob
.
{ "Sid": "AllowAddTagsForCreateOperations", "Effect": "Allow", "Action": [ "sagemaker:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:TaggingAction": "CreateTrainingJob" } } }
La condition de politique sagemaker:AddTags
se limite à être utilisée parallèlement à des actions de création spécifiques. Dans cette approche, la politique d'autorisation de création reste intacte tandis qu'une politique supplémentaire fournit un sagemaker:AddTags
accès restreint. Cette condition empêche l'obtention sagemaker:AddTags
d'une autorisation générale en la limitant aux actions de création nécessitant un balisage. Cela implémente le moindre privilège sagemaker:AddTags
en ne l'autorisant que pour des cas d'utilisation spécifiques de création de ressources d' SageMaker IA.
Exemple : autoriser l'autorisation des balises à l'échelle mondiale et restreindre les actions de création à un domaine
Dans cet exemple de IAM politique personnalisée, les deux premières instructions illustrent l'utilisation de balises pour suivre la création de ressources. Il permet d'sagemaker:CreateModel
agir sur toutes les ressources et de baliser ces ressources lorsque cette action est utilisée. La troisième déclaration montre comment les valeurs des balises peuvent être utilisées pour contrôler les opérations sur les ressources. Dans ce cas, cela empêche de créer des ressources d' SageMaker IA étiquetées avec un domaine spécifiqueARN, en limitant l'accès en fonction de la valeur de la balise.
En particulier :
-
La première instruction autorise l'
CreateModel
action sur n'importe quelle ressource (*
). -
La deuxième instruction autorise l'
sagemaker:AddTags
action, mais uniquement lorsque la clé desagemaker:TaggingAction
condition est égale àCreateModel
. Cela limite l'sagemaker:AddTags
action uniquement lorsqu'elle est utilisée pour étiqueter un modèle nouvellement créé. -
La troisième déclaration refuse toute action SageMaker AI create (
Create*
) sur une ressource (*
), mais uniquement lorsque la ressource possède une balisesagemaker:domain-arn
égale à un domaine spécifiqueARN,
.domain-arn
{ "Statement":[ { "Effect":"Allow", "Action":[ "sagemaker:CreateModel" ], "Resource":"*" }, { "Effect":"Allow", "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
" } } } ] }
Limitez l'accès aux ressources consultables avec des conditions de visibilité
Utilisez les conditions de visibilité pour limiter l'accès de vos utilisateurs à des ressources balisées spécifiques au sein d'un AWS compte. Vos utilisateurs ne peuvent accéder qu'aux ressources pour lesquelles ils sont autorisés. Lorsque vos utilisateurs effectuent des recherches dans leurs ressources, ils peuvent limiter les résultats de recherche à des ressources spécifiques.
Vous souhaiterez peut-être que vos utilisateurs ne voient et n'interagissent qu'avec les ressources associées à des domaines Amazon SageMaker Studio ou Amazon SageMaker Studio Classic spécifiques. Vous pouvez utiliser les conditions de visibilité pour limiter leur accès à un ou plusieurs domaines.
{ "Sid": "SageMakerApis", "Effect": "Allow", "Action": "sagemaker:Search", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:SearchVisibilityCondition/Tags.sagemaker:
example-domain-arn
/EqualsIfExists": "arn:aws:sagemaker:Région AWS
:111122223333
:domain/example-domain-1
", "sagemaker:SearchVisibilityCondition/Tags.sagemaker:example-domain-arn
/EqualsIfExists": "arn:aws:sagemaker:Région AWS
:111122223333
:domain/example-domain-2
" } } }
Le format général d'une condition de visibilité est"sagemaker:SearchVisibilityCondition/Tags.key": "value"
. Vous pouvez fournir la paire clé-valeur pour n'importe quelle ressource étiquetée.
{ "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:Région AWS
:111122223333
:domain/example-domain-1
"}, {"Key": "Tags.sagemaker:example-domain-arn
", "Value": "arn:aws:sagemaker:Région AWS
:111122223333:domain/example-domain-2
"} ] ], "SortBy": "string", "SortOrder": "string" }
La condition de visibilité interne utilise le même "sagemaker:SearchVisibilityCondition/Tags.key": "value"
format que celui spécifié dans la politique. Vos utilisateurs peuvent spécifier les paires clé-valeur utilisées pour n'importe quelle ressource étiquetée.
Si un utilisateur inclut le VisibilityConditions
paramètre dans sa demande de recherche, mais que la politique d'accès qui s'applique à cet utilisateur ne contient aucune clé de condition correspondante spécifiée dansVisibilityConditions
, la Search
demande est toujours autorisée et sera exécutée.
Si aucun VisibilityConditions
paramètre n'est spécifié dans la API demande de recherche de l'utilisateur, mais que la politique d'accès qui s'applique à cet utilisateur contient des clés de condition associéesVisibilityConditions
, la Search
demande de cet utilisateur est refusée.