

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
<a name="model-access-training-data-abac"></a>

In einer Umgebung mit mehreren Mandanten muss unbedingt sichergestellt werden, dass die Daten jedes Mandanten isoliert sind und nur autorisierten Entitäten zugänglich sind. SageMaker KI unterstützt die Verwendung von [attributebasierter Zugriffskontrolle (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html), um diese Isolierung für Ausbildungsberufe 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 Konfiguration für die Sitzungsverkettung konfigurieren, die Sitzungs-Tags AWS -Security-Token-Service (AWS STS) verwendet, um temporäre Anmeldeinformationen mit eingeschränkten Rechten für Ihren Schulungsjob für den Zugriff auf bestimmte Mandanten anzufordern. Weitere Informationen zu Sitzungs-Tags finden Sie unter [Übergeben von Sitzungs-Tags in AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html).

Bei der Erstellung eines Schulungsjobs werden in Ihrer Konfiguration für die Sitzungsverkettung temporäre Sicherheitsanmeldedaten angefordert. AWS STS Diese Anfrage generiert eine Sitzung, die mit einem Tag versehen ist. Jeder SageMaker Schulungsjob kann nur auf einen bestimmten Mandanten zugreifen, wobei eine einzige Rolle verwendet wird, 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 von Schulungsaufträgen für mehrere Mandanten mithilfe des SageMaker Python-SDK. 

## Voraussetzungen
<a name="model-access-training-data-abac-prerequisites"></a>

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 eine Amazon S3 S3-URI für Eingabedaten für einen Mandanten lautet`s3://your-input-s3-bucket/{{example-tenant}}`, sollte das FSx Amazon-Verzeichnis für denselben Mandanten `/fsx-train/train/{{example-tenant}}` und die Ausgabedaten Amazon S3-URI sein`s3://your-output-s3-bucket/{{example-tenant}}`.
+ Eine Rolle bei der Schaffung von Arbeitsplätzen im Bereich SageMaker KI. Mit Amazon SageMaker AI Role Manager können Sie eine Rolle zur Erstellung von SageMaker KI-Jobs erstellen. Weitere Informationen finden Sie unter [Verwenden des Rollenmanagers](https://docs.aws.amazon.com/sagemaker/latest/dg/role-manager-tutorial.html).
+ Eine SageMaker KI-Ausführungsrolle, die über `sts:TagSession` Berechtigungen in ihrer Vertrauensrichtlinie verfügt`sts:AssumeRole`. Weitere Informationen zu SageMaker AI-Ausführungsrollen finden Sie unter [SageMaker AI-Rollen](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). 

  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 ein Beispiel für eine Richtlinie, die die SageMaker KI-Ausführungsrolle darauf beschränkt, Zugriff auf den Wert zu haben, der dem `tenant-id` Schlüssel zugeordnet ist. Weitere Informationen zur Benennung von Tag-Schlüsseln finden Sie unter [Regeln für das Tagging in IAM und STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html#id_tags_rules).

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": [
                  "s3:GetObject",
                  "s3:PutObject"
              ],
              "Resource": [
                  "arn:aws:s3:::{{your-input-s3-bucket}}/${aws:PrincipalTag/{{tenant-id}}}/*"
              ],
              "Effect": "Allow"
          },
          {
              "Action": [
                  "s3:PutObject"
              ],
              "Resource": "arn:aws:s3:::{{your-output-s3-bucket}}/${aws:PrincipalTag/{{tenant-id}}}/*",
              "Effect": "Allow"
          },
          {
              "Action": "s3:ListBucket",
              "Resource": "*",
              "Effect": "Allow"
          }
      ]
  }
  ```

------

## Erstellen eines Trainingsjobs mit aktivierter Sitzungs-Tag-Verkettung
<a name="model-access-training-data-abac-create-training-job"></a>

Das folgende Verfahren zeigt Ihnen, wie Sie mithilfe des SageMaker Python-SDK für ABAC-fähiges Multi-Tenancy-Training einen Trainingsjob mit Sitzungs-Tag-Verkettung erstellen.

**Anmerkung**  
Zusätzlich zur Multi-Tenancy-Datenspeicherung können Sie den ABAC-Workflow auch verwenden, um Sitzungs-Tags an Ihre Ausführungsrolle für Amazon VPC und alle anderen Services zu übergeben AWS Key Management Service, die KI aufrufen darf SageMaker 

**Aktivieren der Sitzungs-Tag-Verkettung für ABAC**

1. Import `boto3` und das SageMaker Python-SDK. Die ABAC-fähige Isolierung von Trainingsjobs ist nur in Version [2.217](https://pypi.org/project/sagemaker/2.217.0/) oder höher des SageMaker AI Python SDK verfügbar. 

   ```
   import boto3
   import sagemaker
   
   from sagemaker.estimator import Estimator
   from sagemaker.inputs import TrainingInput
   ```

1. Richten Sie einen SageMaker AI-Client so ein AWS STS , dass er die Sitzungs-Tags mit der Bezeichnung „Mandant“ verwendet. 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 = sagemaker.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: 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::{{your-input-s3-bucket}}/{{example-tenant}}/*"
               ],
               "Effect": "Allow"
           },
           {
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::{{your-output-s3-bucket}}/{{example-tenant}}/*",
               "Effect": "Allow"
           },
           {
               "Action": "s3:ListBucket",
               "Resource": "*",
               "Effect": "Allow"
           }
       ]
   }
   ```

------

1. Definieren Sie einen Schätzer, um mithilfe des SageMaker Python-SDK einen Trainingsjob zu erstellen. Stellen `enable_session_tag_chaining` Sie diese Option ein`True`, damit Ihre Rolle für die Ausführung von SageMaker KI-Schulungen die Tags aus Ihrer Rolle bei der Auftragserstellung abrufen kann.

   ```
   # Specify your training input
   trainingInput = TrainingInput(
       s3_data={{'s3://<your-input-bucket>/example-tenant'}},
       distribution='ShardedByS3Key',
       s3_data_type='S3Prefix'
   )
   
   # Specify your training job execution role 
   execution_role_arn = {{"arn:aws:iam::<account-id>:role/<your-training-job-execution-role>"}}
   
   # Define your esimator with session tag chaining enabled
   estimator = Estimator(
       image_uri={{"<your-training-image-uri>"}},
       role=execution_role_arn,
       instance_count=1,
       instance_type='ml.m4.xlarge',
       volume_size=20,
       max_run=3600,
       sagemaker_session=sagemaker_session,
       output_path={{"s3://<your-output-bucket>/example-tenant"}},
       enable_session_tag_chaining={{True}}
   )
   
   estimator.fit(inputs=trainingInput, job_name={{"abac-demo"}})
   ```

SageMaker KI kann nur die in der Stellenanfrage angegebenen Tags lesen und fügt in Ihrem Namen keine Tags zu Ressourcen hinzu.

ABAC for SageMaker Training ist mit SageMaker KI-verwalteten Warmpools 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](train-warm-pools.md#train-warm-pools-matching-criteria).