

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 die Berechtigungen ein, um Amazon EMR-Anwendungen von Studio aus auflisten und starten zu können SageMaker
<a name="studio-emr-serverless-permissions"></a>

In diesem Abschnitt beschreiben wir die Rollen und Berechtigungen, die erforderlich sind, um EMR Serverless-Anwendungen von SageMaker Studio aus aufzulisten und eine Verbindung zu ihnen herzustellen. Dabei werden Szenarien berücksichtigt, in denen Studio und die EMR Serverless-Anwendungen im selben AWS Konto oder über verschiedene Konten hinweg bereitgestellt werden.

Die Rollen, zu denen Sie die erforderlichen Berechtigungen hinzufügen müssen, hängen davon ab, ob sich Studio und Ihre EMR Serverless-Anwendungen in demselben AWS Konto (*Einzelkonto*) oder in separaten Konten (Cross Account) befinden. * * Es gibt zwei Arten von Rollen:
+ Ausführungsrolle:
  + [Von EMR Serverless verwendete Runtime-Ausführungsrollen ](http://emr/latest/EMR-Serverless-UserGuide/jobs-spark.html#spark-defaults-executionRoleArn) (Role-Based Access Control-Rollen): Dies sind die IAM-Rollen, die von den EMR-Serverless-Jobausführungsumgebungen verwendet werden, um auf andere AWS Dienste und Ressourcen zuzugreifen, die während der Laufzeit benötigt werden, z. B. Amazon S3 für den Datenzugriff, CloudWatch für die Protokollierung, den Zugriff auf den AWS Glue Datenkatalog oder andere Dienste, die auf Ihren Workload-Anforderungen basieren. Wir empfehlen, diese Rollen in dem Konto zu erstellen, in dem die EMR Serverless-Anwendungen ausgeführt werden.

    Weitere Informationen zu Laufzeit-Rollen finden Sie unter [Auftrags-Laufzeit-Rollen](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) im *Benutzerhandbuch für EMR Serverless*.
**Anmerkung**  
Sie können mehrere RBAC-Rollen für Ihre EMR Serverless-Anwendung definieren. Diese Rollen können auf den Zuständigkeiten und Zugriffsebenen basieren, die von verschiedenen Benutzern oder Gruppen innerhalb Ihrer Organisation benötigt werden. Weitere Informationen zu RBAC-Berechtigungen finden Sie unter [Bewährte Sicherheitsmethoden für Amazon EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-best-practices.html#security-practice-rbac).
  + SageMaker KI-Ausführungsrolle: Die Ausführungsrolle, die es der SageMaker KI ermöglicht, bestimmte Aufgaben wie das Lesen von Daten aus Amazon S3-Buckets, das Schreiben von Protokollen in und den Zugriff auf andere AWS Dienste auszuführen, die Ihr Workflow möglicherweise benötigt. CloudWatch Die SageMaker KI-Ausführungsrolle verfügt außerdem über die spezielle Berechtigung Called`iam:PassRole`, die es der SageMaker KI ermöglicht, temporäre Runtime-Ausführungsrollen an die EMR-Serverless-Anwendungen zu übergeben. Diese Rollen geben den EMR-Serverless-Anwendungen die Berechtigungen, die sie benötigen, um mit anderen AWS Ressourcen zu interagieren, während sie ausgeführt werden.
+ Voraussichtliche Rollen (auch als *Service Access* Roles bezeichnet):
  + Dies sind die IAM-Rollen, die die Ausführungsrolle von SageMaker AI übernehmen kann, um Operationen im Zusammenhang mit der Verwaltung serverloser EMR-Anwendungen auszuführen. Diese Rollen definieren die Berechtigungen und Zugriffsrichtlinien, die für das Auflisten, Herstellen einer Verbindung oder Verwaltung von EMR Serverless-Anwendungen erforderlich sind. Sie werden in der Regel in kontoübergreifenden Szenarien verwendet, in denen sich die EMR-Serverless-Anwendungen in einem anderen AWS Konto als die AI-Domäne befinden. SageMaker Eine dedizierte IAM-Rolle für Ihre serverlosen EMR-Anwendungen hilft dabei, dem Prinzip der geringsten Rechte zu folgen und stellt sicher, dass Amazon EMR nur über die erforderlichen Berechtigungen verfügt, um Ihre Jobs auszuführen und gleichzeitig andere Ressourcen in Ihrem Konto zu schützen. AWS 

Wenn Sie diese Rollen richtig verstehen und konfigurieren, können Sie sicherstellen, dass SageMaker Studio über die erforderlichen Berechtigungen für die Interaktion mit EMR-Serverless-Anwendungen verfügt, unabhängig davon, ob sie im selben Konto oder in verschiedenen Konten bereitgestellt werden.

## Einzelkonto
<a name="studio-set-up-emr-serverless-permissions-singleaccount"></a>

Die folgenden Diagramme veranschaulichen die Rollen und Berechtigungen, die erforderlich sind, um EMR Serverless-Anwendungen von Studio aus aufzulisten und eine Verbindung zu ihnen herzustellen, wenn Studio und die Anwendungen in demselben Konto bereitgestellt werden. AWS 

![Das Diagramm zeigt die Rollen und Berechtigungen, die zum Auflisten und Verbinden von EMR-Anwendungen aus Studio erforderlich sind, wenn Studio und die Anwendungen im selben Konto sind. AWS](https://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-permissions-setup-singleaccount.png)


Wenn Ihre Amazon EMR-Anwendungen und Studio in demselben AWS Konto bereitgestellt werden, gehen Sie wie folgt vor:

1. **Schritt 1**: Rufen Sie den ARN des Amazon-S3-Buckets, den Sie für Datenquellen und die Speicherung von Ausgabedaten verwenden, in der [Amazon-S3-Konsole](https://console.aws.amazon.com/S3) ab.

   Informationen darüber, wie Sie einen Bucket anhand seines Namens finden, finden Sie unter [Zugreifen auf einen Amazon-S3-Bucket und Auflisten des Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html). Informationen zum Erstellen eines Amazon-S3-Buckets finden Sie unter [Erstellen eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). 

1. **Schritt 2**: Erstellen Sie mindestens eine Job-Runtime-Ausführungsrolle für Ihre EMR Serverless-Anwendung in Ihrem Konto (das `EMRServerlessRuntimeExecutionRoleA` Anwendungsfalldiagramm für *ein einzelnes Konto* oben). Wählen Sie für vertrauenswürdige Entität die Option **Benutzerdefinierte Vertrauensrichtlinie** aus. Fügen Sie die für Ihre Aufgabe erforderlichen Berechtigungen hinzu. Sie benötigen mindestens vollen Zugriff auf einen Amazon S3-Bucket sowie einen Erstellungs- und Lesezugriff auf den AWS Glue Datenkatalog.

   Gehen Sie wie folgt vor, um detaillierte Anweisungen zum Erstellen einer neuen Runtime-Ausführungsrolle für Ihre EMR Serverless-Anwendungen zu erstellen:

   1. Navigieren Sie zur [IAM-Konsole](https://console.aws.amazon.com/iam).

   1. Wählen Sie im linken Navigationsbereich **Richtlinien** und anschließend **Richtlinie erstellen** aus.

   1. Fügen Sie die für Ihre Runtime-Rolle erforderlichen Berechtigungen hinzu, geben Sie der Richtlinie einen Namen und wählen Sie dann **Create** policy aus.

      Unter [Job Runtime Roles for EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) finden Sie Beispiele für Laufzeitrichtlinien für eine EMR Serverless Runtime-Rolle.

   1. Wählen Sie im linken Navigationsbereich **Rollen** und dann **Rolle erstellen** aus.

   1. Wählen Sie auf der Seite **Rolle erstellen** die Option **Benutzerdefinierte Vertrauensrichtlinie** als vertrauenswürdige Entität aus.

   1. Fügen Sie das folgende JSON-Dokument in den Abschnitt **Benutzerdefinierte Vertrauensrichtlinie** ein und wählen Sie dann **Weiter** aus.

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

****  

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

------

   1. Wählen Sie auf der Seite **Berechtigungen hinzufügen** die zuvor erstellte Richtlinie und anschließend **Weiter** aus.

   1. Geben Sie auf der Seite **Überprüfen** einen Rollennamen, z. B. `EMRServerlessAppRuntimeRoleA`, und optional eine Beschreibung ein.

   1. Prüfen Sie die Rollendetails und wählen Sie **Create Role** (Rolle erstellen).

   Mit diesen Rollen können Sie und Ihre Teamkollegen eine Verbindung zu derselben Anwendung herstellen und dabei jeweils eine Laufzeit-Rolle verwenden, deren Umfang über Berechtigungen verfügt, die Ihrer individuellen Zugriffsebene auf Daten entsprechen.
**Anmerkung**  
Die Spark-Sitzungen funktionieren unterschiedlich. Spark-Sitzungen werden auf der Grundlage der in Studio verwendeten Ausführungsrolle isoliert, sodass Benutzer mit unterschiedlichen Ausführungsrollen separate, isolierte Spark-Sitzungen haben. Wenn Sie die Quellidentität für Ihre Domain aktiviert haben, erfolgt darüber hinaus eine weitere Isolierung von Spark-Sitzungen über verschiedene Quellidentitäten hinweg.

1. **Schritt 3**: Rufen Sie den ARN der SageMaker AI-Ausführungsrolle ab, die von Ihrem privaten Bereich verwendet wird.

   Informationen zu Spaces und Ausführungsrollen in der SageMaker KI finden Sie unter[Grundlegendes zu Domainbereichsberechtigungen und Ausführungsrollen](execution-roles-and-spaces.md).

   Weitere Informationen zum Abrufen des ARN der Ausführungsrolle von SageMaker AI finden Sie unter[Abrufen Ihrer Ausführungsrolle](sagemaker-roles.md#sagemaker-roles-get-execution-role).
**Anmerkung**  
 Alternativ können KI-Benutzer, die noch SageMaker keine Erfahrung mit KI haben, ihren Einrichtungsprozess vereinfachen, indem sie automatisch eine neue SageMaker KI-Ausführungsrolle mit den entsprechenden Berechtigungen erstellen. Überspringen Sie in diesem Fall die Schritte 3 und 4. Stattdessen können Benutzer entweder:  
Wählen Sie beim Erstellen einer neuen Domain im ** ** Domain-Menü in der linken Navigationsleiste der [ SageMaker AI-Konsole die ** Option Für Organisationen ** einrichten](https://console.aws.amazon.com/sagemaker).
Erstellen Sie im **Rollenmanager-Menü der Konsole eine neue Ausführungsrolle** und fügen Sie die Rolle dann einer vorhandenen Domain oder einem vorhandenen Benutzerprofil hinzu.
Wählen Sie beim Erstellen der Rolle unter **Welche ML-Aktivitäten werden Benutzer** **ausführen? die Option Studio EMR Serverless Applications** ausführen aus. Geben Sie anschließend den Namen Ihres Amazon-S3-Buckets und die Auftragslaufzeit-Ausführungsrolle an, die Ihre EMR-Serverless-Anwendung verwenden soll (Schritt 2).  
Der SageMaker Rollenmanager fügt der neuen Ausführungsrolle automatisch die erforderlichen Berechtigungen für das Ausführen und Herstellen einer Verbindung zu EMR-Anwendungen hinzu. Mithilfe des [ SageMaker Rollenmanagers können Sie Ihrer EMR Serverless-Anwendung nur eine Runtime-Rolle zuweisen](), und die Anwendung muss in demselben Konto ausgeführt werden, in dem Studio bereitgestellt wird, und zwar unter Verwendung einer Runtime-Rolle, die in demselben Konto erstellt wurde.

1. **Schritt 4**: Weisen Sie der SageMaker AI-Ausführungsrolle, die auf Ihre EMR Serverless-Anwendung zugreift, die folgenden Berechtigungen zu.

   1. Öffnen Sie unter [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) die IAM-Konsole.

   1. **Wählen Sie **Rollen** und suchen Sie dann anhand des Namens im Suchfeld nach Ihrer Ausführungsrolle.** Der Rollenname ist der letzte Teil des ARN nach dem letzten Schrägstrich (/).

   1. Folgen Sie dem Link zu Ihrer Rolle.

   1. Wählen Sie **Berechtigungen hinzufügen** und dann **Inline-Richtlinie erstellen** aus.

   1. Fügen Sie auf der Registerkarte **JSON** die Amazon EMR Serverless-Berechtigungen hinzu, die EMR Serverless-Zugriff und -Operationen ermöglichen. Einzelheiten zum Richtliniendokument finden Sie unter *EMR-Serverless-Richtlinien* unter [Referenzrichtlinien](#studio-set-up-emr-serverless-permissions-reference). Ersetzen Sie die {{region}}{{accountID}}, und übergeben {{EMRServerlessAppRuntimeRole}} (s) durch ihre tatsächlichen Werte, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren. 
**Anmerkung**  
Sie können so viele ARN-Zeichenfolgen von Runtime-Rollen wie nötig in die Berechtigung aufnehmen und diese durch Kommas trennen.

   1. Wählen Sie **Weiter** und geben Sie dann einen **Richtliniennamen** ein.

   1. Wählen Sie **Richtlinie erstellen** aus.

   1. Wiederholen Sie den Schritt **Inline-Richtlinie erstellen**, um eine weitere Inline-Richtlinie hinzuzufügen, die der Rolle Berechtigungen zum Aktualisieren der Domains, Benutzerprofile und Bereiche gewährt. Weitere Informationen zum `SageMakerUpdateResourcesPolicy`-Richtliniendokument finden Sie unter Richtlinie für *Domain-, Benutzerprofil- und Bereichsaktualisierungen* in [Referenzrichtlinien](#studio-set-up-emr-serverless-permissions-reference). Ersetzen Sie die {{region}} und {{accountID}} durch ihre tatsächlichen Werte, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren.

1. **Schritt 5**:

   Ordnen Sie die Liste der Runtime-Rollen Ihrem Benutzerprofil oder Ihrer Domain zu, sodass Sie die Liste der Rollen visuell durchsuchen und die Rolle auswählen können, die Sie für die [ Verbindung zu einer EMR Serverless-Anwendung verwenden möchten. ](connect-emr-serverless-application.md) JupyterLab Sie können die SageMaker AI-Konsole oder das folgende Skript verwenden. Anschließend greifen alle Ihre Apache Spark- oder Apache Hive-Aufträge, die von Ihrem Notebook aus erstellt wurden, nur auf die Daten und Ressourcen zu, die gemäß den mit der ausgewählten Laufzeit-Rolle verknüpften Richtlinien zulässig sind.
**Wichtig**  
Wenn Sie diesen Schritt nicht abschließen, können Sie ein JupyterLab Notebook nicht mit einer EMR-Serverless-Anwendung verbinden.

------
#### [ SageMaker AI console ]

   So verknüpfen Sie Ihre Runtime-Rollen mithilfe der SageMaker AI-Konsole mit Ihrem Benutzerprofil oder Ihrer Domain:

   1. Navigieren Sie zur SageMaker AI-Konsole unter [ https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Wählen Sie im linken Navigationsbereich ** Domain und dann die Domain aus**, die die SageMaker AI-Ausführungsrolle verwendet, deren Berechtigungen Sie aktualisiert haben.

   1. 
      + So fügen Sie Ihrer Domain Ihre Runtime-Rollen hinzu: Navigieren Sie ** auf der ** Seite mit den ** Domain-Details auf der Registerkarte „**App-Konfigurationen ** JupyterLab**“ zum Abschnitt.
      + So fügen Sie Ihre Runtime-Rollen zu Ihrem Benutzerprofil hinzu: Wählen Sie auf der ** Seite mit den ** Domain-Details den ** Tab ** Benutzerprofile und wählen Sie das Benutzerprofil aus, das die SageMaker AI-Ausführungsrolle verwendet, deren Berechtigungen Sie aktualisiert haben. Navigieren Sie auf der ** Registerkarte „**App-Konfigurationen“ zum ** JupyterLab ** Abschnitt.

   1. Wählen Sie **Bearbeiten** und fügen Sie die ARNs Ihrer EMR Serverless Runtime-Ausführungsrollen hinzu.

   1. Wählen Sie **Absenden** aus.

   Wenn Sie das nächste Mal über eine EMR-Serverless-Anwendung eine Verbindung herstellen JupyterLab, sollten die Runtime-Rollen in einem Dropdownmenü zur Auswahl erscheinen.

------
#### [ Python script ]

   Führen Sie in einer JupyterLab Anwendung, die von einem privaten Bereich aus gestartet wurde und die SageMaker AI-Ausführungsrolle verwendet, deren Berechtigungen Sie aktualisiert haben, den folgenden Befehl in einem Terminal aus. Ersetzen Sie die`domainID`, `user-profile-name``studio-accountID`, und `EMRServerlessRuntimeExecutionRole` (s) durch ihre richtigen Werte. Dieser Codeausschnitt aktualisiert die Benutzerprofileinstellungen für ein bestimmtes Benutzerprofil (`client.update_user_profile`) oder Domaineinstellungen (`client.update_domain`), wobei insbesondere die zuvor erstellten EMR-Serverless-Laufzeitausführungsrollen zugeordnet werden.

   ```
   import botocore.session
   import json
   sess = botocore.session.get_session()
   client = sess.create_client('sagemaker')
   
   client.update_user_profile(
   DomainId="{{domainID}}", 
   UserProfileName="{{user-profile-name}}",
   DefaultUserSettings={
       'JupyterLabAppSettings': {
           'EmrSettings': {
               'ExecutionRoleArns': ["arn:aws:iam::{{studio-accountID}}:role/{{EMRServerlessRuntimeExecutionRoleA}}", 
                                "arn:aws:iam::{{studio-accountID}}:role/{{EMRServerlessRuntimeExecutionRoleAA}}"]
           }
           
       }
   })
   resp = client.describe_domain(DomainId="{{domainID}}")
   
   resp['CreationTime'] = str(resp['CreationTime'])
   resp['LastModifiedTime'] = str(resp['LastModifiedTime'])
   print(json.dumps(resp, indent=2))
   ```

------

## Kontoübergreifend
<a name="studio-set-up-emr-serverless-permissions-crossaccount"></a>

Die folgenden Diagramme veranschaulichen die Rollen und Berechtigungen, die erforderlich sind, um EMR-Serverless-Anwendungen von Studio aus aufzulisten und eine Verbindung zu ihnen herzustellen, wenn Studio und die Anwendungen in verschiedenen AWS Konten bereitgestellt werden.

![Das Diagramm zeigt die Rollen und Berechtigungen, die zum Auflisten und Verbinden von EMR-Serverless-Anwendungen aus Studio erforderlich sind, wenn Studio und die Anwendungen sich in unterschiedlichen Konten befinden. AWS](https://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-permissions-setup-crossaccount.png)


Weitere Informationen zum Erstellen einer Rolle für ein AWS Konto finden Sie unter [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) Erstellen einer IAM-Rolle (Konsole).

Bevor Sie loslegen: 
+ Rufen Sie den ARN der SageMaker AI-Ausführungsrolle ab, die von Ihrem privaten Bereich verwendet wird. Informationen zu Räumen und Ausführungsrollen in SageMaker KI finden Sie unter[Grundlegendes zu Domainbereichsberechtigungen und Ausführungsrollen](execution-roles-and-spaces.md). Weitere Informationen zum Abrufen des ARN der Ausführungsrolle von SageMaker AI finden Sie unter[Abrufen Ihrer Ausführungsrolle](sagemaker-roles.md#sagemaker-roles-get-execution-role).
+ Rufen Sie den ARN des Amazon-S3-Buckets, den Sie für Datenquellen und die Speicherung von Ausgabedaten verwenden möchten, in der [Amazon-S3-Konsole](https://console.aws.amazon.com/S3) ab.

  Informationen zum Erstellen eines Amazon-S3-Buckets finden Sie unter [Erstellen eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). Informationen darüber, wie Sie einen Bucket anhand seines Namens finden, finden Sie unter [Zugreifen auf einen Amazon-S3-Bucket und Auflisten des Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html).

Wenn Ihre EMR Serverless-Anwendungen und Studio in separaten AWS Konten bereitgestellt werden, konfigurieren Sie die Berechtigungen für beide Konten. 

### Auf dem EMR Serverless-Konto
<a name="studio-set-up-emr-serverless-permissions-crossaccount-emraccount"></a>

Gehen Sie wie folgt vor, um die erforderlichen Rollen und Richtlinien für das Konto zu erstellen, auf dem Ihre EMR Serverless-Anwendung ausgeführt wird, das auch als *vertrauenswürdiges* Konto bezeichnet wird:

1. **Schritt 1**: Erstellen Sie mindestens eine Job-Runtime-Ausführungsrolle für Ihre EMR Serverless-Anwendung in Ihrem Konto (die `EMRServerlessRuntimeExecutionRoleB` im obigen *kontoübergreifenden* Diagramm). Wählen Sie für vertrauenswürdige Entität die Option **Benutzerdefinierte Vertrauensrichtlinie** aus. Fügen Sie die für Ihre Aufgabe erforderlichen Berechtigungen hinzu. Sie benötigen mindestens vollen Zugriff auf einen Amazon S3-Bucket sowie einen Erstellungs- und Lesezugriff auf den Datenkatalog. AWS Glue 

   Gehen Sie wie folgt vor, um eine neue Runtime-Ausführungsrolle für Ihre EMR Serverless-Anwendungen zu erstellen:

   1. Navigieren Sie zur [IAM-Konsole](https://console.aws.amazon.com/iam).

   1. Wählen Sie im linken Navigationsbereich **Richtlinien** und anschließend **Richtlinie erstellen** aus.

   1. Fügen Sie die für Ihre Runtime-Rolle erforderlichen Berechtigungen hinzu, geben Sie der Richtlinie einen Namen und wählen Sie dann **Create** policy aus.

      Beispiel-Laufzeitrichtlinien für eine serverlose EMR-Laufzeitrolle finden Sie unter [Job-Runtime-Rollen für Amazon EMR](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) Serverless.

   1. Wählen Sie im linken Navigationsbereich **Rollen** und dann **Rolle erstellen** aus.

   1. Wählen Sie auf der Seite **Rolle erstellen** die Option **Benutzerdefinierte Vertrauensrichtlinie** als vertrauenswürdige Entität aus.

   1. Fügen Sie das folgende JSON-Dokument in den Abschnitt **Benutzerdefinierte Vertrauensrichtlinie** ein und wählen Sie dann **Weiter** aus.

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

****  

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

------

   1. Wählen Sie auf der Seite **Berechtigungen hinzufügen** die zuvor erstellte Richtlinie und anschließend **Weiter** aus.

   1. Geben Sie auf der Seite **Überprüfen** einen Rollennamen, z. B. `EMRServerlessAppRuntimeRoleB`, und optional eine Beschreibung ein.

   1. Prüfen Sie die Rollendetails und wählen Sie **Create Role** (Rolle erstellen).

   Mit diesen Rollen können Sie und Ihre Teamkollegen eine Verbindung zu derselben Anwendung herstellen und dabei jeweils eine Laufzeit-Rolle verwenden, deren Umfang über Berechtigungen verfügt, die Ihrer individuellen Zugriffsebene auf Daten entsprechen.
**Anmerkung**  
Die Spark-Sitzungen funktionieren anders. Spark-Sitzungen werden basierend auf der in Studio verwendeten Ausführungsrolle isoliert, sodass Benutzer mit unterschiedlichen Ausführungsrollen separate, isolierte Spark-Sitzungen haben. Wenn Sie die Quellidentität für Ihre Domain aktiviert haben, erfolgt darüber hinaus eine weitere Isolierung von Spark-Sitzungen über verschiedene Quellidentitäten hinweg.

1. **Schritt 2**: Erstellen Sie eine benutzerdefinierte IAM-Rolle `AssumableRole` mit dem Namen der folgenden Konfiguration:
   + Berechtigungen: Erteilen Sie den die erforderlichen Berechtigungen (Amazon EMR Serverless-Richtlinien), um den Zugriff auf EMR Serverless-Ressourcen `AssumableRole` zu ermöglichen. *Diese Rolle wird auch als Access-Rolle bezeichnet.*
   + Vertrauensstellung: Konfigurieren Sie die Vertrauensrichtlinie so`AssumableRole`, dass die Ausführungsrolle (Die `SageMakerExecutionRole` im kontoübergreifenden Diagramm) von dem Studio-Konto aus übernommen werden kann, für das Zugriff erforderlich ist.

   Durch die Übernahme der Rolle kann Studio temporären Zugriff auf die erforderlichen Berechtigungen im EMR Serverless-Konto erhalten.

   Für detaillierte Anweisungen zum Erstellen eines neuen Kontos `AssumableRole` in Ihrem EMR AWS Serverless-Konto gehen Sie wie folgt vor:

   1. Navigieren Sie zur [IAM-Konsole](https://console.aws.amazon.com/iam).

   1. Wählen Sie im linken Navigationsbereich **Richtlinien** und anschließend **Richtlinie erstellen** aus.

   1. Fügen Sie auf der Registerkarte **JSON** die Amazon EMR Serverless-Berechtigungen hinzu, die EMR Serverless-Zugriff und -Operationen ermöglichen. Einzelheiten zum Richtliniendokument finden Sie unter *EMR-Serverless-Richtlinien* unter [Referenzrichtlinien](#studio-set-up-emr-serverless-permissions-reference). Ersetzen Sie die `region``accountID`, und übergeben `EMRServerlessAppRuntimeRole` (s) durch ihre tatsächlichen Werte, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren.
**Anmerkung**  
`EMRServerlessAppRuntimeRole`Hier ist die in Schritt 1 erstellte Rolle für die Ausführung der Job-Runtime (die Rolle `EMRServerlessAppRuntimeRoleB` im *Cross-Account-Diagramm* oben). Sie können so viele ARN-Zeichenfolgen von Runtime-Rollen wie nötig in die Berechtigung aufnehmen und diese durch Kommas trennen. 

   1. Wählen Sie **Weiter** und geben Sie dann einen **Richtliniennamen** ein.

   1. Wählen Sie **Richtlinie erstellen** aus.

   1. Wählen Sie im linken Navigationsbereich **Rollen** und dann **Rolle erstellen** aus.

   1. Wählen Sie auf der Seite **Rolle erstellen** die Option **Benutzerdefinierte Vertrauensrichtlinie** als vertrauenswürdige Entität aus.

   1. Fügen Sie das folgende JSON-Dokument in den Abschnitt **Benutzerdefinierte Vertrauensrichtlinie** ein und wählen Sie dann **Weiter** aus.

      `studio-account`Ersetzen Sie es durch die Studio-Konto-ID und `AmazonSageMaker-ExecutionRole` durch die Ausführungsrolle, die von Ihrem JupyterLab Bereich verwendet wird. 

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::{{111122223333}}:role/service-role/{{AmazonSageMaker-ExecutionRole}}"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. **Fügen Sie auf der Seite „**Berechtigungen hinzufügen**“ die Berechtigung hinzu, die `EMRServerlessAppRuntimeRoleB` Sie in Schritt 2 erstellt haben, und wählen Sie dann Weiter aus.**

   1. Geben Sie auf der Seite **Überprüfen** einen Rollennamen, z. B. `AssumableRole`, und optional eine Beschreibung ein.

   1. Prüfen Sie die Rollendetails und wählen Sie **Create Role** (Rolle erstellen).

   Weitere Informationen zum Erstellen einer Rolle für ein AWS Konto finden Sie unter [ Erstellen einer IAM-Rolle (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

### Auf dem Studio-Konto
<a name="studio-set-up-emr-serverless-permissions-crossaccount-studioaccount"></a>

Aktualisieren Sie auf dem Konto, auf dem Studio bereitgestellt wird, das auch als * vertrauenswürdiges Konto bezeichnet wird, die SageMaker AI-Ausführungsrolle*, die auf Ihre EMR-Serverless-Anwendungen zugreift, mit den erforderlichen Berechtigungen für den Zugriff auf Ressourcen im vertrauenswürdigen Konto.

1. **Schritt 1**: Rufen Sie den ARN der SageMaker AI-Ausführungsrolle ab, die von Ihrem Bereich verwendet wird.

   Informationen zu Spaces und Ausführungsrollen in der SageMaker KI finden Sie unter[Grundlegendes zu Domainbereichsberechtigungen und Ausführungsrollen](execution-roles-and-spaces.md).

   Weitere Informationen zum Abrufen des ARN der Ausführungsrolle von SageMaker AI finden Sie unter[Abrufen Ihrer Ausführungsrolle](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Schritt 2**: Weisen Sie der SageMaker AI-Ausführungsrolle, die auf Ihre EMR-Serverless-Anwendung zugreift, die folgenden Berechtigungen zu.

   1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

   1. **Wählen Sie **Rollen** und suchen Sie dann anhand des Namens im Suchfeld nach Ihrer Ausführungsrolle.** Der Rollenname ist der letzte Teil des ARN nach dem letzten Schrägstrich (/). 

   1. Folgen Sie dem Link zu Ihrer Rolle.

   1. Wählen Sie **Berechtigungen hinzufügen** und dann **Inline-Richtlinie erstellen** aus.

   1. Fügen Sie auf der Registerkarte **JSON** die Inline-Richtlinie hinzu, die der Rolle Berechtigungen zum Aktualisieren der Domains, Benutzerprofile und Bereiche gewährt. Weitere Informationen zum `SageMakerUpdateResourcesPolicy`-Richtliniendokument finden Sie unter Richtlinie für *Domain-, Benutzerprofil- und Bereichsaktualisierungen* in [Referenzrichtlinien](#studio-set-up-emr-serverless-permissions-reference). Ersetzen Sie die `region` und `accountID` durch ihre tatsächlichen Werte, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren.

   1. Wählen Sie **Weiter** und geben Sie dann einen **Richtliniennamen** ein.

   1. Wählen Sie **Richtlinie erstellen** aus.

   1. Wiederholen Sie den Schritt **Inline-Richtlinie erstellen**, um eine weitere Richtlinie hinzuzufügen, die der Ausführungsrolle die Rechte erteilt, die Aktionen anzunehmen `AssumableRole` und dann auszuführen, die gemäß der Zugriffsrichtlinie der Rolle zulässig sind.

      `emr-account`Ersetzen Sie es durch die Amazon EMR Serverless-Konto-ID und `AssumableRole` durch den Namen der angenommenen Rolle, die im Amazon EMR Serverless-Konto erstellt wurde.

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": {
              "Sid": "AllowSTSToAssumeAssumableRole",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": "arn:aws:iam::{{111122223333}}:role/{{AssumableRole}}"
          }
      }
      ```

------

1. **Schritt 3**:

   Ordnen Sie die Liste der Runtime-Rollen Ihrer Domain oder Ihrem Benutzerprofil zu, sodass Sie die Liste der Rollen visuell durchsuchen und die Rolle auswählen können, die Sie für die [ Verbindung zu einer EMR Serverless-Anwendung verwenden möchten. ](connect-emr-serverless-application.md) JupyterLab Sie können die SageMaker AI-Konsole oder das folgende Skript verwenden. Anschließend greifen alle Ihre Apache Spark- oder Apache Hive-Aufträge, die von Ihrem Notebook aus erstellt wurden, nur auf die Daten und Ressourcen zu, die gemäß den mit der ausgewählten Laufzeit-Rolle verknüpften Richtlinien zulässig sind.
**Wichtig**  
Wenn Sie diesen Schritt nicht abschließen, können Sie ein JupyterLab Notebook nicht mit einer EMR-Serverless-Anwendung verbinden.

------
#### [ SageMaker AI console ]

   So verknüpfen Sie Ihre Runtime-Rollen mithilfe der SageMaker AI-Konsole mit Ihrem Benutzerprofil oder Ihrer Domain:

   1. Navigieren Sie zur SageMaker AI-Konsole unter [ https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Wählen Sie im linken Navigationsbereich ** Domain und dann die Domain aus**, die die SageMaker AI-Ausführungsrolle verwendet, deren Berechtigungen Sie aktualisiert haben.

   1. 
      + So fügen Sie Ihrer Domain Ihre Runtime-Rollen hinzu: Navigieren Sie ** auf der ** Seite mit den ** Domain-Details auf der Registerkarte „**App-Konfigurationen ** JupyterLab**“ zum Abschnitt.
      + So fügen Sie Ihre Runtime-Rollen zu Ihrem Benutzerprofil hinzu: Wählen Sie auf der ** Seite mit den ** Domain-Details den ** Tab ** Benutzerprofile und wählen Sie das Benutzerprofil aus, das die SageMaker AI-Ausführungsrolle verwendet, deren Berechtigungen Sie aktualisiert haben. Navigieren Sie auf der ** Registerkarte „**App-Konfigurationen“ zum ** JupyterLab ** Abschnitt.

   1. Wählen Sie **Bearbeiten** und fügen Sie die ARNs Ihrer angenommenen Rolle und die Rollen EMR Serverless Runtime Execution hinzu.

   1. Wählen Sie **Absenden** aus.

   Wenn Sie das nächste Mal über eine EMR-Serverless-Anwendung eine Verbindung herstellen JupyterLab, sollten die Runtime-Rollen in einem Dropdownmenü zur Auswahl erscheinen.

------
#### [ Python script ]

    Führen Sie in einer JupyterLab Anwendung, die von einem privaten Bereich aus gestartet wurde und die SageMaker AI-Ausführungsrolle verwendet, deren Berechtigungen Sie aktualisiert haben, den folgenden Befehl in einem Terminal aus. Ersetzen Sie `domainID`, `user-profile-name`, `studio-accountID` und `EMRServerlessRuntimeExecutionRole` durch die ordnungsgemäßen Werte. Dieser Codeausschnitt aktualisiert die Benutzerprofileinstellungen für ein bestimmtes Benutzerprofil (`client.update_user_profile`) oder Domäneneinstellungen (`client.update_domain`) innerhalb einer SageMaker AI-Domain. Insbesondere werden die Runtime-Ausführungsrollen für Amazon EMR Serverless festgelegt, die Sie zuvor erstellt haben. Es ermöglicht der JupyterLab Anwendung auch, eine bestimmte IAM-Rolle (`AssumableRole`) für die Ausführung serverloser EMR-Anwendungen innerhalb des Amazon EMR-Kontos zu übernehmen.

   ```
   import botocore.session
   import json
   sess = botocore.session.get_session()
   client = sess.create_client('sagemaker')
   
   client.update_user_profile(
   DomainId="{{domainID}}", 
   UserProfileName="{{user-profile-name}}",
   DefaultUserSettings={
       'JupyterLabAppSettings': {
           'EmrSettings': {
               'AssumableRoleArns': ["arn:aws:iam::{{emr-accountID}}:role/{{AssumableRole}}"],
               'ExecutionRoleArns': ["arn:aws:iam::{{emr-accountID}}:role/{{EMRServerlessRuntimeExecutionRoleA}}", 
                                "arn:aws:iam::{{emr-accountID}}:role/{{AnotherRuntimeExecutionRole}}"]
           }
           
       }
   })
   resp = client.describe_user_profile(DomainId="{{domainID}}", UserProfileName={{user-profile-name}}")
   
   resp['CreationTime'] = str(resp['CreationTime'])
   resp['LastModifiedTime'] = str(resp['LastModifiedTime'])
   print(json.dumps(resp, indent=2))
   ```

------

## Referenzrichtlinien
<a name="studio-set-up-emr-serverless-permissions-reference"></a>
+ **Serverlose EMR-Richtlinien**: Diese Richtlinie ermöglicht die Verwaltung serverloser EMR-Anwendungen. Dazu gehören das Auflisten, Erstellen (mit den erforderlichen SageMaker AI-Tags), Starten, Stoppen, Abrufen von Details, Löschen, Zugreifen auf Livy-Endpunkte und das Abrufen von Job-Dashboards. Es ermöglicht auch die Übergabe der erforderlichen EMR-Serverless-Anwendungslaufzeitrolle an den Dienst.
  + `EMRServerlessListApplications`: Ermöglicht die ListApplications Aktion für alle EMR Serverless-Ressourcen in der angegebenen Region und im angegebenen Konto. AWS 
  + `EMRServerlessPassRole`: Ermöglicht die Übergabe der angegebenen Laufzeitrolle (n) im angegebenen AWS Konto, aber nur, wenn die Rolle an den übergeben wird. `emr-serverless.amazonaws.com service` 
  + `EMRServerlessCreateApplicationAction`: Erlaubt die CreateApplication und TagResource Aktionen für EMR Serverless-Ressourcen in der angegebenen Region und AWS dem angegebenen Konto. Es erfordert jedoch, dass die Ressourcen, die erstellt oder markiert werden, über bestimmte Tagschlüssel (`sagemaker:domain-arn`, und`sagemaker:space-arn`) verfügen`sagemaker:user-profile-arn`, deren Werte ungleich Null sind.
  + `EMRServerlessDenyTaggingAction`: Die TagResource und UntagResource -Aktionen für EMR-Ressourcen in der angegebenen Region und dem angegebenen AWS Konto, wenn für die Ressourcen keiner der angegebenen Tag-Schlüssel (`sagemaker:domain-arn`,`sagemaker:user-profile-arn`, und) festgelegt ist. `sagemaker:space-arn`
  + `EMRServerlessActions`: Erlaubt verschiedene Aktionen (`StartApplication`,`StopApplication`,`GetApplication`, `DeleteApplication``AccessLivyEndpoints`, und`GetDashboardForJobRun`) auf serverlosen EMR-Ressourcen, jedoch nur, wenn für die Ressourcen die angegebenen Tag-Schlüssel (`sagemaker:domain-arn``sagemaker:user-profile-arn`, und`sagemaker:space-arn`) auf Werte ungleich Null gesetzt sind.

  Die im bereitgestellten JSON-Dokument definierte IAM-Richtlinie gewährt diese Berechtigungen, schränkt diesen Zugriff jedoch auf das Vorhandensein bestimmter SageMaker AI-Tags in den EMR-Serverless-Anwendungen ein, um sicherzustellen, dass nur Amazon EMR Serverless-Ressourcen verwaltet werden können, die einer bestimmten SageMaker AI-Domain, einem bestimmten Benutzerprofil und einem bestimmten Bereich zugeordnet sind. 

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "EMRServerlessListApplications",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:ListApplications"
              ],
              "Resource": "arn:aws:emr-serverless:{{us-east-1}}:{{111122223333}}:/*"
          },
          {
              "Sid": "EMRServerlessPassRole",
              "Effect": "Allow",
              "Action": "iam:PassRole",
              "Resource": "arn:aws:iam::{{111122223333}}:role/{{EMRServerlessAppRuntimeRole}}",
              "Condition": {
                  "StringLike": {
                      "iam:PassedToService": "emr-serverless.amazonaws.com"
                  }
              }
          },
          {
              "Sid": "EMRServerlessCreateApplicationAction",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:CreateApplication",
                  "emr-serverless:TagResource"
              ],
              "Resource": "arn:aws:emr-serverless:{{us-east-1}}:{{111122223333}}:/*",
              "Condition": {
                  "ForAllValues:StringEquals": {
                      "aws:TagKeys": [
                          "sagemaker:domain-arn",
                          "sagemaker:user-profile-arn",
                          "sagemaker:space-arn"
                      ]
                  },
                  "Null": {
                      "aws:RequestTag/sagemaker:domain-arn": "false",
                      "aws:RequestTag/sagemaker:user-profile-arn": "false",
                      "aws:RequestTag/sagemaker:space-arn": "false"
                  }
              }
          },
          {
              "Sid": "EMRServerlessDenyTaggingAction",
              "Effect": "Deny",
              "Action": [
                  "emr-serverless:TagResource",
                  "emr-serverless:UntagResource"
              ],
              "Resource": "arn:aws:emr-serverless:{{us-east-1}}:{{111122223333}}:/*",
              "Condition": {
                  "Null": {
                      "aws:ResourceTag/sagemaker:domain-arn": "true",
                      "aws:ResourceTag/sagemaker:user-profile-arn": "true",
                      "aws:ResourceTag/sagemaker:space-arn": "true"
                  }
              }
          },
          {
              "Sid": "EMRServerlessActions",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:StartApplication",
                  "emr-serverless:StopApplication",
                  "emr-serverless:GetApplication",
                  "emr-serverless:DeleteApplication",
                  "emr-serverless:AccessLivyEndpoints",
                  "emr-serverless:GetDashboardForJobRun"
              ],
              "Resource": "arn:aws:emr-serverless:{{us-east-1}}:{{111122223333}}:/applications/*",
              "Condition": {
                  "Null": {
                      "aws:ResourceTag/sagemaker:domain-arn": "false",
                      "aws:ResourceTag/sagemaker:user-profile-arn": "false",
                      "aws:ResourceTag/sagemaker:space-arn": "false"
                  }
              }
          }
      ]
  }
  ```

------
+ **Richtlinie für Aktionen zur Aktualisierung von Domänen, Benutzerprofilen und Bereichen**: Die folgende Richtlinie gewährt Berechtigungen zur Aktualisierung von SageMaker AI-Domänen, Benutzerprofilen und Spaces innerhalb der angegebenen Region und des angegebenen Kontos. AWS 

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "SageMakerUpdateResourcesPolicy",
              "Effect": "Allow",
              "Action": [
                  "sagemaker:UpdateDomain",
                  "sagemaker:UpdateUserprofile",
                  "sagemaker:UpdateSpace"
              ],
              "Resource": [
                  "arn:aws:sagemaker:{{us-east-1}}:{{111122223333}}:domain/*",
                  "arn:aws:sagemaker:{{us-east-1}}:{{111122223333}}:user-profile/*"
              ]
          }
      ]
  }
  ```

------