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.
Verwenden der attributbasierten Zugriffskontrolle (ABAC) für das Multi-Tenancy-Training
In einer Umgebung mit mehreren Mandanten muss unbedingt sichergestellt werden, dass die Daten jedes Mandanten isoliert sind und nur autorisierten Stellen zugänglich sind. SageMaker KI unterstützt den Einsatz von attributebasierter Zugriffskontrolle (ABAC), um diese Isolierung bei Schulungsaufträgen zu erreichen. Anstatt mehrere IAM-Rollen für jeden Mandanten zu erstellen, können Sie dieselbe IAM-Rolle für alle Mandanten verwenden, indem Sie eine Sitzungsverkettungskonfiguration konfigurieren, die AWS -Security-Token-Service (AWS STS) -Sitzungs-Tags verwendet, um temporäre Anmeldeinformationen mit eingeschränkten Rechten für Ihren Schulungsjob anzufordern, um auf bestimmte Mandanten zuzugreifen. Weitere Informationen zu Sitzungs-Tags finden Sie unter Übergeben von Sitzungs-Tags in AWS STS.
Wenn Sie einen Trainingsjob erstellen, verwendet Ihre Sitzungsverkettungskonfiguration, um temporäre Sicherheitsanmeldeinformationen anzufordern AWS STS . Diese Anfrage generiert eine Sitzung, die mit einem Tag versehen ist. Jeder SageMaker Schulungsjob kann nur auf einen bestimmten Mandanten zugreifen, der eine einzige Rolle verwendet, die von allen Schulungsjobs gemeinsam genutzt wird. Durch die Implementierung von ABAC mit Sitzungsverkettung können Sie sicherstellen, dass jeder Trainingsjob nur Zugriff auf den im Sitzungs-Tag angegebenen Mandanten hat, wodurch jeder Mandant effektiv isoliert und geschützt wird. Der folgende Abschnitt führt Sie durch die Schritte zur Einrichtung und Verwendung von ABAC für die Isolierung mehrinstanziger Trainingsjobs mithilfe des SageMaker Python-SDK.
Voraussetzungen
Um mit ABAC für die Isolierung von Trainingsjobs mit mehreren Mandanten zu beginnen, müssen Sie über Folgendes verfügen:
-
Mandanten mit einheitlicher Benennung an allen Standorten. Wenn beispielsweise ein Amazon-S3-URI für Eingabedaten für einen Mandanten
s3://your-input-s3-bucket/lautet, sollte das Amazon-FSx-Verzeichnis für denselben Mandantenexample-tenant/fsx-train/train/und die Amazon-S3-URI für Ausgabedatenexample-tenants3://your-output-s3-bucket/sein.example-tenant -
Eine Rolle bei der Schaffung von Arbeitsplätzen durch SageMaker KI. Sie können mit Amazon SageMaker AI Role Manager eine Rolle zur Schaffung von SageMaker KI-Jobs erstellen. Weitere Informationen finden Sie unter Verwenden des Rollenmanagers.
-
Eine SageMaker KI-Ausführungsrolle, die in ihrer Vertrauensrichtlinie über
sts:TagSessionBerechtigungen verfügtsts:AssumeRole. Weitere Informationen zu SageMaker AI-Ausführungsrollen finden Sie unter SageMaker AI-Rollen.Die Ausführungsrolle sollte auch über eine Richtlinie verfügen, die es Mandanten in jeder attributbasierten Multi-Tenancy-Architektur ermöglicht, aus dem Präfix zu lesen, das einem Prinzipal-Tag zugeordnet ist. Im Folgenden finden Sie eine Beispielrichtlinie, die den Zugriff der SageMaker AI-Ausführungsrolle auf den Wert beschränkt, der dem
tenant-idSchlüssel zugeordnet ist. Weitere Informationen zur Benennung von Tag-Schlüsseln finden Sie unter Regeln für das Tagging in IAM und STS.
Erstellen eines Trainingsjobs mit aktivierter Sitzungs-Tag-Verkettung
Das folgende Verfahren zeigt Ihnen, wie Sie mithilfe des SageMaker Python-SDK für ABAC-enabled mehrinstanziges Training einen Trainingsjob mit Verkettung von Sitzungs-Tags erstellen.
Anmerkung
Zusätzlich zur mehrmandantenfähigen Datenspeicherung können Sie den ABAC-Workflow auch verwenden, um Sitzungs-Tags an Ihre Ausführungsrolle für Amazon VPC und alle anderen Dienste zu übergeben AWS Key Management Service, die KI aufrufen darf SageMaker
Aktivieren der Sitzungs-Tag-Verkettung für ABAC
-
Import
boto3und das Python-SDK. SageMaker ABAC-enabled Die Isolierung von Trainingsjobs ist nur in Version 2.217oder höher des SageMaker AI Python SDK verfügbar. import boto3 from sagemaker.train import ModelTrainer from sagemaker.train.configs import InputData, CheckpointConfig from sagemaker.core.helper.session_helper import Session from sagemaker.core.shapes import OutputDataConfig from sagemaker.train.configs import Compute -
Richten Sie einen AWS STS SageMaker AI-Client ein, um die Sitzungs-Tags mit Mandanten-Labels zu verwenden. Sie können den Tag-Wert ändern, um einen anderen Mandanten anzugeben.
# Start an AWS STS client sts_client = boto3.client('sts') # Define your tenants using tags # The session tag key must match the principal tag key in your execution role policy tags = [] tag = {} tag['Key'] ="tenant-id"tag['Value'] ="example-tenant"tags.append(tag) # Have AWS STS assume your ABAC-enabled job creation role response = sts_client.assume_role( RoleArn="arn:aws:iam::<account-id>:role/<your-training-job-creation-role>", RoleSessionName="SessionName", Tags=tags) credentials = response['Credentials'] # Create a client with your job creation role (which was assumed with tags) sagemaker_client = boto3.client( 'sagemaker', aws_access_key_id=credentials['AccessKeyId'], aws_secret_access_key=credentials['SecretAccessKey'], aws_session_token=credentials['SessionToken'] ) sagemaker_session = Session(sagemaker_client=sagemaker_client)Beim Anhängen der Tags
"tenant-id=example-tenant"an die Rolle zur Joberstellung werden diese Tags von der Ausführungsrolle extrahiert, sodass die folgende Richtlinie verwendet wird: -
Definieren Sie a ModelTrainer , um mithilfe des SageMaker Python-SDK einen Trainingsjob zu erstellen. Stellen Sie
enable_session_tag_chainingdenTrueWert auf ein, damit Ihre Rolle für die Ausführung von SageMaker KI-Trainings die Tags aus Ihrer Rolle zur Schaffung von Arbeitsplätzen abrufen kann.# Specify your training input trainingInput = InputData( channel_name='training', data_source='s3://<your-input-bucket>/example-tenant') # Specify your training job execution role execution_role_arn ="arn:aws:iam::<account-id>:role/<your-training-job-execution-role>"# Define your model trainer with session tag chaining enabled model_trainer = ModelTrainer( training_image="<your-training-image-uri>", role=execution_role_arn, compute=Compute( instance_type='ml.m4.xlarge', instance_count=1, volume_size_in_gb=20 ), sagemaker_session=sagemaker_session, output_data_config=OutputDataConfig(s3_output_path="s3://<your-output-bucket>/example-tenant"), tags=[{"Key": "sagemaker:EnableSessionTagChaining", "Value": "true"}] ) model_trainer.train(input_data_config=[trainingInput])
SageMaker Die KI kann nur die Stichwörter lesen, die in der Jobanfrage für die Schulung angegeben sind, und fügt in Ihrem Namen keine Schlagworte zu den Ressourcen hinzu.
ABAC for SageMaker Training ist mit SageMaker KI-verwalteten Warm-Pools kompatibel. Um ABAC mit Warmpools verwenden zu können, müssen übereinstimmende Trainingsjobs identische Sitzungs-Tags haben. Weitere Informationen finden Sie unter Passende Ausbildungsaufträge.