Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beispiele für SageMaker identitätsbasierte Richtlinien von Amazon
Standardmäßig sind IAM Benutzer und Rollen nicht berechtigt, SageMaker Ressourcen zu erstellen oder zu ändern. Sie können auch keine Aufgaben mit dem AWS Management Console AWS CLI, oder ausführen AWS API. Ein IAM Administrator muss IAM Richtlinien erstellen, die Benutzern und Rollen die Berechtigung gewähren, bestimmte API Operationen mit den angegebenen Ressourcen auszuführen, die sie benötigen. Der Administrator muss diese Richtlinien dann den IAM Benutzern oder Gruppen zuordnen, für die diese Berechtigungen erforderlich sind. Informationen zum Anhängen von Richtlinien an einen IAM Benutzer oder eine Gruppe finden Sie unter Hinzufügen und Entfernen von IAM Identitätsberechtigungen in der Serviceautorisierungsreferenz.
Informationen zum Erstellen einer IAM identitätsbasierten Richtlinie anhand dieser JSON Beispieldokumente finden Sie unter Richtlinien auf der JSON Registerkarte erstellen.
Themen
- Bewährte Methoden für Richtlinien
- Verwenden der SageMaker Konsole
- Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer
- Steuern Sie die Erstellung von SageMaker Ressourcen mit Bedingungsschlüsseln
- Steuern Sie den Zugriff auf die SageMaker API mithilfe identitätsbasierter Richtlinien
- Beschränken Sie den Zugriff auf SageMaker API und die Laufzeit von Aufrufen anhand der IP-Adresse
- Beschränken Sie den Zugriff auf eine Notebook-Instanz anhand der IP-Adresse
- Steuern Sie den Zugriff auf SageMaker Ressourcen mithilfe von Tags
- Stellen Sie Berechtigungen für das Taggen von Ressourcen SageMaker bereit
- Beschränken Sie den Zugriff auf durchsuchbare Ressourcen unter bestimmten Sichtbarkeitsbedingungen
Bewährte Methoden für Richtlinien
Identitätsbasierte Richtlinien legen fest, ob jemand SageMaker Ressourcen in Ihrem Konto erstellen, darauf zugreifen oder sie löschen kann. Dies kann zusätzliche Kosten für Ihr verursachen AWS-Konto. Befolgen Sie beim Erstellen oder Bearbeiten identitätsbasierter Richtlinien die folgenden Anleitungen und Empfehlungen:
-
Beginnen Sie mit AWS verwalteten Richtlinien und wechseln Sie zu Berechtigungen mit den geringsten Rechten — Verwenden Sie die AWS verwalteten Richtlinien, die Berechtigungen für viele gängige Anwendungsfälle gewähren, um Ihren Benutzern und Workloads zunächst Berechtigungen zu gewähren. Sie sind in Ihrem verfügbar. AWS-Konto Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie vom AWS Kunden verwaltete Richtlinien definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind. Weitere Informationen finden Sie AWS im IAMBenutzerhandbuch unter AWS Verwaltete Richtlinien oder Verwaltete Richtlinien für Jobfunktionen.
-
Berechtigungen mit den geringsten Rechten anwenden — Wenn Sie Berechtigungen mit IAM Richtlinien festlegen, gewähren Sie nur die Berechtigungen, die für die Ausführung einer Aufgabe erforderlich sind. Sie tun dies, indem Sie die Aktionen definieren, die für bestimmte Ressourcen unter bestimmten Bedingungen durchgeführt werden können, auch bekannt als die geringsten Berechtigungen. Weitere Informationen zur Verwendung IAM zum Anwenden von Berechtigungen finden Sie IAMim Benutzerhandbuch unter Richtlinien und Berechtigungen. IAM
-
Verwenden Sie Bedingungen in IAM Richtlinien, um den Zugriff weiter einzuschränken — Sie können Ihren Richtlinien eine Bedingung hinzufügen, um den Zugriff auf Aktionen und Ressourcen einzuschränken. Sie können beispielsweise eine Richtlinienbedingung schreiben, um anzugeben, dass alle Anfragen mit gesendet werden müssenSSL. Sie können auch Bedingungen verwenden, um Zugriff auf Serviceaktionen zu gewähren, wenn diese über einen bestimmten Zweck verwendet werden AWS-Service, z. AWS CloudFormation B. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter IAMJSONRichtlinienelemente: Bedingung.
-
Verwenden Sie IAM Access Analyzer, um Ihre IAM Richtlinien zu validieren, um sichere und funktionale Berechtigungen zu gewährleisten. IAM Access Analyzer validiert neue und bestehende Richtlinien, sodass die Richtlinien der IAM Richtliniensprache (JSON) und den IAM bewährten Methoden entsprechen. IAMAccess Analyzer bietet mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen, um Sie bei der Erstellung sicherer und funktionaler Richtlinien zu unterstützen. Weitere Informationen finden Sie unter IAMAccess Analyzer-Richtlinienvalidierung im IAMBenutzerhandbuch.
-
Multi-Faktor-Authentifizierung erforderlich (MFA) — Wenn Sie ein Szenario haben, in dem IAM Benutzer oder ein Root-Benutzer erforderlich sind AWS-Konto, aktivieren Sie die Option MFA für zusätzliche Sicherheit. Wenn Sie festlegen möchten, MFA wann API Operationen aufgerufen werden, fügen Sie MFA Bedingungen zu Ihren Richtlinien hinzu. Weitere Informationen finden Sie unter Konfiguration des MFA -geschützten API Zugriffs im IAMBenutzerhandbuch.
Weitere Informationen zu bewährten Methoden finden Sie unter Bewährte Sicherheitsmethoden IAM im IAM Benutzerhandbuch. IAM
Verwenden der SageMaker Konsole
Um auf die SageMaker Amazon-Konsole zugreifen zu können, benötigen Sie ein Mindestmaß an Berechtigungen. Diese Berechtigungen müssen es Ihnen ermöglichen, Informationen zu den SageMaker Ressourcen in Ihrem AWS Konto aufzulisten und einzusehen. Wenn Sie eine identitätsbasierte Richtlinie erstellen, die restriktiver ist als die erforderlichen Mindestberechtigungen, funktioniert die Konsole für Entitäten mit dieser Richtlinie nicht ordnungsgemäß. Dazu gehören Benutzer oder Rollen mit dieser Richtlinie.
Um sicherzustellen, dass diese Entitäten die SageMaker Konsole weiterhin verwenden können, müssen Sie den Entitäten außerdem die folgende AWS verwaltete Richtlinie hinzufügen. Weitere Informationen finden Sie unter Hinzufügen von Berechtigungen zu einem Benutzer in der Serviceautorisierungsreferenz:
Sie müssen Benutzern, die nur Anrufe an den AWS CLI oder den tätigen, keine Mindestberechtigungen für die Konsole gewähren AWS API. Erlauben Sie stattdessen nur den Zugriff auf die Aktionen, die dem API Vorgang entsprechen, den Sie ausführen möchten.
Themen
Für die Nutzung der SageMaker Amazon-Konsole sind Berechtigungen erforderlich
Die Referenztabelle für Berechtigungen listet die SageMaker API Amazon-Operationen auf und zeigt die erforderlichen Berechtigungen für jeden Vorgang. Weitere Informationen zum SageMaker API Betrieb von Amazon finden Sie unter SageMaker APIAmazon-Berechtigungen: Referenz zu Aktionen, Berechtigungen und Ressourcen.
Um die SageMaker Amazon-Konsole verwenden zu können, müssen Sie Berechtigungen für zusätzliche Aktionen erteilen. Insbesondere benötigt die Konsole Berechtigungen, die es den ec2
Aktionen ermöglichenVPCs, Subnetze und Sicherheitsgruppen anzuzeigen. Optional benötigt die Konsole die Berechtigung zum Erstellen von Ausführungsrollen für Aufgaben wie CreateNotebook
, CreateTrainingJob
und CreateModel
. Gewähren Sie diese Berechtigungen mit der folgenden Berechtigungsrichtlinie:
{ "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" } } } ] }
Für die Nutzung der Amazon SageMaker Ground Truth Konsole sind Berechtigungen erforderlich
Um die Amazon SageMaker Ground Truth Konsole verwenden zu können, müssen Sie Berechtigungen für zusätzliche Ressourcen erteilen. Insbesondere benötigt die Konsole Berechtigungen für:
-
der AWS Marketplace, um Abonnements anzusehen,
-
Amazon Cognito Operations zur Verwaltung Ihrer privaten Belegschaft
-
Amazon S3 S3-Aktionen für den Zugriff auf Ihre Eingabe- und Ausgabedateien
-
AWS Lambda Aktionen zum Auflisten und Aufrufen von Funktionen
Gewähren Sie diese Berechtigungen mit der folgenden Berechtigungsrichtlinie:
{ "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": "*" } ] }
Für die Verwendung der Amazon Augmented AI (Preview) -Konsole sind Berechtigungen erforderlich
Um die Augmented AI-Konsole nutzen zu können, müssen Sie Berechtigungen für zusätzliche Ressourcen erteilen. Gewähren Sie diese Berechtigungen mit der folgenden Berechtigungsrichtlinie:
{ "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" ] } } } ] }
Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer
Dieses Beispiel zeigt, wie Sie eine Richtlinie erstellen könnten, die es IAM Benutzern ermöglicht, die internen und verwalteten Richtlinien einzusehen, die mit ihrer Benutzeridentität verknüpft sind. Diese Richtlinie umfasst Berechtigungen zum Ausführen dieser Aktion auf der Konsole oder programmgesteuert mithilfe von oder. AWS CLI 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": "*" } ] }
Steuern Sie die Erstellung von SageMaker Ressourcen mit Bedingungsschlüsseln
Steuern Sie den detaillierten Zugriff, um die Erstellung von SageMaker Ressourcen mithilfe von SageMaker spezifischen Bedingungsschlüsseln zu ermöglichen. Informationen zur Verwendung von Bedingungsschlüsseln in IAM Richtlinien finden Sie unter IAMJSONRichtlinienelemente: Bedingung im IAM Benutzerhandbuch.
Die Bedingungsschlüssel, die zugehörigen API Aktionen und Links zu relevanter Dokumentation sind in der Serviceautorisierungsreferenz unter Bedingungsschlüssel für SageMaker aufgeführt.
Die folgenden Beispiele zeigen, wie Sie die SageMaker Bedingungsschlüssel zur Zugriffskontrolle verwenden können.
Themen
- Steuern Sie den Zugriff auf SageMaker Ressourcen mithilfe von Bedingungsschlüsseln des Dateisystems
- Beschränken Sie das Training auf ein bestimmtes VPC
- Beschränken Sie den Zugriff auf Mitarbeitertypen für Ground Truth Labeling-Jobs und Amazon A2I Human Review-Workflows
- Erzwingen Sie die Verschlüsselung der Eingabedaten
- Erzwingen Sie Netzwerkisolierung für Schulungsjobs
- Erzwingen Sie einen bestimmten Instanztyp für Schulungsjobs
- Erzwingen Sie die Deaktivierung des Internet- und Root-Zugriffs für die Erstellung von Notebook-Instanzen
Steuern Sie den Zugriff auf SageMaker Ressourcen mithilfe von Bedingungsschlüsseln des Dateisystems
SageMaker Training bietet eine sichere Infrastruktur, in der der Trainingsalgorhythmus ausgeführt werden kann. In einigen Fällen ist jedoch ein umfassenderer Schutz erforderlich. Beispielsweise minimieren Sie das Risiko, nicht vertrauenswürdigen Code in Ihrem Algorithmus auszuführen, oder Sie haben bestimmte Sicherheitsvorgaben in Ihrer Organisation. In diesen Szenarien können Sie die dienstspezifischen Bedingungsschlüssel im Condition-Element einer IAM Richtlinie verwenden, um den Benutzer auf Folgendes zu beschränken:
-
spezifische Dateisysteme
-
Verzeichnisse
-
Zugriffsmodi (Lesen-Schreiben, Nur-Lesen)
-
Sicherheitsgruppen
Themen
Beschränken Sie einen IAM Benutzer auf bestimmte Verzeichnisse und Zugriffsmodi
Die folgende Richtlinie beschränkt einen Benutzer auf die /sagemaker/xgboost-dm/validation
Verzeichnisse /sagemaker/xgboost-dm/train
und Verzeichnisse eines EFS Dateisystems auf ro
(schreibgeschützt): AccessMode
Anmerkung
Wenn ein Verzeichnis zulässig ist, kann der Trainingsalgorithmus auch auf alle seine Unterverzeichnisse zugreifen. POSIXBerechtigungen werden ignoriert.
{ "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" } } } ] }
Beschränken Sie einen Benutzer auf ein bestimmtes Dateisystem
Um zu verhindern, dass ein bösartiger Algorithmus, der einen Userspace-Client verwendet, direkt auf ein Dateisystem in Ihrem Konto zugreift, können Sie den Netzwerkverkehr einschränken. Um diesen Datenverkehr einzuschränken, lassen Sie den Zugriff nur von einer bestimmten Sicherheitsgruppe aus zu. Im folgenden Beispiel kann der -Benutzer nur die angegebene Sicherheitsgruppe für den Zugriff auf das Dateisystem verwenden:
{ "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" ] } } } ] }
In diesem Beispiel kann ein Algorithmus auf ein bestimmtes Dateisystem beschränkt werden. Es verhindert jedoch nicht, dass ein Algorithmus mithilfe des Userspace-Clients auf ein beliebiges Verzeichnis innerhalb dieses Dateisystems zugreift. Um dies zu vermeiden, haben Sie folgende Möglichkeiten:
-
Stellen Sie sicher, dass das Dateisystem nur Daten enthält, auf die Ihre -Benutzer zugreifen können.
-
Erstellen Sie eine IAM Rolle, die Ihre Benutzer darauf beschränkt, Trainingsjobs mit Algorithmen aus zugelassenen ECR Repositorys zu starten
Weitere Informationen zur Verwendung von Rollen mit SageMaker finden Sie unter SageMaker Rollen.
Beschränken Sie das Training auf ein bestimmtes VPC
Beschränken Sie einen AWS Benutzer darauf, Schulungsjobs von einem Amazon aus zu erstellenVPC. Wenn ein Trainingsjob innerhalb eines erstellt wirdVPC, verwenden Sie VPC Flow-Logs, um den gesamten Verkehr zum und vom Trainingscluster zu überwachen. Informationen zur Verwendung von VPC Flow-Logs finden Sie unter VPCFlow Logs im Amazon Virtual Private Cloud Cloud-Benutzerhandbuch.
Die folgende Richtlinie legt fest, dass ein Schulungsjob von einem Benutzer erstellt wird, der von einem CreateTrainingJob
aus anruft: 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" } } } ] }
Beschränken Sie den Zugriff auf Mitarbeitertypen für Ground Truth Labeling-Jobs und Amazon A2I Human Review-Workflows
Die Arbeitsteams von Amazon SageMaker Ground Truth und Amazon Augmented AI lassen sich in einen von drei Personaltypen einteilen:
-
öffentlich (mit Amazon Mechanical Turk)
-
private
-
Lieferant
Sie können den Benutzerzugriff auf ein bestimmtes Arbeitsteam einschränken, indem Sie einen dieser Typen oder das Arbeitsteam verwendenARN. Verwenden Sie dazu die Tasten sagemaker:WorkteamType
und/oder die sagemaker:WorkteamArn
Bedingungstasten. Verwenden Sie als sagemaker:WorkteamType
-Bedingungsschlüssel Bedingungsoperatoren für Zeichenfolgen. Verwenden Sie für den sagemaker:WorkteamArn
Bedingungsschlüssel die Bedingungsoperatoren Amazon Resource Name (ARN). Wenn der Benutzer versucht, einen Labeling-Job mit einem eingeschränkten Arbeitsteam zu erstellen, wird die Fehlermeldung „Zugriff verweigert“ SageMaker zurückgegeben.
Die folgenden Richtlinien zeigen verschiedene Möglichkeiten, die Bedingungsschlüssel sagemaker:WorkteamType
und die sagemaker:WorkteamArn
Bedingungsschlüssel mit den entsprechenden Bedingungsoperatoren und gültigen Bedingungswerten zu verwenden.
Im folgenden Beispiel wird der sagemaker:WorkteamType
-Bedingungsschlüssel zusammen mit dem StringEquals
-Bedingungsoperator verwendet, um den Zugriff auf ein öffentliches Arbeitsteam zu beschränken. Sie akzeptiert Bedingungswerte im folgenden Format:
, wobei workforcetype
-crowdworkforcetype
kann gleichpublic
,private
, oder seinvendor
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:WorkteamType": "
public-crowd
" } } } ] }
Die folgenden Richtlinien zeigen, wie Sie mithilfe des sagemaker:WorkteamArn
-Bedingungsschlüssels den Zugriff auf ein öffentliches Arbeitsteam einschränken. Die erste zeigt, wie man es mit einer gültigen IAM Regex-Variante des Arbeitsteams ARN und des ArnLike
Bedingungsoperators verwendet. Die zweite zeigt, wie man es mit dem ArnEquals
Bedingungsoperator und dem Arbeitsteam verwendet. ARN
{ "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
" } } } ] }
Erzwingen Sie die Verschlüsselung der Eingabedaten
Die folgende Richtlinie beschränkt den Benutzer bei der Erstellung auf die Angabe eines AWS KMS Schlüssels zur Verschlüsselung von Eingabedaten mithilfe des sagemaker:VolumeKmsKey
Bedingungsschlüssels:
-
Training
-
Hyperparameter-Tuning
-
Jobs kennzeichnen
{ "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" } } } ] }
Erzwingen Sie Netzwerkisolierung für Schulungsjobs
Die folgende Richtlinie schränkt einen Benutzer ein, die Netzwerkisolierung bei der Erstellung von Trainingsaufträgen mit Hilfe des sagemaker:NetworkIsolation
Bedingungsschlüssels zu aktivieren:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceIsolation", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "Bool": { "sagemaker:NetworkIsolation": "true" } } } ] }
Erzwingen Sie einen bestimmten Instanztyp für Schulungsjobs
Die folgende Richtlinie schränkt einen Benutzer auf die Verwendung eines bestimmten Instance-Typs bei der Erstellung von Trainingsaufträgen ein, indem sie den sagemaker:InstanceTypes
Bedingungsschlüssel verwendet:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceInstanceType", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "ForAllValues:StringLike": { "sagemaker:InstanceTypes": ["ml.c5.*"] } } } ] }
Erzwingen Sie die Deaktivierung des Internet- und Root-Zugriffs für die Erstellung von Notebook-Instanzen
Sie können sowohl den Internetzugriff als auch den Root-Zugriff auf Notebook-Instances deaktivieren, um sie sicherer zu machen. Informationen zur Steuerung des Root-Zugriffs auf eine Notebook-Instanz finden Sie unterSteuern Sie den Root-Zugriff auf eine SageMaker Notebook-Instanz. Informationen zur Deaktivierung des Internetzugangs für eine Notebook-Instanz finden Sie unterEine Notebook-Instanz in a VPC mit externen Ressourcen Connect.
Die folgende Richtlinie sieht vor, dass ein Benutzer den Netzwerkzugriff beim Erstellen einer Instance und den Root-Zugriff beim Erstellen oder Aktualisieren einer Notebook-Instance deaktivieren muss.
{ "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" } } } ] }
Steuern Sie den Zugriff auf die SageMaker API mithilfe identitätsbasierter Richtlinien
Verwenden Sie identitätsbasierte Richtlinien, um den Zugriff auf SageMaker API Anrufe und Anrufe an SageMaker gehostete Endgeräte zu kontrollieren. IAM
Beschränken Sie den Zugriff auf SageMaker API und die Laufzeit auf Anrufe innerhalb Ihres VPC
Wenn Sie einen Schnittstellenendpunkt in Ihrem einrichtenVPC, VPC können sich Personen außerhalb des Netzwerks über das Internet mit dem SageMaker API und der Laufzeit verbinden. Um dies zu verhindern, fügen Sie eine IAM Richtlinie hinzu, die den Zugriff auf Anrufe aus dem Internet einschränkt. VPC Diese Anrufe müssen auf alle Benutzer und Gruppen beschränkt werden, die Zugriff auf Ihre SageMaker Ressourcen haben. Hinweise zum Erstellen eines VPC Schnittstellenendpunkts für die SageMaker API und Runtime finden Sie unterConnect dich mit SageMaker Within your VPC.
Wichtig
Wenn Sie eine IAM Richtlinie anwenden, die einer der folgenden ähnelt, können Benutzer nicht SageMaker APIs über die Konsole auf die angegebene Richtlinie zugreifen.
Um den Zugriff nur auf Verbindungen zu beschränken, die von Ihrem aus hergestellt werdenVPC, erstellen Sie eine AWS Identity and Access Management Richtlinie, die den Zugriff einschränkt. Dieser Zugriff muss nur auf Anrufe beschränkt werden, die von innerhalb Ihres VPC Unternehmens kommen. Fügen Sie diese Richtlinie dann allen AWS Identity and Access Management Benutzern, Gruppen oder Rollen hinzu, die für den Zugriff auf die Laufzeit SageMaker API oder verwendet werden.
Anmerkung
Diese Richtlinie erlaubt Verbindungen nur zu Aufrufern innerhalb eines Subnetzes, in dem Sie einen Schnittstellendpunkt erstellt haben.
{ "Id": "api-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableAPIAccess", "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-111bbaaa" } } } ] }
Um den Zugriff auf Aufrufe zu beschränkenAPI, die nur über den Schnittstellenendpunkt getätigt wurden, verwenden Sie den aws:SourceVpce
Bedingungsschlüssel anstelle vonaws: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" ] } } } ] }
Beschränken Sie den Zugriff auf SageMaker API und die Laufzeit von Aufrufen anhand der IP-Adresse
Sie können den Zugriff auf SageMaker API Anrufe und Runtime-Aufrufe nur von IP-Adressen aus einer von Ihnen angegebenen Liste zulassen. Erstellen Sie dazu eine IAM Richtlinie, die den Zugriff auf verweigert, API sofern der Anruf nicht von einer IP-Adresse in der Liste stammt. Fügen Sie diese Richtlinie dann allen AWS Identity and Access Management Benutzern, Gruppen oder Rollen hinzu, die für den Zugriff auf die Laufzeit API oder verwendet werden. Informationen zum Erstellen von IAM Richtlinien finden Sie im AWS Identity and Access Management Benutzerhandbuch unter IAMRichtlinien erstellen.
Um die Liste der IP-Adressen anzugeben, die Zugriff auf den API Anruf haben, verwenden Sie den folgenden Befehl:
-
IpAddress
Bedingungsoperator -
aws:SourceIP
Bedingungskontextschlüssel
Informationen zu IAM Bedingungsoperatoren finden Sie im AWS Identity and Access Management Benutzerhandbuch unter IAMJSONRichtlinienelemente: Bedingungsoperatoren. Informationen zu IAM Bedingungskontextschlüsseln finden Sie unter AWS Globale Bedingungskontextschlüssel.
Die folgende Richtlinie erlaubt beispielsweise den Zugriff auf CreateTrainingJob
nur von IP-Adressen in den Bereichen 192.0.2.0
–192.0.2.255
und 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" ] } } } ] }
Beschränken Sie den Zugriff auf eine Notebook-Instanz anhand der IP-Adresse
Sie können den Zugriff auf eine Notebook-Instanz nur über IP-Adressen in einer von Ihnen angegebenen Liste zulassen. Erstellen Sie dazu eine IAM Richtlinie, die den Zugriff verweigert, CreatePresignedNotebookInstanceUrl
sofern der Anruf nicht von einer IP-Adresse in der Liste stammt. Fügen Sie diese Richtlinie dann allen AWS Identity and Access Management Benutzern, Gruppen oder Rollen hinzu, die für den Zugriff auf die Notebook-Instanz verwendet werden. Informationen zum Erstellen von IAM Richtlinien finden Sie unter IAMRichtlinien erstellen im AWS Identity and Access Management Benutzerhandbuch.
Um die Liste der IP-Adressen anzugeben, für die Sie Zugriff auf die Notebook-Instanz haben möchten, verwenden Sie den folgenden Befehl:
-
IpAddress
Bedingungsoperator -
aws:SourceIP
Bedingungskontextschlüssel
Informationen zu IAM Bedingungsoperatoren finden Sie im AWS Identity and Access Management Benutzerhandbuch unter IAMJSONRichtlinienelemente: Bedingungsoperatoren. Informationen zu IAM Bedingungskontextschlüsseln finden Sie unter AWS Globale Bedingungskontextschlüssel.
Die folgende Richtlinie erlaubt beispielsweise den Zugriff auf eine Notebook-Instance nur dann, wenn die IP-Adresse im Bereich 192.0.2.0
–192.0.2.255
oder 203.0.113.0
–203.0.113.255
liegt:
{ "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" ] } } } ] }
Die Richtlinie schränkt den Zugriff sowohl auf den Anruf als auch auf den URL zurückgesendeten Anruf ein. CreatePresignedNotebookInstanceUrl
Außerdem beschränkt die Richtlinie den Zugriff für das Öffnen einer Notebook-Instance in der Konsole. Sie wird für jede HTTP Anfrage und jeden WebSocket Frame durchgesetzt, der versucht, eine Verbindung zur Notebook-Instanz herzustellen.
Anmerkung
Die Verwendung dieser Methode zum Filtern nach IP-Adressen ist nicht kompatibel, wenn die Verbindung SageMaker über einen VPC Schnittstellenendpunkt hergestellt wird. . Hinweise zur Beschränkung des Zugriffs auf eine Notebook-Instanz, wenn eine Verbindung über einen VPC Schnittstellenendpunkt hergestellt wird, finden Sie unterStellen Sie über einen VPC Schnittstellen-Endpunkt eine Connect zu einer Notebook-Instanz her.
Steuern Sie den Zugriff auf SageMaker Ressourcen mithilfe von Tags
Geben Sie innerhalb einer IAM Richtlinie Tags an, um den Zugriff auf SageMaker Ressourcengruppen zu steuern. Verwenden Sie Tags, um eine attributbasierte Zugriffskontrolle zu implementieren (ABAC). Mithilfe von Tags können Sie den Zugriff auf Ressourcen auf bestimmte Benutzergruppen aufteilen. Sie können ein Team mit Zugriff auf eine Gruppe von Ressourcen und ein anderes Team mit Zugriff auf eine andere Gruppe von Ressourcen haben. Sie können in IAM Richtlinien ResourceTag
Bedingungen festlegen, um den Zugriff für jede Gruppe zu gewähren.
Anmerkung
Tag-basierte Richtlinien funktionieren nicht, um die folgenden API Aufrufe einzuschränken:
-
DeleteImageVersion
-
DescribeImageVersion
-
ListAlgorithms
-
ListCodeRepositories
-
ListCompilationJobs
-
ListEndpointConfigs
-
ListEndpoints
-
ListFlowDefinitions
-
ListHumanTaskUis
-
ListHyperparameterTuningJobs
-
ListLabelingJobs
-
ListLabelingJobsForWorkteam
-
ListModelPackages
-
ListModels
-
ListNotebookInstanceLifecycleConfigs
-
ListNotebookInstances
-
ListSubscribedWorkteams
-
ListTags
-
ListProcessingJobs
-
ListTrainingJobs
-
ListTrainingJobsForHyperParameterTuningJob
-
ListTransformJobs
-
ListWorkteams
-
Suche
Ein einfaches Beispiel kann Ihnen helfen zu verstehen, wie Sie Tags verwenden können, um Ressourcen zu partitionieren. Angenommen, Sie haben in Ihrem AWS Konto zwei verschiedene IAM Gruppen mit dem Namen DevTeam1
und DevTeam2
definiert. Sie haben auch 10 Notebook-Instances erstellt. Sie verwenden 5 der Notebook-Instances für ein Projekt. Sie verwenden die anderen 5 für ein zweites Projekt. Sie können Berechtigungen für API Anrufe auf den Notebook-Instanzen bereitstellenDevTeam1
, die Sie für das erste Projekt verwenden. Sie können angebenDevTeam2
, dass API Anrufe auf Notebook-Instanzen getätigt werden können, die für das zweite Projekt verwendet werden.
Das folgende Verfahren bietet ein einfaches Beispiel, das Ihnen hilft, das Konzept des Hinzufügens von Tags zu verstehen. Sie können es verwenden, um die im vorherigen Absatz beschriebene Lösung zu implementieren.
Um den Zugriff auf API Anrufe zu steuern (Beispiel)
-
Fügen Sie ein Tag mit dem Schlüssel
Project
und dem WertA
zu den Notebook-Instances für das erste Projekt hinzu. Informationen zum Hinzufügen von Tags zu SageMaker Ressourcen finden Sie unterAddTags
. -
Fügen Sie ein Tag mit dem Schlüssel
Project
und dem WertB
zu den Notebook-Instances für das zweite Projekt hinzu. -
Erstellen Sie eine IAM Richtlinie mit einer
ResourceTag
Bedingung, die den Zugriff auf die für das zweite Projekt verwendeten Notebook-Instanzen verweigert. Hängen Sie diese Richtlinie dann anDevTeam1
. Die folgende Beispielrichtlinie verweigert alle API Aufrufe auf einer beliebigen Notebook-Instanz mit einem Tag mit dem SchlüsselProject
und dem Wert: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": "*" } ] }
Informationen zum Erstellen von IAM Richtlinien und zum Anhängen dieser Richtlinien an Identitäten finden Sie unter Steuern des Zugriffs mithilfe von Richtlinien im AWS Identity and Access Management Benutzerhandbuch.
-
Erstellen Sie eine IAM Richtlinie mit einer
ResourceTag
Bedingung, die den Zugriff auf die Notebook-Instanzen verweigert, die für das erste Projekt verwendet wurden. Fügen Sie dann diese Richtlinie hinzuDevTeam2
. Die folgende Beispielrichtlinie verweigert alle API Aufrufe auf einer beliebigen Notebook-Instanz mit einem Tag mit dem SchlüsselProject
und dem Wert: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": "*" } ] }
Stellen Sie Berechtigungen für das Taggen von Ressourcen SageMaker bereit
Tags sind Metadaten-Labels, die Sie bestimmten AWS Ressourcen zuordnen können. Ein Tag besteht aus einem Schlüssel-Wert-Paar, das eine flexible Möglichkeit bietet, Ressourcen mit Metadatenattributen für verschiedene Anwendungsfälle zu versehen, darunter:
-
search
-
Sicherheit
-
Zugriffskontrolle
-
-Automatisierung
Sie können für Berechtigungen und Richtlinien, Dienstkontingente und Integrationen mit anderen AWS Diensten verwendet werden. Tags können benutzerdefiniert oder beim Erstellen von AWS Ressourcen generiert werden. Dies hängt davon ab, ob ein Benutzer benutzerdefinierte Tags manuell angibt oder ob ein AWS Dienst automatisch ein Tag generiert.
-
Benutzerdefinierte Tags in SageMaker: Benutzer können Tags hinzufügen, wenn sie SageMaker Ressourcen mithilfe der SageMaker SDKs, AWS CLI CLI SageMaker APIs, SageMaker Konsole oder AWS CloudFormation Vorlagen erstellen.
Anmerkung
Benutzerdefinierte Tags können überschrieben werden, wenn eine Ressource später aktualisiert und der Tagwert geändert oder ersetzt wird. Beispielsweise könnte ein mit {Team: A} erstellter Schulungsjob unsachgemäß aktualisiert und als {Team: B} neu markiert werden. Dies kann dazu führen, dass die erlaubten Berechtigungen falsch zugewiesen werden. Daher ist Vorsicht geboten, wenn Benutzern oder Gruppen das Hinzufügen von Stichwörtern gestattet wird, da diese möglicherweise vorhandene Tagwerte überschreiben können. Es hat sich bewährt, die Tag-Berechtigungen eng einzuschränken und IAM Bedingungen zu verwenden, um die Tagging-Fähigkeiten zu kontrollieren.
-
AWS generierte Tags in SageMaker: SageMaker Taggt automatisch bestimmte Ressourcen, die es erstellt. Beispielsweise weisen Studio und Studio Classic das
sagemaker:domain-arn
Tag automatisch den von ihnen erstellten SageMaker Ressourcen zu. Das Kennzeichnen neuer Ressourcen mit der Domain ARN ermöglicht die Rückverfolgbarkeit der Herkunft von SageMaker Ressourcen wie Schulungsaufträgen, Modellen und Endpunkten. Für eine genauere Kontrolle und Nachverfolgung erhalten neue Ressourcen zusätzliche Tags wie:-
sagemaker:user-profile-arn
— Das ARN Benutzerprofil, das die Ressource erstellt hat. Dies ermöglicht die Nachverfolgung von Ressourcen, die von bestimmten Benutzern erstellt wurden. -
sagemaker:space-arn
- Der ARN Bereich, in dem die Ressource erstellt wurde. Dies ermöglicht das Gruppieren und Isolieren von Ressourcen pro Bereich.
Anmerkung
AWS generierte Tags können von Benutzern nicht geändert werden.
-
Allgemeine Informationen zum Markieren von AWS Ressourcen und bewährte Methoden finden Sie unter Ressourcen taggen. AWS Informationen zu den wichtigsten Anwendungsfällen für Tagging finden Sie unter Anwendungsfälle für Tagging.
Erteilen Sie beim Erstellen von Ressourcen die Erlaubnis, Tags hinzuzufügen SageMaker
Sie können Benutzern (benutzerdefinierte Tags) oder Studio und Studio Classic (AWS generierte Tags) erlauben, bei der Erstellung Tags zu neuen SageMaker Ressourcen hinzuzufügen. Dazu müssen ihre IAM Berechtigungen beides beinhalten:
-
Die grundlegende SageMaker Erstellungsberechtigung für diesen Ressourcentyp.
-
Die
sagemaker:AddTags
Erlaubnis.
Um einem Benutzer beispielsweise die Möglichkeit zu geben, einen SageMaker Schulungsjob zu erstellen und ihn mit Tags zu versehen, müssten ihm Berechtigungen für sagemaker:CreateTrainingJob
und erteilt sagemaker:AddTags
werden.
Wichtig
Benutzerdefinierte IAM Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Genehmigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Taggen erlaubt, können "AccessDenied" Fehler auftreten, wenn versucht wird, Ressourcen zu erstellen.
AWS Verwaltete Richtlinien für Amazon SageMakerdie Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, beinhalten bereits Berechtigungen zum Hinzufügen von Tags beim Erstellen dieser Ressourcen.
Administratoren ordnen diese IAM Berechtigungen entweder folgenden Personen zu:
-
AWS IAMRollen, die dem Benutzer für benutzerdefinierte Tags zugewiesen wurden
-
die Ausführungsrolle, die von Studio oder Studio Classic für AWS generierte Tags verwendet wird
Anweisungen zum Erstellen und Anwenden von benutzerdefinierten IAM Richtlinien finden Sie unter IAMRichtlinien erstellen (Konsole).
Anmerkung
Die Liste der Vorgänge zum Erstellen von SageMaker Ressourcen finden Sie in der SageMaker APIDokumentation, indem Sie nach Aktionen suchen, die mit beginnenCreate
. Diese Erstellungsaktionen, wie z. B. CreateTrainingJob
undCreateEndpoint
, sind die Operationen, mit denen neue SageMaker Ressourcen erstellt werden.
Fügen Sie bestimmten Erstellungsaktionen Tag-Berechtigungen hinzu
Sie gewähren die sagemaker:AddTags
Erlaubnis mit Einschränkungen, indem Sie der ursprünglichen IAM Richtlinie zur Ressourcenerstellung eine zusätzliche Richtlinie hinzufügen. Die folgende Beispielrichtlinie erlaubtsagemaker:AddTags
, beschränkt sie jedoch nur auf bestimmte Aktionen zur Erstellung von SageMaker Ressourcen wie. CreateTrainingJob
{ "Sid": "AllowAddTagsForCreateOperations", "Effect": "Allow", "Action": [ "sagemaker:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:TaggingAction": "CreateTrainingJob" } } }
Die Richtlinienbedingung beschränkt sagemaker:AddTags
sich auf die Verwendung zusammen mit bestimmten Erstellungsaktionen. Bei diesem Ansatz bleibt die Erstellungsberechtigungsrichtlinie erhalten, während eine zusätzliche Richtlinie den eingeschränkten sagemaker:AddTags
Zugriff ermöglicht. Diese Bedingung verhindert pauschale sagemaker:AddTags
Genehmigungen, da sie eng auf Erstellungsaktionen beschränkt wird, die markiert werden müssen. Dadurch wird das geringste Zugriffsrecht für implementiert, sagemaker:AddTags
indem es nur für bestimmte Anwendungsfälle zur Ressourcenerstellung zugelassen wird. SageMaker
Beispiel: Erlaube Tag-Berechtigungen global und beschränke Erstellungsaktionen auf eine Domain
In diesem Beispiel für eine benutzerdefinierte IAM Richtlinie veranschaulichen die ersten beiden Aussagen die Verwendung von Tags zur Nachverfolgung der Ressourcenerstellung. Es ermöglicht die sagemaker:CreateModel
Aktion für alle Ressourcen und das Markieren dieser Ressourcen, wenn diese Aktion verwendet wird. Die dritte Anweisung zeigt, wie Tag-Werte verwendet werden können, um Operationen mit Ressourcen zu steuern. In diesem Fall wird verhindert, dass SageMaker Ressourcen erstellt werden, die mit einer bestimmten Domäne gekennzeichnet sindARN, und der Zugriff wird auf der Grundlage des Tag-Werts eingeschränkt.
Insbesondere gilt:
-
Die erste Anweisung ermöglicht die
CreateModel
Aktion für jede Ressource (*
). -
Die zweite Anweisung erlaubt die
sagemaker:AddTags
Aktion, aber nur, wenn dersagemaker:TaggingAction
Bedingungsschlüssel gleich ist.CreateModel
Dadurch wird diesagemaker:AddTags
Aktion darauf beschränkt, dass sie nur dann verwendet wird, um ein neu erstelltes Modell zu kennzeichnen. -
Die dritte Anweisung verweigert jegliche SageMaker Create-Aktion (
Create*
) für eine Ressource (*
), aber nur, wenn die Ressource ein Tag hat, das einer bestimmten Domänesagemaker:domain-arn
ARN entspricht.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
" } } } ] }
Beschränken Sie den Zugriff auf durchsuchbare Ressourcen unter bestimmten Sichtbarkeitsbedingungen
Verwenden Sie Sichtbarkeitsbedingungen, um den Zugriff Ihrer Benutzer auf bestimmte markierte Ressourcen innerhalb eines AWS Kontos zu beschränken. Ihre Benutzer können nur auf die Ressourcen zugreifen, für die sie über Berechtigungen verfügen. Wenn Ihre Benutzer ihre Ressourcen durchsuchen, können sie die Suchergebnisse auf bestimmte Ressourcen beschränken.
Möglicherweise möchten Sie, dass Ihre Benutzer nur die Ressourcen sehen und mit ihnen interagieren, die mit bestimmten Amazon SageMaker Studio- oder Amazon SageMaker Studio Classic-Domains verknüpft sind. Sie können Sichtbarkeitsbedingungen verwenden, um ihren Zugriff auf eine einzelne Domain oder mehrere Domains zu beschränken.
{ "Sid": "SageMakerApis", "Effect": "Allow", "Action": "sagemaker:Search", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:SearchVisibilityCondition/Tags.sagemaker:
example-domain-arn
/EqualsIfExists": "arn:aws:sagemaker:AWS-Region
:111122223333
:domain/example-domain-1
", "sagemaker:SearchVisibilityCondition/Tags.sagemaker:example-domain-arn
/EqualsIfExists": "arn:aws:sagemaker:AWS-Region
:111122223333
:domain/example-domain-2
" } } }
Das allgemeine Format einer Sichtbarkeitsbedingung ist"sagemaker:SearchVisibilityCondition/Tags.key": "value"
. Sie können das Schlüssel-Wert-Paar für jede markierte Ressource angeben.
{ "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:AWS-Region
:111122223333
:domain/example-domain-1
"}, {"Key": "Tags.sagemaker:example-domain-arn
", "Value": "arn:aws:sagemaker:AWS-Region
:111122223333:domain/example-domain-2
"} ] ], "SortBy": "string", "SortOrder": "string" }
Die darin enthaltene Sichtbarkeitsbedingung verwendet dieselbe "sagemaker:SearchVisibilityCondition/Tags.key": "value"
Formatierung, die in der Richtlinie angegeben ist. Ihre Benutzer können die Schlüssel-Wert-Paare angeben, die für jede markierte Ressource verwendet werden.
Wenn ein Benutzer den VisibilityConditions
Parameter in seine Suchanfrage einbezieht, aber die Zugriffsrichtlinie, die für diesen Benutzer gilt, keine Schlüssel enthält, die den Bedingungen entsprechen, die in angegeben wurdenVisibilityConditions
, ist die Search
Anfrage trotzdem zulässig und wird ausgeführt.
Wenn in der APISuchanfrage des Benutzers kein VisibilityConditions
Parameter angegeben ist, aber die für diesen Benutzer geltende Zugriffsrichtlinie Bedingungsschlüssel enthält, die sich auf diese beziehenVisibilityConditions
, wird die Search
Anfrage dieses Benutzers abgelehnt.