View a markdown version of this page

Richten Sie IAM-Berechtigungen für MLFlow-Apps ein - 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.

Richten Sie IAM-Berechtigungen für MLFlow-Apps ein

Sie müssen die erforderlichen IAM-Servicerollen konfigurieren, um mit MLflow Apps in Amazon SageMaker AI zu beginnen.

Wenn Sie eine neue Amazon SageMaker AI-Domain für den Zugriff auf Ihre Experimente in Studio erstellen, können Sie die erforderlichen IAM-Berechtigungen bei der Domaineinrichtung konfigurieren. Weitere Informationen finden Sie unter Einrichten von MLflow-IAM-Berechtigungen beim Erstellen einer Domain.

Informationen zum Einrichten von Berechtigungen mithilfe der IAM-Konsole finden Sie unter Erstellen der erforderlichen IAM-Servicerollen in der IAM-Konsole.

Sie müssen die Autorisierungskontrollen für sagemaker-mlflow-Aktionen konfigurieren. Sie können optional detailliertere Autorisierungskontrollen definieren, um aktionsspezifische MLflow-Berechtigungen zu steuern. Weitere Informationen finden Sie unter Erstellen aktionsspezifischer Autorisierungskontrollen.

Einrichten von MLflow-IAM-Berechtigungen beim Erstellen einer Domain

Wenn Sie eine neue Amazon SageMaker AI-Domain für Ihre Organisation einrichten, können Sie die IAM-Berechtigungen für Ihre Domain-Servicerolle über die Einstellungen für Benutzer und ML-Aktivitäten konfigurieren.

  1. Richten Sie mithilfe der SageMaker AI-Konsole eine neue Domain ein. Wählen Sie auf der Seite SageMaker AI-Domain einrichten die Option Für Organisationen einrichten aus. Weitere Informationen finden Sie unter Benutzerdefinierte Einrichtung mit der Konsole.

  2. Wählen Sie beim Einrichten von Benutzern und ML-Aktivitäten aus den folgenden ML-Aktivitäten für MLflow: MLflow verwenden, MLflow-Apps verwalten und Zugriff auf AWS Dienste für MLflow erforderlich. Weitere Informationen zu diesen Aktivitäten finden Sie in den Erläuterungen, die diesem Verfahren folgen.

  3. Schließen Sie die Einrichtung und Erstellung Ihrer neuen Domain ab.

Die folgenden MLflow ML-Aktivitäten sind in Amazon Role Manager verfügbar: SageMaker

  • MLflow verwenden: Diese ML-Aktivität gewährt der Domain-Servicerolle die Berechtigung, MLflow-REST-APIs aufzurufen, um Experimente, Läufe und Modelle in MLflow zu verwalten.

  • MLflow Apps verwalten: Diese ML-Aktivität gewährt der Domain-Servicerolle die Berechtigung, MLflow Apps zu erstellen, zu aktualisieren und zu löschen.

  • AWS-Services Für MLflow-Apps erforderlicher Zugriff: Diese ML-Aktivität bietet die Domain-Servicerollenberechtigungen, die für den Zugriff auf Amazon S3 und die SageMaker AI Model Registry erforderlich sind. Auf diese Weise können Sie die Domain-Servicerolle als Tracking-Server-Servicerolle verwenden.

Weitere Informationen über ML-Aktivitäten im Rollenmanager finden Sie unter Referenz zur ML-Aktivität.

Erstellen der erforderlichen IAM-Servicerollen in der IAM-Konsole

Wenn Sie Ihre Domain-Servicerolle nicht erstellt oder aktualisiert haben, müssen Sie stattdessen die folgenden Servicerollen in der IAM-Konsole erstellen, um eine MLflow-App zu erstellen und zu verwenden:

  • Eine MLflow App IAM-Servicerolle, die die App für den Zugriff auf KI-Ressourcen verwenden kann SageMaker

  • Eine SageMaker AI-IAM-Servicerolle, die SageMaker KI verwenden kann, um MLflow-Ressourcen zu erstellen und zu verwalten

IAM-Richtlinien für die MLflow App IAM-Servicerolle

Die MLflow App IAM-Servicerolle wird von der App verwendet, um auf die benötigten Ressourcen wie Amazon S3 und die Model Registry zuzugreifen. SageMaker

Verwenden Sie beim Erstellen der App-IAM-Servicerolle die folgende IAM-Vertrauensrichtlinie:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Fügen Sie in der IAM-Konsole Ihrer App-Servicerolle die folgende Berechtigungsrichtlinie hinzu:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:Put*", "s3:List*", "sagemaker:AddTags", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:UpdateModelPackage", "sagemaker:DescribeModelPackageGroup" ], "Resource": "*" } ] }

IAM-Richtlinie für die SageMaker AI-IAM-Servicerolle

Die SageMaker AI-Servicerolle wird vom Client verwendet, der auf die MLflow-App zugreift, und benötigt Berechtigungen, um MLflow-REST-APIs aufrufen zu können. Die SageMaker AI-Servicerolle benötigt außerdem SageMaker API-Berechtigungen, um Apps zu erstellen, anzuzeigen, zu aktualisieren und zu löschen.

Sie können eine neue Rolle erstellen oder eine vorhandene Rolle aktualisieren. Für die SageMaker AI-Servicerolle ist die folgende Richtlinie erforderlich:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker-mlflow:*", "sagemaker:CreateMlflowTrackingServer", "sagemaker:ListMlflowTrackingServers", "sagemaker:UpdateMlflowTrackingServer", "sagemaker:DeleteMlflowTrackingServer", "sagemaker:StartMlflowTrackingServer", "sagemaker:StopMlflowTrackingServer", "sagemaker:CreatePresignedMlflowTrackingServerUrl" ], "Resource": "*" } ] }

Erstellen aktionsspezifischer Autorisierungskontrollen

Sie müssen Autorisierungskontrollen einrichten für und können optional aktionsspezifische Autorisierungskontrollen konfigurierensagemaker-mlflow, um die detaillierteren MLflow-Berechtigungen zu regeln, die Ihre Benutzer für eine MLflow-App haben.

Anmerkung

Bei den folgenden Schritten wird davon ausgegangen, dass Sie bereits über einen ARN für eine MLflow-App verfügen.

Für MLflow-Apps werden IAM-Aktionen auf Datenebene unterstützt

Die folgenden SageMaker AI-MLflow-Aktionen werden für die Autorisierungszugriffskontrolle unterstützt:

  • Wahrsager: CallMlflowAppApi

IAM-Berechtigungen für die Model Registry-Synchronisierung und das Lebenszyklusmanagement

Wenn Sie MLflow-Modelle bei der SageMaker AI Model Registry registrieren, benötigt die MLflow App IAM-Servicerolle die folgenden Berechtigungen, um Modellregistrierung, Lebenszyklusmanagement und Abstammungsverfolgung durchzuführen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateModelPackageGroup", "sagemaker:DescribeModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:UpdateModelPackage", "sagemaker:AddTags" ], "Resource": "*" }, { "Sid": "S3ArtifactAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "LineageTracking", "Effect": "Allow", "Action": [ "sagemaker:CreateAction", "sagemaker:AddAssociation" ], "Resource": "*" } ] }

In der folgenden Tabelle wird beschrieben, was die einzelnen Berechtigungen ermöglichen:

Action Zweck
sagemaker:CreateModelPackageGroup Erstellt eine Modellpaketgruppe, wenn Sie einen neuen Modellnamen registrieren.
sagemaker:DescribeModelPackageGroup Überprüft, ob eine Modellpaketgruppe bereits existiert, bevor eine erstellt wird.
sagemaker:CreateModelPackage Erstellt ein Modellpaket (Version), wenn Sie eine Modellversion registrieren.
sagemaker:UpdateModelPackage Aktualisiert die Lebenszyklusphase und den Status des Modellpakets, wenn Sie Lebenszyklus-Aliase festlegen.
sagemaker:AddTags Versieht das Modellpaket mit Metadaten, die es wieder mit dem MLflow-Modell verknüpfen.
s3:GetObject Liest während der Registrierung Inferenzspezifikations- und Bewertungsartefakte aus Amazon S3.
sagemaker:CreateAction, sagemaker:AddAssociation Erstellt Abstammungszuordnungen zwischen dem MLflow-Modell und dem SageMaker AI Model Package. Falls sie fehlen, wird Lineage stillschweigend übersprungen.

Beschränken Sie Lebenszyklusübergänge mit IAM-Bedingungsschlüsseln

Sie können IAM-Bedingungsschlüssel verwenden, um zu steuern, welche Lebenszyklusübergänge eine Rolle durchführen darf. Die folgenden Bedingungsschlüssel sind für die sagemaker:UpdateModelPackage Aktion verfügbar:

  • sagemaker:ModelLifeCycle/stage— Die Lifecycle-Phase wird festgelegt. Werte:staging,production.

  • sagemaker:ModelLifeCycle/stageStatus— Der Lebenszyklusstatus wird gerade festgelegt. Werte:pending,active.

Beispiel: Werbeaktionen für die Produktion ablehnen

Die folgende Richtlinie verhindert, dass eine Rolle Models auf der production Bühne bewirbt:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "sagemaker:UpdateModelPackage", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ModelLifeCycle/stage": "production" } } } ] }

Beispiel: Nur staging/pending Übergänge zulassen

Die folgende Richtlinie schränkt eine Rolle so ein, dass nur Models mit pending Status auf die staging Bühne gesetzt werden:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:UpdateModelPackage", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ModelLifeCycle/stage": "staging", "sagemaker:ModelLifeCycle/stageStatus": "pending" } } } ] }