View a markdown version of this page

Einrichten von IAM-Berechtigungen für MLflow - 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.

Einrichten von IAM-Berechtigungen für MLflow

Sie müssen die erforderlichen IAM-Servicerollen konfigurieren, um mit MLflow 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 während 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 IAM-Berechtigungen für Ihre Domain-Servicerolle über die Einstellungen „Benutzer“ und „ML-Aktivitäten“ konfigurieren.

Um IAM-Berechtigungen für die Verwendung von MLflow mit SageMaker KI bei der Einrichtung einer neuen Domain zu konfigurieren
  1. Richten Sie mit der SageMaker AI-Konsole eine neue Domain ein. Wählen Sie auf der Seite SageMaker KI-Domain einrichten die Option Für Organisationen einrichten aus. Weitere Informationen finden Sie unter Benutzerdefinierte Einrichtung mit der Konsole.

  2. Wählen Sie bei der Einrichtung von Benutzern und ML-Aktivitäten aus den folgenden ML-Aktivitäten für MLflow: MLflow verwenden, MLflow Tracking Server 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 SageMaker Role Manager verfügbar:

  • 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-Tracking-Server verwalten: Diese ML-Aktivität gewährt der Domain-Servicerolle die Erlaubnis, Tracking-Server zu erstellen, zu aktualisieren, zu starten, zu beenden und zu löschen.

  • Zugriff auf AWS Services for MLflow erforderlich: Diese ML-Aktivität stellt die Domain-Servicerollenberechtigungen bereit, 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 einen MLflow-Tracking-Server zu erstellen und zu verwenden:

  • Eine IAM-Servicerolle für den Tracking-Server, mit der der Tracking-Server auf KI-Ressourcen zugreifen SageMaker kann

  • Eine SageMaker KI-IAM-Servicerolle, mit der SageMaker KI MLflow-Ressourcen erstellen und verwalten kann

IAM-Richtlinien für die IAM-Servicerolle des Tracking-Servers

Die IAM-Server-Server-Server-Server-Serverrolle wird vom Tracking-Server verwendet, um auf die benötigten Ressourcen wie Amazon S3 und die SageMaker Model Registry zuzugreifen.

Verwenden Sie bei der Erstellung der IAM-Servicerolle für den Tracking-Server 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 die folgende Berechtigungsrichtlinie zu Ihrer Tracking-Server-Servicerolle 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 den MLflow Tracking Server zugreift, und benötigt Berechtigungen, um MLflow REST-APIs aufzurufen. Die SageMaker AI-Servicerolle benötigt außerdem SageMaker API-Berechtigungen, um Tracking-Server zu erstellen, anzuzeigen, zu aktualisieren, zu starten, zu stoppen 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 für sagemaker-mlflow einrichten und können optional aktionsspezifische Autorisierungskontrollen konfigurieren, um MLflow-Berechtigungen, die Ihre Benutzer auf einem MLflow-Tracking-Server haben, detaillierter zu steuern.

Anmerkung

Bei den folgenden Schritten wird davon ausgegangen, dass bereits ein ARN für einen MLflow-Tracking-Server verfügbar ist. Informationen zum Erstellen eines Tracking-Servers finden Sie unter Erstellen eines Tracking-Servers in Studio oderErstellen Sie einen Tracking-Server mit dem AWS CLI.

Der folgende Befehl erstellt eine Datei mit dem Namenmlflow-policy.json, die Ihrem Tracking-Server IAM-Berechtigungen für alle verfügbaren SageMaker AI MLflow-Aktionen gewährt. Sie können die Berechtigungen eines Benutzers optional einschränken, indem Sie die spezifischen Aktionen auswählen, die dieser Benutzer ausführen soll. Für eine Liste der verfügbaren Aktionen sieheFür MLflow unterstützte IAM-Aktionen.

# Replace "Resource":"*" with "Resource":"TrackingServerArn" # Replace "sagemaker-mlflow:*" with specific actions printf '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker-mlflow:*", "Resource": "*" } ] }' > mlflow-policy.json

Verwenden Sie die mlflow-policy.json-Datei, um eine IAM-Richtlinie mithilfe der AWS CLI zu erstellen.

aws iam create-policy \ --policy-name MLflowPolicy \ --policy-document file://mlflow-policy.json

Rufen Sie Ihre Konto-ID ab und verknüpfen Sie die Richtlinie mit Ihrer IAM-Rolle.

# Get your account ID aws sts get-caller-identity # Attach the IAM policy using your exported role and account ID aws iam attach-role-policy \ --role-name $role_name \ --policy-arn arn:aws:iam::123456789012:policy/MLflowPolicy

Für MLflow unterstützte IAM-Aktionen

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

  • sagemaker-mlflow:AccessUI

  • sagemaker-mlflow: CreateExperiment

  • sagemaker-mlflow: SearchExperiments

  • sagemaker-mlflow: GetExperiment

  • sagemaker-mlflow: GetExperimentByName

  • sagemaker-mlflow: DeleteExperiment

  • sagemaker-mlflow: RestoreExperiment

  • sagemaker-mlflow: UpdateExperiment

  • sagemaker-mlflow: CreateRun

  • sagemaker-mlflow: DeleteRun

  • sagemaker-mlflow: RestoreRun

  • sagemaker-mlflow: GetRun

  • sagemaker-mlflow: LogMetric

  • sagemaker-mlflow: LogBatch

  • sagemaker-mlflow: LogModel

  • sagemaker-mlflow: LogInputs

  • sagemaker-mlflow: SetExperimentTag

  • sagemaker-mlflow: SetTag

  • sagemaker-mlflow: DeleteTag

  • sagemaker-mlflow: LogParam

  • sagemaker-mlflow: GetMetricHistory

  • sagemaker-mlflow: SearchRuns

  • sagemaker-mlflow: ListArtifacts

  • sagemaker-mlflow: UpdateRun

  • sagemaker-mlflow: CreateRegisteredModel

  • sagemaker-mlflow: GetRegisteredModel

  • sagemaker-mlflow: RenameRegisteredModel

  • sagemaker-mlflow: UpdateRegisteredModel

  • sagemaker-mlflow: DeleteRegisteredModel

  • sagemaker-mlflow: GetLatestModelVersions

  • sagemaker-mlflow: CreateModelVersion

  • sagemaker-mlflow: GetModelVersion

  • sagemaker-mlflow: UpdateModelVersion

  • sagemaker-mlflow: DeleteModelVersion

  • sagemaker-mlflow: SearchModelVersions

  • sagemaker-mlflow: GetDownloadURIForModelVersionArtifacts

  • sagemaker-mlflow: TransitionModelVersionStage

  • sagemaker-mlflow: SearchRegisteredModels

  • sagemaker-mlflow: SetRegisteredModelTag

  • sagemaker-mlflow: DeleteRegisteredModelTag

  • sagemaker-mlflow: DeleteModelVersionTag

  • sagemaker-mlflow: DeleteRegisteredModelAlias

  • sagemaker-mlflow: SetRegisteredModelAlias

  • sagemaker-mlflow: GetModelVersionByAlias

  • sagemaker-mlflow: FinalizeLoggedModel

  • sagemaker-mlflow: GetLoggedModel

  • sagemaker-mlflow: DeleteLoggedModel

  • sagemaker-mlflow: SearchLoggedModels

  • sagemaker-mlflow: SetLoggedModelTags

  • sagemaker-mlflow: DeleteLoggedModelTag

  • sagemaker-mlflow: ListLoggedModelArtifacts

  • sagemaker-mlflow: LogLoggedModelParams

  • sagemaker-mlflow: LogOutputs