View a markdown version of this page

Beispiele für identitätsbasierte Richtlinien von Amazon SageMaker AI - Amazon SageMaker KI

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 identitätsbasierte Richtlinien von Amazon SageMaker AI

Standardmäßig sind IAM-Benutzer und -Rollen nicht berechtigt, SageMaker AI-Ressourcen zu erstellen oder zu ändern. Sie können auch keine Aufgaben mithilfe der AWS-Managementkonsole AWS CLI, oder AWS API ausführen. Ein IAM-Administrator muss IAM-Richtlinien erstellen, die Benutzern und Rollen die Berechtigung zum Ausführen bestimmter API-Operationen für die angegebenen Ressourcen gewähren, die diese benötigen. Der Administrator muss diese Richtlinien anschließend den IAM-Benutzern oder -Gruppen anfügen, die diese Berechtigungen benötigen. Informationen zum anfügen von Richtlinien an einen Benutzer oder eine Gruppe in finden Sie unter Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im .

Informationen dazu, wie Sie unter Verwendung dieser beispielhaften JSON-Richtliniendokumente eine identitätsbasierte IAM-Richtlinie erstellen, finden Sie unter Erstellen von Richtlinien auf der JSON-Registerkarte.

Best Practices für Richtlinien

Identity-based Richtlinien legen fest, ob jemand SageMaker KI-Ressourcen in Ihrem Konto erstellen, darauf zugreifen oder löschen kann. Dies kann zusätzliche Kosten für Ihr verursachen AWS-Konto. Wenn du identitätsbasierte Richtlinien erstellst oder bearbeitest, befolge diese Richtlinien und Empfehlungen:

  • Beginnen Sie mit AWS verwalteten Richtlinien und wechseln Sie zu Berechtigungen mit 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 unter Von AWS verwaltete Richtlinien oder Von AWS verwaltete Richtlinien für Auftragsfunktionen im IAM-Benutzerhandbuch.

  • Anwendung von Berechtigungen mit den geringsten Rechten – Wenn Sie mit IAM-Richtlinien Berechtigungen festlegen, gewähren Sie nur die Berechtigungen, die für die Durchfü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 von IAM zum Anwenden von Berechtigungen finden Sie unter Richtlinien und Berechtigungen in IAM im IAM-Benutzerhandbuch.

  • Verwenden von Bedingungen in IAM-Richtlinien zur weiteren Einschränkung des Zugriffs – Sie können Ihren Richtlinien eine Bedingung hinzufügen, um den Zugriff auf Aktionen und Ressourcen zu beschränken. Sie können beispielsweise eine Richtlinienbedingung schreiben, um festzulegen, dass alle Anforderungen mithilfe von SSL gesendet werden müssen. Sie können auch Bedingungen verwenden, um Zugriff auf Serviceaktionen zu gewähren, wenn diese im Rahmen einer bestimmten Aktion verwendet werden AWS-Service, z. CloudFormation B. Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Bedingung im IAM-Benutzerhandbuch.

  • Verwenden von IAM Access Analyzer zur Validierung Ihrer IAM-Richtlinien, um sichere und funktionale Berechtigungen zu gewährleisten – IAM Access Analyzer validiert neue und vorhandene Richtlinien, damit die Richtlinien der IAM-Richtliniensprache (JSON) und den bewährten IAM-Methoden entsprechen. IAM Access Analyzer stellt mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen zur Verfügung, damit Sie sichere und funktionale Richtlinien erstellen können. Weitere Informationen finden Sie unter Richtlinienvalidierung mit IAM Access Analyzer im IAM-Benutzerhandbuch.

  • Mehrstufige Authentifizierung (MFA) erforderlich — Wenn Sie ein Szenario haben, in dem IAM-Benutzer oder ein Root-Benutzer in Ihrem System erforderlich sind AWS-Konto, aktivieren Sie MFA für zusätzliche Sicherheit. Um MFA beim Aufrufen von API-Vorgängen anzufordern, fügen Sie Ihren Richtlinien MFA-Bedingungen hinzu. Weitere Informationen finden Sie unter Sicherer API-Zugriff mit MFA im IAM-Benutzerhandbuch.

Weitere Informationen zu bewährten Methoden in IAM finden Sie unter Best Practices für die Sicherheit in IAM im IAM-Benutzerhandbuch.

Verwenden der AI-Konsole SageMaker

Um auf die Amazon SageMaker AI-Konsole zugreifen zu können, müssen Sie über ein Mindestmaß an Berechtigungen verfügen. Diese Berechtigungen müssen es Ihnen ermöglichen, Details zu den SageMaker KI-Ressourcen in Ihrem AWS Konto aufzulisten und anzuzeigen. Wenn Sie eine identitätsbasierte Richtlinie erstellen, die restriktiver als die mindestens erforderlichen Berechtigungen ist, 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 AI-Konsole weiterhin verwenden können, müssen Sie den Entitäten außerdem die folgende AWS verwaltete Richtlinie zuordnen. Weitere Informationen finden Sie unter Hinzufügen von Berechtigungen zu einem Benutzer in der Serviceautorisierungsreferenz:

Sie müssen Benutzern, die nur die AWS CLI oder die AWS API aufrufen, keine Mindestberechtigungen für die Konsole gewähren. Stattdessen sollten Sie nur Zugriff auf die Aktionen zulassen, die der API-Operation entsprechen, die Sie ausführen möchten.

Für die Verwendung der Amazon SageMaker AI-Konsole sind Berechtigungen erforderlich

In der Referenztabelle für Berechtigungen sind die Amazon SageMaker AI-API-Operationen aufgeführt und die erforderlichen Berechtigungen für jeden Vorgang aufgeführt. Weitere Informationen zu Amazon SageMaker AI-API-Vorgängen finden Sie unterAmazon SageMaker AI API-Berechtigungen: Referenz für Aktionen, Berechtigungen und Ressourcen.

Um die Amazon SageMaker AI-Konsole verwenden zu können, müssen Sie Berechtigungen für zusätzliche Aktionen erteilen. Die Konsole benötigt insbesondere Berechtigungen, mit denen ec2-Aktionen Subnetze, VPCs und Sicherheitsgruppen anzeigen können. 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:

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

  • den AWS Marketplace, um Abonnements einzusehen,

  • Amazon Cognito Operations zur Verwaltung Ihrer privaten Belegschaft

  • Amazon-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:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "GroundTruthConsole", "Effect": "Allow", "Action": [ "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:RunGenerateManifestByCrawlingJob", "lambda:InvokeFunction", "lambda:ListFunctions", "s3:GetObject", "s3:PutObject" ], "Resource": "*" } ] }

Erforderliche Berechtigungen für die Verwendung der Konsole von Amazon Augmented AI (Preview)

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:

JSON
{ "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:*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", "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

In diesem Beispiel wird gezeigt, wie Sie eine Richtlinie erstellen, die IAM-Benutzern die Berechtigung zum Anzeigen der eingebundenen Richtlinien und verwalteten Richtlinien gewährt, die ihrer Benutzeridentität angefügt sind. Diese Richtlinie beinhaltet Berechtigungen zum Ausführen dieser Aktion auf der Konsole oder programmgesteuert mithilfe der AWS CLI OR-API. AWS

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

Steuern Sie die Erstellung von SageMaker KI-Ressourcen mit Bedingungsschlüsseln

Steuern Sie den feinkörnigen Zugriff, um die Erstellung von SageMaker KI-Ressourcen mithilfe von SageMaker AI-specific Bedingungsschlüsseln zu ermöglichen. Informationen zur Verwendung von Bedingungsschlüsseln in IAM-Richtlinien finden Sie unter IAM JSON Richtlinienelemente: Bedingung im IAM-Benutzerhandbuch.

Die Bedingungsschlüssel, die zugehörigen API-Aktionen und Links zur entsprechenden Dokumentation sind in der Serviceautorisierungsreferenz unter Bedingungsschlüssel für SageMaker KI aufgeführt.

Die folgenden Beispiele zeigen, wie die SageMaker AI-Bedingungsschlüssel zur Zugriffskontrolle verwendet werden.

Steuern Sie den Zugriff auf SageMaker KI-Ressourcen mithilfe von Dateisystem-Bedingungsschlüsseln

SageMaker KI-Training bietet eine sichere Infrastruktur, in der der Trainingsalgorithmus ausgeführt werden kann. In einigen Fällen benötigen Sie jedoch möglicherweise eine umfassendere Verteidigung. 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 (Lesevorgänge möglich)

  • Sicherheitsgruppen

Beschränken eines IAM-Benutzers auf bestimmte Verzeichnisse und Zugriffsmodi

Die folgende Richtlinie beschränkt einen Benutzer auf die /sagemaker/xgboost-dm/validation Verzeichnisse /sagemaker/xgboost-dm/train und eines EFS-Dateisystems auf ro (schreibgeschützt): AccessMode

Anmerkung

Wenn ein Verzeichnis zulässig ist, kann der Trainingsalgorithmus auch auf alle seine Unterverzeichnisse zugreifen. POSIX-Berechtigungen werden ignoriert.

JSON
{ "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 eines Benutzers auf ein bestimmtes Dateisystem

Um zu verhindern, dass ein böswilliger Algorithmus mithilfe eines Userspace-Clients direkt auf ein Dateisystem in Ihrem Konto zugreift, können Sie den Netzwerkverkehr einschränken. Um diesen Datenverkehr einzuschränken, lassen Sie nur Zugriffe von einer bestimmten Sicherheitsgruppe aus zu. Im folgenden Beispiel kann der -Benutzer nur die angegebene Sicherheitsgruppe für den Zugriff auf das Dateisystem verwenden:

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

Dieses Beispiel kann einen Algorithmus auf ein bestimmtes Dateisystem beschränken. 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 auf das Starten von Trainingsaufträgen mit Algorithmen aus genehmigten ECR-Repositorys einschränkt

Weitere Informationen zur Verwendung von Rollen mit SageMaker KI finden Sie unter SageMaker AI-Rollen.

Beschränken des Trainings auf eine bestimmte VPC

Beschränken Sie einen AWS Benutzer darauf, Schulungsjobs von einer Amazon VPC aus zu erstellen. Wenn ein Trainingsjob in einer VPC erstellt wird, können Sie VPC-Flow-Protokolle verwenden, um den gesamten Datenverkehr zum und vom Trainingscluster zu überwachen. Informationen zur Verwendung von VPC-Flow-Protokollen finden Sie unter VPC-Flow-Protokolle im Amazon Virtual Private Cloud-Benutzerhandbuch.

Die folgende Richtlinie erzwingt, dass ein Trainingsjob von einem Benutzer erstellt wird, der CreateTrainingJob aus einem VPC heraus aufruft:

JSON
{ "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 des Zugriffs auf Workforce-Typen für Ground-Truth-Beschriftungsaufträge und Amazon A2I Human Review Workflows

Die Arbeitsteams von Amazon SageMaker Ground Truth und Amazon Augmented AI lassen sich in einen von drei Belegschaftstypen einteilen:

  • öffentlich (mit Amazon Mechanical Turk)

  • private

  • vendor

Sie können den Benutzerzugriff auf ein bestimmtes Arbeitsteam beschränken, indem Sie einen dieser Typen oder den ARN des Arbeitsteams verwenden. Verwenden Sie dazu sagemaker:WorkteamType and/or die sagemaker:WorkteamArn Bedingungstasten. Verwenden Sie als sagemaker:WorkteamType-Bedingungsschlüssel Bedingungsoperatoren für Zeichenfolgen. Verwenden Sie für den sagemaker:WorkteamArn-Bedingungsschlüssel Amazon-Ressourcennamen(ARN)-Zustandsoperatoren. Wenn der Benutzer versucht, einen Etikettierungsauftrag mit einem eingeschränkten Arbeitsteam zu erstellen, gibt SageMaker AI den Fehler „Zugriff verweigert“ zurück.

Die folgenden Richtlinien zeigen verschiedene Möglichkeiten zur Verwendung der Bedingungsschlüssel sagemaker:WorkteamType und sagemaker:WorkteamArn mit geeigneten Bedingungsoperatoren und gültigen Bedingungswerten.

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. Es akzeptiert Bedingungswerte im folgenden Format:workforcetype-crowd, wobei workforcetype kann gleich publicprivate, oder seinvendor.

JSON
{ "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 ihn mit einer gültigen IAM-Regex-Variante der ARN des Arbeitsteams und dem ArnLike Bedingungsoperator verwendet. Die zweite zeigt, wie Sie es mit dem ArnEquals-Bedingungsoperator und dem Arbeitsteam-ARN verwenden.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "ArnLike": { "sagemaker:WorkteamArn": "arn:aws:sagemaker:*:*:workteam/public-crowd/*" } } } ] }
JSON
{ "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 der Verschlüsselung von Eingabedaten

Die folgende Richtlinie beschränkt die Angabe eines AWS KMS Schlüssels zum Verschlüsseln von Eingabedaten mithilfe des sagemaker:VolumeKmsKey Bedingungsschlüssels bei der Erstellung:

  • Training

  • Hyperparameter-Abstimmung

  • Labeling-Aufträge

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

Erzwingen der Netzwerkisolierung für Trainingsaufträge

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:

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

Erzwingen eines bestimmten Instance-Typs für Trainingsaufträge

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:

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

Erzwingen der Deaktivierung des Internetzugriffs und des Root-Zugriffs zum Erstellen von Notebook-Instances

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-Instance finden Sie unter Steuern Sie den Root-Zugriff auf eine Notebook-Instance SageMaker. Informationen zum Deaktivieren des Internetzugriffs für eine Notebook-Instance finden Sie unterVerbinden einer Notebook-Instance in einer VPC mit externen Ressourcen.

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.

JSON
{ "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 AI-API mithilfe identitätsbasierter Richtlinien

Verwenden Sie identitätsbasierte SageMaker IAM-Richtlinien, um den Zugriff auf KI-API-Aufrufe und Aufrufe von SageMaker KI-gehosteten Endpunkten zu kontrollieren.

Beschränken Sie den Zugriff auf SageMaker AI-API und Runtime auf Aufrufe aus Ihrer VPC

Wenn Sie in Ihrer VPC einen Schnittstellenendpunkt einrichten, können Personen außerhalb der VPC über das Internet eine Verbindung zur SageMaker AI-API und zur Laufzeit herstellen. Um dies zu verhindern, fügen Sie eine IAM-Richtlinie hinzu, die den Zugriff auf Anrufe aus der VPC einschränkt. Diese Aufrufe müssen auf alle Benutzer und Gruppen beschränkt sein, die Zugriff auf Ihre SageMaker KI-Ressourcen haben. Informationen zum Erstellen eines VPC-Schnittstellenendpunkts für die SageMaker AI-API und -Laufzeit finden Sie unterStellen Sie innerhalb Ihrer VPC eine Verbindung zu SageMaker KI her.

Wichtig

Wenn Sie eine IAM-Richtlinie anwenden, die einer der folgenden ähnelt, können Benutzer nicht über die Konsole auf die angegebenen SageMaker AI-APIs zugreifen.

Zum Beschränken des Zugriffs ausschließlich auf Verbindungen von innerhalb Ihrer VPC erstellen Sie eine AWS Identity and Access Management -Richtlinie, die den Zugriff beschränkt. Dieser Zugriff darf nur auf Anrufe beschränkt werden, die aus Ihrer VPC 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 SageMaker AI-API oder Runtime verwendet werden.

Anmerkung

Diese Richtlinie erlaubt Verbindungen nur zu Aufrufern innerhalb eines Subnetzes, in dem Sie einen Schnittstellendpunkt erstellt haben.

JSON
{ "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 die API auf Aufrufe zu beschränken, die über den Schnittstellenendpunkt erfolgen, verwenden Sie den Bedingungsschlüssel aws:SourceVpce anstelle von aws:SourceVpc:

JSON
{ "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 AI-API- und Runtime-Aufrufe nach IP-Adresse

Sie können den Zugriff auf SageMaker AI-API-Aufrufe und Runtime-Aufrufe nur über IP-Adressen in einer von Ihnen angegebenen Liste zulassen. Erstellen Sie dazu eine IAM-Richtlinie, die den Zugriff auf die API verweigert, sofern der Anruf nicht von einer IP-Adresse in der Liste stammt. Hängen Sie diese Richtlinie dann an alle AWS Identity and Access Management Benutzer, Gruppen oder Rollen an, die für den Zugriff auf die API oder Runtime verwendet werden. Informationen zum Erstellen von IAM-Richtlinien finden Sie unter Erstellen von IAM-Richtlinien im AWS Identity and Access Management Benutzerhandbuch.

Um die Liste der IP-Adressen anzugeben, die Zugriff auf die API-Aufrufe haben, verwenden Sie den folgenden Befehl:

  • IpAddress-Bedingungsoperator

  • aws:SourceIP-Bedingungskontextschlüssel

Informationen über IAM-Bedingungsoperatoren finden Sie unter IAM JSON-Richtlinienelemente: Bedingungsoperatoren im AWS Identity and Access Management Benutzerhandbuch. Informationen über IAM-Bedingungskontextschlüssel 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.0192.0.2.255 und 203.0.113.0203.0.113.255:

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

Einschränken des Zugriffs auf eine Notebook-Instance nach IP-Adresse

Sie können den Zugriff auf eine Notebook-Instance nur über IP-Adressen in einer von Ihnen angegebenen Liste zulassen. Erstellen Sie dazu eine IAM-Richtlinie, die den Zugriff verweigert, CreatePresignedNotebookInstanceUrlsofern der Anruf nicht von einer IP-Adresse in der Liste stammt. Hängen Sie diese Richtlinie dann an jeden AWS Identity and Access Management Benutzer, jede Gruppe oder Rolle an, die für den Zugriff auf die Notebook-Instanz verwendet wird. Informationen zum Erstellen von IAM-Richtlinien finden Sie unter Erstellen von IAM-Richtlinien im AWS Identity and Access Management Benutzerhandbuch.

Zum Angeben der Liste von IP-Adressen, die Zugriff auf die Notebook-Instance haben sollen, verwenden Sie den:

  • IpAddress-Bedingungsoperator

  • aws:SourceIP-Bedingungskontextschlüssel

Informationen über IAM-Bedingungsoperatoren finden Sie unter IAM JSON-Richtlinienelemente: Bedingungsoperatoren im AWS Identity and Access Management Benutzerhandbuch. Informationen über IAM-Bedingungskontextschlüssel 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.0192.0.2.255 oder 203.0.113.0203.0.113.255 liegt:

JSON
{ "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 beschränkt den Zugriff sowohl für das Aufrufen von CreatePresignedNotebookInstanceUrl als auch für die URL, die durch diesen Aufruf zurückgegeben wird. 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-Adresse ist nicht kompatibel, wenn über einen VPC-Schnittstellenendpunkt eine Verbindung zu SageMaker AI hergestellt wird. . Informationen zum Einschränken des Zugriffs auf eine Notebook-Instance bei Verbindung über einen VPC-Schnittstellenendpunkt finden Sie unter Herstellen einer Verbindung zu einer Notebook-Instance über einen VPC-Schnittstellenendpunkt.

Steuern Sie den Zugriff auf SageMaker KI-Ressourcen mithilfe von Tags

Geben Sie Tags in einer IAM-Richtlinie an, um den Zugriff auf Gruppen von SageMaker KI-Ressourcen zu kontrollieren. Verwendung von Tags zur Umsetzung der attributbasierten Zugriffskontrolle (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 den IAM-Richtlinien ResourceTag Bedingungen festlegen, um den Zugriff für jede Gruppe zu gewähren.

Anmerkung

Tag-based 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

  • Suchen

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 DevTeam1 mit Berechtigungen API-Aufrufe durchzuführen für die Notebook-Instances bereitstellen, die Sie für das erste Projekt verwenden. Sie können DevTeam2 angeben, dass API-Aufrufe für Notebook-Instances getätigt werden, 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.

So steuern Sie den Zugriff auf API-Aufrufe (Beispiel)
  1. Fügen Sie ein Tag mit dem Schlüssel Project und dem Wert A zu den Notebook-Instances für das erste Projekt hinzu. Informationen zum Hinzufügen von Tags zu SageMaker AI-Ressourcen finden Sie unter AddTags.

  2. Fügen Sie ein Tag mit dem Schlüssel Project und dem Wert B zu den Notebook-Instances für das zweite Projekt hinzu.

  3. Erstellen Sie eine IAM-Richtlinie mit einer ResourceTag-Bedingung, die den Zugriff auf die für das zweite Projekt verwendeten Notebook-Instances verweigert. Hängen Sie diese Richtlinie dann an. DevTeam1 Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die alle API-Aufrufe an Notebook-Instances verweigert, die über ein Tag mit dem Schlüssel Project und dem Wert B verfügen:

    JSON
    { "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 über die Erstellung von IAM-Richtlinien und deren Anhängen an Identitäten finden Sie im AWS Identity and Access Management Benutzerhandbuch unter Zugriffskontrolle mithilfe von Richtlinien.

  4. Erstellen Sie eine IAM-Richtlinie mit einer ResourceTag-Bedingung, die den Zugriff auf die für das erste Projekt verwendeten Notebook-Instances verweigert. Hängen Sie diese Richtlinie dann an. DevTeam2 Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die alle API-Aufrufe an Notebook-Instances verweigert, die über ein Tag mit dem Schlüssel Project und dem Wert A verfügen:

    JSON
    { "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 SageMaker KI-Ressourcen bereit

Tags sind Metadaten-Labels, die Sie an bestimmte AWS Ressourcen anhängen 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:

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.

  • User-defined Tags in SageMaker KI: Benutzer können Tags hinzufügen, wenn sie SageMaker KI-Ressourcen mithilfe von SageMaker SDKs, der AWS CLI CLI, SageMaker APIs, der SageMaker AI-Konsole oder CloudFormation Vorlagen erstellen.

    Anmerkung

    User-defined Tags können außer Kraft gesetzt werden, wenn eine Ressource später aktualisiert und der Tag-Wert geändert oder ersetzt wird. Beispielsweise könnte ein mit {Team: A} erstellter Trainingsjob unsachgemäß aktualisiert und als {Team: B} neu markiert werden. Infolgedessen werden die zulässigen Berechtigungen möglicherweise falsch zugewiesen. 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, Tag-Berechtigungen eng einzuschränken und IAM-Bedingungen zu verwenden, um die Tagging-Fähigkeiten zu kontrollieren.

  • AWS generierte Tags in der SageMaker KI: Die SageMaker KI kennzeichnet automatisch bestimmte Ressourcen, die sie erstellt. Beispielsweise weisen Studio und Studio Classic das sagemaker:domain-arn Tag automatisch den von ihnen erstellten SageMaker KI-Ressourcen zu. Das Taggen neuer Ressourcen mit dem Domain-ARN ermöglicht die Rückverfolgbarkeit der Herkunft von SageMaker KI-Ressourcen wie Trainingsjobs, Modellen und Endpunkten. Für eine genauere Kontrolle und Nachverfolgung erhalten neue Ressourcen zusätzliche Tags wie:

    • sagemaker:user-profile-arn- Der ARN des Benutzerprofils, das die Ressource erstellt hat. Dies ermöglicht die Nachverfolgung von Ressourcen, die von bestimmten Benutzern erstellt wurden.

    • sagemaker:space-arn- Der ARN des Bereichs, 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 Taggen von AWS Ressourcen und bewährte Methoden finden Sie unter Taggen Ihrer AWS Ressourcen. Informationen zu den wichtigsten Anwendungsfällen für Tagging finden Sie unter Anwendungsfälle taggen.

Erteilen Sie die Erlaubnis, beim Erstellen von SageMaker KI-Ressourcen Tags hinzuzufügen

Sie können Benutzern (User-defined Tags) oder Studio und Studio Classic (AWS generierte Tags) gestatten, neuen SageMaker KI-Ressourcen bei der Erstellung Stichwörter hinzuzufügen. Dazu müssen ihre IAM-Berechtigungen beides beinhalten:

  • Die SageMaker Basis-AI-Erstellungsberechtigung für diesen Ressourcentyp.

  • Die sagemaker:AddTags Erlaubnis.

Um einem Benutzer beispielsweise zu erlauben, einen SageMaker Schulungsjob zu erstellen und ihn zu taggen, müssten die 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, Amazon SageMaker AI-Ressourcen zu erstellen, müssen ebenfalls Berechtigungen zum Hinzufügen von Stichwörtern zu diesen Ressourcen gewähren. Die Berechtigung 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 erlaubt, das Taggen jedoch nicht zulässt, können "AccessDenied" Fehler auftreten, wenn versucht wird, Ressourcen zu erstellen.

AWS verwaltete Richtlinien für Amazon AI SageMakerdie Berechtigungen zum Erstellen von SageMaker KI-Ressourcen gewähren, enthalten bereits Berechtigungen zum Hinzufügen von Tags bei der Erstellung dieser Ressourcen.

Administratoren ordnen diese IAM-Berechtigungen entweder folgenden Personen zu:

  • AWS Dem Benutzer zugewiesene IAM-Rollen für benutzerdefinierte Tags

  • die Ausführungsrolle, die von Studio oder Studio Classic für AWS generierte Tags verwendet wird

Anweisungen zum Erstellen und Anwenden benutzerdefinierter IAM-Richtlinien finden Sie unter Erstellen von IAM-Richtlinien (Konsole).

Anmerkung

Die Liste der Operationen zum Erstellen von SageMaker KI-Ressourcen finden Sie in der SageMaker API-Dokumentation, indem Sie nach Aktionen suchen, die mit beginnen. Create Diese Erstellungsaktionen wie CreateTrainingJob und sind die OperationenCreateEndpoint, mit denen neue SageMaker KI-Ressourcen erstellt werden.

Fügen Sie bestimmten Erstellungsaktionen Tag-Berechtigungen hinzu

Sie gewähren die sagemaker:AddTags Genehmigung mit Einschränkungen, indem Sie der ursprünglichen Richtlinie zur Ressourcenerstellung eine zusätzliche IAM-Richtlinie hinzufügen. Die folgende Beispielrichtlinie erlaubtsagemaker:AddTags, beschränkt sie jedoch auf bestimmte SageMaker KI-Ressourcen, um Aktionen wie CreateTrainingJob z. B.

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

Die Richtlinienbedingung beschränkt sich sagemaker:AddTags darauf, zusammen mit bestimmten Erstellungsaktionen verwendet zu werden. 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 die geringste Zugriffsberechtigung implementiert, sagemaker:AddTags indem sie nur für bestimmte Anwendungsfälle bei der Erstellung von SageMaker KI-Ressourcen zulässig ist.

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. Sie 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 KI-Ressourcen erstellt werden, die mit einem bestimmten Domain-ARN gekennzeichnet sind, und schränkt den Zugriff auf der Grundlage des Tag-Werts ein.

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 der sagemaker:TaggingAction Bedingungsschlüssel gleich ist. CreateModel Dadurch wird die sagemaker:AddTags Aktion nur dann eingeschränkt, wenn sie zum Markieren eines neu erstellten Modells verwendet wird.

  • Die dritte Anweisung verweigert jegliche SageMaker AI-Create-Aktion (Create*) für eine beliebige Ressource (*), aber nur, wenn die Ressource ein Tag hat, das einem bestimmten Domain-ARN, sagemaker:domain-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 mit Sichtbarkeitsbedingungen

Verwenden Sie Sichtbarkeitsbedingungen, um den Zugriff Ihrer Benutzer auf bestimmte markierte Ressourcen innerhalb eines AWS Kontos einzuschrä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 bestimmten Amazon SageMaker Studio- oder Amazon SageMaker Studio Classic-Domains zugeordnet 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 Such-API-Anforderung des Benutzers kein VisibilityConditions Parameter angegeben ist, die für diesen Benutzer geltende Zugriffsrichtlinie jedoch Bedingungsschlüssel enthält, die sich auf diese beziehenVisibilityConditions, wird die Search Anfrage dieses Benutzers abgelehnt.