Amazon EMR CloudFormation-Vorlagen im Service Catalog konfigurieren - Amazon SageMaker AI

Amazon EMR CloudFormation-Vorlagen im Service Catalog konfigurieren

Bei diesem Thema wird vorausgesetzt, dass Administratoren mit CloudFormation, Portfolios und Produkten in AWS Service Catalog sowie Amazon EMR vertraut sind.

Um die Erstellung von Amazon-EMR-Clustern zu vereinfachen, können Administratoren eine CloudFormation-Vorlage von Amazon EMR als Produkt in einem AWS Service Catalog-Portfolio registrieren. Um die Vorlage Datenwissenschaftlern zur Verfügung zu stellen, müssen sie das Portfolio mit der in Studio oder Studio Classic verwendeten SageMaker AI-Ausführungsrolle verknüpfen. Damit Benutzer von Studio oder Studio Classic aus Vorlagen auffinden, Cluster bereitstellen und von Studio Classic aus eine Verbindung zu Amazon EMR-Clustern herstellen können.

Mit den Amazon CloudFormation EMR-Vorlagen können Endbenutzer verschiedene Cluster-Aspekte anpassen. Administratoren können z. B. eine Liste der zulässigen Instance-Typen festlegen, die Benutzer beim Erstellen eines Clusters auswählen können.

In den folgenden Anweisungen werden umfassende CloudFormation-Stacks verwendet, um eine Studio- oder Studio Classic-Domain, ein Benutzerprofil, ein Service Catalog-Portfolio einzurichten und eine Amazon EMR-Startvorlage auszufüllen. In den folgenden Schritten werden die spezifischen Einstellungen hervorgehoben, die der Administrator in seinem End-to-End-Stack anwenden muss, damit Studio oder Studio Classic auf Service-Catalog-Produkte zugreifen und Amazon EMR-Cluster bereitstellen können.

Anmerkung

Das GitHub-Repository aws-samples/sagemaker-studio-emr enthält Beispiele für durchgängige CloudFormation-Stacks, die die erforderlichen IAM-Rollen, Netzwerke, die SageMaker-Domain, das Benutzerprofil und das Service Catalog-Portfolio bereitstellen und eine CloudFormation-Startvorlage für Amazon EMR hinzufügen. Die Vorlagen bieten unterschiedliche Authentifizierungsoptionen zwischen Studio oder Studio Classic und dem Amazon EMR-Cluster. In diesen Beispielvorlagen übergibt der übergeordnete CloudFormation-Stack die Parameter SageMaker AI VPC, Sicherheitsgruppe und Subnetz an die Amazon-EMR-Clustervorlage.

Das Repository sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates enthält verschiedene Amazon EMR CloudFormation-Startvorlagen, darunter Optionen für Bereitstellungen mit nur einem Konto und kontenübergreifender Bereitstellung.

Weitere Informationen zu Herstellen einer Verbindung von SageMaker Studio oder Studio Classic zu einem Amazon-EMR-Cluster aus den Authentifizierungsmethoden, die Sie verwenden können, um eine Verbindung zu einem Amazon EMR-Cluster herzustellen.

Gehen Sie wie folgt vor, damit Datenwissenschaftler Amazon EMR CloudFormation-Vorlagen entdecken und Cluster von Studio oder Studio Classic aus bereitstellen können.

Schritt 0: Überprüfen Sie Ihr Netzwerk und bereiten Sie Ihren CloudFormation-Stack vor

Bevor Sie beginnen:

  • Stellen Sie sicher, dass Sie die Netzwerk- und Sicherheitsanforderungen unter gelesen haben. Konfigurieren Sie den Netzwerkzugriff für Ihren Amazon-EMR-Cluster

  • Sie müssen über einen vorhandenen umfassenden CloudFormation-Stack verfügen, der die Authentifizierungsmethode Ihrer Wahl unterstützt. Beispiele für solche CloudFormation-Vorlagen finden Sie im GitHub-Repository aws-samples/sagemaker-studio-emr. In den folgenden Schritten werden die spezifischen Konfigurationen in Ihrem End-to-End-Stack hervorgehoben, um die Verwendung von Amazon EMR-Vorlagen in Studio oder Studio Classic zu ermöglichen.

Schritt 1: Verknüpfen Sie Ihr Service Catalog-Portfolio mit SageMaker AI

Verknüpfen Sie in Ihrem Service Catalog-Portfolio Ihre Portfolio-ID mit der SageMaker AI-Ausführungsrolle, die auf Ihren Cluster zugreift.

Fügen Sie dazu den folgenden Abschnitt (hier im YAML-Format) zu Ihrem Stack hinzu. Dadurch erhält die SageMaker AI-Ausführungsrolle Zugriff auf das angegebene Service Catalog-Portfolio, das Produkte wie Amazon EMR-Vorlagen enthält. Es ermöglicht Rollen, die von SageMaker AI übernommen wurden, um diese Produkte auf den Markt zu bringen.

Ersetzen Sie SageMakerExecutionRole.arn und SageMakerStudioEMRProductPortfolio.id durch ihre tatsächlichen Werte.

SageMakerStudioEMRProductPortfolioPrincipalAssociation: Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation Properties: PrincipalARN: SageMakerExecutionRole.Arn PortfolioId: SageMakerStudioEMRProductPortfolio.ID PrincipalType: IAM

Einzelheiten zu den erforderlichen IAM-Berechtigungen finden Sie im Abschnitt Berechtigungen.

Schritt 2: Verweisen Sie auf eine Amazon EMR-Vorlage in einem Service Catalog-Produkt

Verweisen Sie in einem Service Catalog-Produkt Ihres Portfolios auf eine Amazon EMR-Vorlagenressource und stellen Sie sicher, dass sie in Studio oder Studio Classic sichtbar ist.

Beziehen Sie dazu die Amazon-EMR-Vorlagenressource in der Produktdefinition von Service Catalog und fügen Sie dann den folgenden Tag-Schlüsselsatz "sagemaker:studio-visibility:emr" zum Wert hinzu (siehe Beispiel im YAML-Format).

In der Service Catalog-Produktdefinition wird die CloudFormation Vorlage des Clusters über eine URL referenziert. Das zusätzliche Tag, das auf true gesetzt ist, gewährleistet die Sichtbarkeit der Amazon EMR-Vorlagen in Studio oder Studio Classic.

Anmerkung

Die Amazon EMR-Vorlage, auf die im Beispiel durch die angegebene URL verwiesen wird, erzwingt beim Start keine Authentifizierungsanforderungen. Diese Option dient Demonstrations- und Lernzwecken. Dies wird in einer Produktionsumgebung nicht empfohlen.

SMStudioEMRNoAuthProduct: Type: AWS::ServiceCatalog::CloudFormationProduct Properties: Owner: AWS Name: SageMaker Studio Domain No Auth EMR ProvisioningArtifactParameters: - Name: SageMaker Studio Domain No Auth EMR Description: Provisions a SageMaker domain and No Auth EMR Cluster Info: LoadTemplateFromURL: Link to your CloudFormation template. For example, https://aws-blogs-artifacts-public.s3.amazonaws.com/artifacts/astra-m4-sagemaker/end-to-end/CFN-EMR-NoStudioNoAuthTemplate-v3.yaml Tags: - Key: "sagemaker:studio-visibility:emr" Value: "true"

Schritt 3: Parametrisieren Sie die Amazon EMR CloudFormation-Vorlage

Die CloudFormation-Vorlage, die zur Definition des Amazon EMR-Clusters innerhalb des Service Catalog-Produkts verwendet wird, ermöglicht es Administratoren, konfigurierbare Parameter anzugeben. Administratoren können Default Werte und AllowedValues Bereiche für diese Parameter im Abschnitt der Vorlage definieren. Parameters Während des Cluster-Startvorgangs können Datenwissenschaftler benutzerdefinierte Eingaben bereitstellen oder aus diesen vordefinierten Optionen eine Auswahl treffen, um bestimmte Aspekte ihres Amazon EMR-Clusters anzupassen.

Das folgende Beispiel zeigt zusätzliche Eingabeparameter, die der Administrator bei der Erstellung einer Amazon EMR-Vorlage festlegen kann.

"Parameters": { "EmrClusterName": { "Type": "String", "Description": "EMR cluster Name." }, "MasterInstanceType": { "Type": "String", "Description": "Instance type of the EMR master node.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge" ] }, "CoreInstanceType": { "Type": "String", "Description": "Instance type of the EMR core nodes.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge" ] }, "CoreInstanceCount": { "Type": "String", "Description": "Number of core instances in the EMR cluster.", "Default": "2", "AllowedValues": [ "2", "5", "10" ] }, "EmrReleaseVersion": { "Type": "String", "Description": "The release version of EMR to launch.", "Default": "emr-5.33.1", "AllowedValues": [ "emr-5.33.1", "emr-6.4.0" ] } }

Nachdem Administratoren die CloudFormation-Vorlagen von Amazon EMR in Studio verfügbar gemacht haben, können Datenwissenschaftler diese verwenden, um Amazon-EMR-Cluster selbst bereitzustellen. Der in der Vorlage definierte Parameters Abschnitt wird in Eingabefelder im Formular zur Clustererstellung in Studio oder Studio Classic übersetzt. Für jeden Parameter können Datenwissenschaftler entweder einen benutzerdefinierten Wert in das Eingabefeld eingeben oder aus den in einem Dropdownmenü aufgeführten vordefinierten Optionen auswählen, die den in der Vorlage AllowedValues angegebenen Optionen entsprechen.

Die folgende Abbildung zeigt das dynamische Formular, das aus einer CloudFormation-Vorlage von Amazon EMR zusammengestellt wurde, um in Studio oder Studio Classic einen Amazon-EMR-Cluster zu erstellen.

Abbildung eines dynamischen Formulars, das aus einer CloudFormation-Vorlage von Amazon EMR zusammengestellt wurde, um in Studio oder Studio Classic einen Amazon-EMR-Cluster zu erstellen.

Besuchen Sie Starten eines Amazon-EMR-Clusters von Studio oder Studio Classic aus, um zu erfahren, wie Sie mithilfe dieser Amazon-EMR-Vorlagen von Studio oder Studio Classic aus einen Cluster starten können.

Schritt 4: Richten Sie die Berechtigungen ein, um das Auflisten und Starten von Amazon EMR-Clustern von Studio aus zu ermöglichen

Fügen Sie abschließend die erforderlichen IAM-Berechtigungen hinzu, um die Auflistung vorhandener laufender Amazon EMR-Cluster und die Selbstbereitstellung neuer Cluster aus Studio oder Studio Classic zu ermöglichen.

Die Rolle(n), zu denen Sie diese Berechtigungen hinzufügen müssen, hängt davon ab, ob Studio oder Studio Classic und Amazon EMR im selben Konto (wählen Sie Einzelnes Konto) oder in verschiedenen Konten (wählen Sie Kontoübergreifend) bereitgestellt werden.

Wichtig

Sie können nur Amazon EMR-Cluster für JupyterLab- und Studio Classic-Anwendungen, die von privaten Bereichen aus gestartet werden, erkennen und eine Verbindung zu diesen herstellen. Stellen Sie sicher, dass sich die Amazon EMR-Cluster in derselben AWS Region wie Ihre Studio-Umgebung befinden.

Wenn Ihre Amazon EMR-Cluster und Studio oder Studio Classic im selben AWS Konto bereitgestellt werden, fügen Sie der SageMaker AI-Ausführungsrolle, die auf Ihren Cluster zugreift, die folgenden Berechtigungen hinzu.

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

    Informationen zu Bereichen und Ausführungsrollen in SageMaker AI finden Sie unter Grundlegendes zu Domainbereichsberechtigungen und Ausführungsrollen.

    Weitere Informationen zum Abrufen des ARN der Ausführungsrolle von SageMaker AI finden Sie unter Abrufen Ihrer Ausführungsrolle.

  2. Schritt 2: Weisen Sie der SageMaker-AI-Ausführungsrolle, die auf Ihre Amazon-EMR-Cluster zugreift, die folgenden Berechtigungen zu.

    1. Navigieren Sie zur IAM-Konsole.

    2. 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 (/).

    3. Folgen Sie dem Link zu Ihrer Rolle.

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

    5. Fügen Sie auf der Registerkarte JSON die Amazon EMR-Berechtigungen hinzu, die Amazon EMR-Zugriff und -Operationen ermöglichen. Einzelheiten zum Richtliniendokument finden Sie unter Amazon-EMR-Richtlinien auflisten unter Referenzrichtlinien. Ersetzen Sie die und accountID durch ihre tatsächlichen Werteregion, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren.

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

    7. Wählen Sie Richtlinie erstellen aus.

    8. Wiederholen Sie den Schritt Inline-Richtlinie erstellen, um eine weitere Richtlinie hinzuzufügen, die der Ausführungsrolle die Berechtigungen zur Bereitstellung neuer Amazon EMR-Cluster mithilfe von CloudFormation Vorlagen erteilt. Einzelheiten zum Richtliniendokument finden Sie unter Amazon-EMRclusters-Richtlinien erstellen unter Referenzrichtlinien. Ersetzen Sie die region und accountID durch ihre tatsächlichen Werte, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren.

Anmerkung

Benutzer der Verbindung zur rollenbasierten Zugriffskontrolle (RBAC) finden weitere Informationen zu Amazon EMR-Clustern. Konfigurieren Sie die Laufzeit-Rollenauthentifizierung, wenn sich Ihr Amazon EMR-Cluster und Studio im selben Konto befinden

Bevor Sie beginnen, rufen Sie den ARN der SageMaker AI-Ausführungsrolle ab, die von Ihrem privaten Bereich verwendet wird.

Informationen zu Bereichen und Ausführungsrollen in SageMaker AI finden Sie unter Grundlegendes zu Domainbereichsberechtigungen und Ausführungsrollen.

Weitere Informationen zum Abrufen des ARN der Ausführungsrolle von SageMaker AI finden Sie unter Abrufen Ihrer Ausführungsrolle.

Wenn Ihre Amazon-EMR-Cluster und Studio oder Studio Classic in separaten AWS-Konten bereitgestellt werden, konfigurieren Sie die Berechtigungen in beiden Konten.

Anmerkung

Benutzer der Verbindung zur rollenbasierten Zugriffskontrolle (RBAC) finden weitere Informationen zu Amazon EMR-Clustern. Konfigurieren Sie die Laufzeit-Rollenauthentifizierung, wenn sich Ihr Cluster und Studio in verschiedenen Konten befinden

Auf dem Amazon-EMR-Clusterkonto

Gehen Sie wie folgt vor, um die erforderlichen Rollen und Richtlinien für das Konto zu erstellen, auf dem Amazon EMR bereitgestellt wird, das auch als vertrauenswürdiges Konto bezeichnet wird:

  1. Schritt 1: Rufen Sie den ARN der Servicerolle Ihres Amazon EMR-Clusters ab.

    Informationen darüber, wie Sie den ARN der Servicerolle eines Clusters ermitteln, finden Sie unter Konfigurieren von IAM-Servicerollen für Amazon EMR-Berechtigungen für AWS Dienste und Ressourcen.

  2. Schritt 2: Erstellen Sie eine benutzerdefinierte IAM-Rolle AssumableRole mit dem Namen der folgenden Konfiguration:

    • Berechtigungen: Erteilen Sie die erforderlichen Berechtigungen, AssumableRole um den Zugriff auf Amazon EMR-Ressourcen zu ermöglichen. Diese Rolle wird in Szenarien mit kontenübergreifendem Zugriff auch als Access-Rolle bezeichnet.

    • Vertrauensverhältnis: Konfigurieren Sie die Vertrauensrichtlinie soAssumableRole, 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 erhalten Studio oder Studio Classic temporären Zugriff auf die erforderlichen Berechtigungen in Amazon EMR.

    Gehen Sie wie folgt vor, um detaillierte Anweisungen zum Erstellen eines neuen AssumableRole in Ihrem Amazon AWS EMR-Konto zu erhalten:

    1. Navigieren Sie zur IAM-Konsole.

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

    3. Fügen Sie auf der Registerkarte JSON die Amazon EMR-Berechtigungen hinzu, die Amazon EMR-Zugriff und -Operationen ermöglichen. Einzelheiten zum Richtliniendokument finden Sie unter Amazon-EMR-Richtlinien auflisten unter Referenzrichtlinien. Ersetzen Sie die und accountID durch ihre tatsächlichen Werteregion, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren.

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

    5. Wählen Sie Richtlinie erstellen aus.

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

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

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

      For users of Studio and JupyterLab

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

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

      Ersetzen Sie es studio-account durch die Studio Classic-Konto-ID.

      JSON
      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "sts:AssumeRole" } ] }
    9. Fügen Sie auf der Seite „Berechtigungen hinzufügen“ die soeben erstellte Berechtigung hinzu und wählen Sie dann Weiter aus.

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

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

    Weitere Informationen dazu, wie Sie eine Rolle für ein AWS-Konto erstellen können, finden Sie unter Erstellen einer IAM-Rolle (Konsole).

Auf dem Studio-Konto

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 Cluster 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 privaten Bereich verwendet wird.

    Informationen zu Bereichen und Ausführungsrollen in SageMaker AI finden Sie unter Grundlegendes zu Domainbereichsberechtigungen und Ausführungsrollen.

    Weitere Informationen zum Abrufen des ARN der Ausführungsrolle von SageMaker AI finden Sie unter Abrufen Ihrer Ausführungsrolle.

  2. Schritt 2: Weisen Sie der SageMaker-AI-Ausführungsrolle, die auf Ihre Amazon-EMR-Cluster zugreift, die folgenden Berechtigungen zu.

    1. Navigieren Sie zur IAM-Konsole.

    2. 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 (/).

    3. Folgen Sie dem Link zu Ihrer Rolle.

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

    5. 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 Richtliniendokument finden Sie unter Richtlinie für Domain-, Benutzerprofil- und Bereichsaktualisierungen in Referenzrichtlinien. Ersetzen Sie die region und accountID durch ihre tatsächlichen Werte, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren.

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

    7. Wählen Sie Richtlinie erstellen aus.

    8. 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-accountErsetzen Sie es durch die Amazon EMR-Konto-ID und AssumableRole durch den Namen der angenommenen Rolle, die im Amazon EMR-Konto erstellt wurde.

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::111122223333:role/AssumableRole" ] } ] }
    9. Wiederholen Sie den Schritt Inline-Richtlinie erstellen, um eine weitere Richtlinie hinzuzufügen, die der Ausführungsrolle die Berechtigungen zur Bereitstellung neuer Amazon EMR-Cluster mithilfe von CloudFormation Vorlagen erteilt. Einzelheiten zum Richtliniendokument finden Sie unter Amazon-EMRclusters-Richtlinien erstellen unter Referenzrichtlinien. Ersetzen Sie die region und accountID durch ihre tatsächlichen Werte, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren.

    10. (Optional) Um das Auflisten von Amazon EMR-Clustern zu ermöglichen, die in demselben Konto wie Studio bereitgestellt werden, fügen Sie Ihrer Studio-Ausführungsrolle eine zusätzliche Inline-Richtlinie hinzu, wie unter Amazon EMR-Richtlinien auflisten unter definiert. Referenzrichtlinien

  3. Schritt 3: Ordnen Sie Ihre angenommene (n) Rolle (n) (Zugriffsrolle) Ihrer Domain oder Ihrem Benutzerprofil zu. JupyterLab-Benutzer in Studio können die SageMaker-AI-Konsole oder das bereitgestellte Skript verwenden.

    Wählen Sie den Tab aus, der Ihrem Anwendungsfall entspricht.

    Associate your assumable roles in JupyterLab using the SageMaker AI console

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

    1. Öffnen Sie die SageMaker-AI-Konsole unter https://console.aws.amazon.com/sagemaker/.

    2. Wählen Sie im linken Navigationsbereich Domain und dann mithilfe der SageMaker AI-Ausführungsrolle, deren Berechtigungen Sie aktualisiert haben.

      • So fügen Sie Ihre übertragbaren Rollen (Zugriffsrollen) zu Ihrer Domain hinzu: Navigieren Sie auf der Registerkarte App-Konfigurationen auf der Seite mit den Domaindetails zum Abschnitt JupyterLab.

      • So fügen Sie Ihre übertragbaren Rollen (Zugriffsrollen) zu Ihrer Domain hinzu: Wählen Sie auf der Seite mit den Domaindetails die Registerkarte Benutzerprofile und anschließend das Benutzerprofil mit der SageMaker-AI-Ausführungsrolle aus, deren Berechtigungen Sie aktualisiert haben. Navigieren Sie auf der Registerkarte App-Konfigurationen zum Abschnitt JupyterLab.

    3. Wählen Sie Bearbeiten und fügen Sie die ARNs Ihrer angenommenen Rolle (Zugriffsrolle) hinzu.

    4. Wählen Sie Absenden aus.

    Associate your assumable roles in JupyterLab using a Python script

    Führen Sie in einer JupyterLab-Anwendung, die von einem Space aus gestartet wurde und die SageMaker AI-Ausführungsrolle verwendet, deren Berechtigungen Sie aktualisiert haben, den folgenden Befehl in einem Terminal aus. Ersetzen SiedomainID, user-profile-nameemr-accountID, und AssumableRole (EMRServiceRolefür RBAC-Laufzeitrollen) durch ihre richtigen Werte. Dieser Codeausschnitt aktualisiert die Benutzerprofileinstellungen für ein bestimmtes Benutzerprofil (Verwendungclient.update_userprofile) oder Domaineinstellungen (Verwendungclient.update_domain) innerhalb einer SageMaker AI-Domain. Insbesondere ermöglicht es der JupyterLab-Anwendung, eine bestimmte IAM-Rolle (AssumableRole) für die Ausführung von Amazon EMR-Clustern innerhalb des Amazon EMR-Kontos anzunehmen.

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_userprofile( DomainId="domainID", UserProfileName="user-profile-name", DefaultUserSettings={ 'JupyterLabAppSettings': { 'EmrSettings': { 'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"], 'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServiceRole", "arn:aws:iam::emr-accountID:role/AnotherServiceRole"] } } }) 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))
    For users of Studio Classic

    Geben Sie den ARN für Ihre Studio Classic-Ausführungsrolle an. AssumableRole Der ARN wird beim Start des Jupyter-Servers geladen. Die Ausführungsrolle von Studio übernimmt diese kontoübergreifende Rolle, um Amazon-EMR-Cluster im vertrauenden Konto aufzufinden und eine Verbindung zu ihnen herzustellen.

    Sie können diese Informationen mithilfe von Lifecycle Configuration (LCC) -Skripten angeben. Sie können das LCC an Ihre Domain oder ein bestimmtes Benutzerprofil anfügen. Das von Ihnen verwendete LCC-Skript muss eine JupyterServer-Konfiguration sein. Weitere Informationen dazu, wie ein LCC-Skript erstellt wird, finden Sie unter Verwenden der Lebenszykluskonfigurationen mit Studio Classic.

    Nachfolgend sehen Sie ein LCC-Beispielskript. Um das Skript zu ändern, ersetzen Sie AssumableRole es emr-account durch die entsprechenden Werte. Die Anzahl der Konten für die kontoübergreifende Nutzung ist auf fünf begrenzt.

    # This script creates the file that informs Studio Classic that the role "arn:aws:iam::emr-account:role/AssumableRole" in remote account "emr-account" must be assumed to list and describe Amazon EMR clusters in the remote account. #!/bin/bash set -eux FILE_DIRECTORY="/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE" FILE_NAME="emr-discovery-iam-role-arns-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat > "$FILE" <<- "EOF" { emr-cross-account1: "arn:aws:iam::emr-cross-account1:role/AssumableRole", emr-cross-account2: "arn:aws:iam::emr-cross-account2:role/AssumableRole" } EOF

    Sobald der LCC läuft und die Dateien geschrieben werden, liest der Server die Datei /home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE/emr-discovery-iam-role-arns-DO_NOT_DELETE.json und speichert die kontoübergreifende ARN.