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
Anmerkung
Das GitHub-Repository aws-samples/sagemaker-studio-emr
Das Repository sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates enthält verschiedene Amazon EMR CloudFormation-Startvorlagen
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.ArnPortfolioId:SageMakerStudioEMRProductPortfolio.IDPrincipalType: 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.yamlTags: - 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.
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.
-
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.
-
Schritt 2: Weisen Sie der SageMaker-AI-Ausführungsrolle, die auf Ihre Amazon-EMR-Cluster zugreift, die folgenden Berechtigungen zu.
-
Navigieren Sie zur IAM-Konsole
. -
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 (/).
-
Folgen Sie dem Link zu Ihrer Rolle.
-
Wählen Sie Berechtigungen hinzufügen und dann Inline-Richtlinie erstellen aus.
-
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
accountIDdurch ihre tatsächlichen Werteregion, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren. -
Wählen Sie Weiter und geben Sie dann einen Richtliniennamen ein.
-
Wählen Sie Richtlinie erstellen aus.
-
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
regionundaccountIDdurch 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:
-
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.
-
Schritt 2: Erstellen Sie eine benutzerdefinierte IAM-Rolle
AssumableRolemit dem Namen der folgenden Konfiguration:-
Berechtigungen: Erteilen Sie die erforderlichen Berechtigungen,
AssumableRoleum 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 so
AssumableRole, dass die Ausführungsrolle (dieSageMakerExecutionRoleim 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
AssumableRolein Ihrem Amazon AWS EMR-Konto zu erhalten:-
Navigieren Sie zur IAM-Konsole
. -
Wählen Sie im linken Navigationsbereich Richtlinien und anschließend Richtlinie erstellen aus.
-
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
accountIDdurch ihre tatsächlichen Werteregion, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren. -
Wählen Sie Weiter und geben Sie dann einen Richtliniennamen ein.
-
Wählen Sie Richtlinie erstellen aus.
-
Wählen Sie im linken Navigationsbereich Rollen und dann Rolle erstellen aus.
-
Wählen Sie auf der Seite Rolle erstellen die Option Benutzerdefinierte Vertrauensrichtlinie als vertrauenswürdige Entität aus.
-
Fügen Sie das folgende JSON-Dokument in den Abschnitt Benutzerdefinierte Vertrauensrichtlinie ein und wählen Sie dann Weiter aus.
-
Fügen Sie auf der Seite „Berechtigungen hinzufügen“ die soeben erstellte Berechtigung hinzu und wählen Sie dann Weiter aus.
-
Geben Sie auf der Seite Überprüfen einen Rollennamen, z. B.
AssumableRole, und optional eine Beschreibung ein. -
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.
-
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.
-
Schritt 2: Weisen Sie der SageMaker-AI-Ausführungsrolle, die auf Ihre Amazon-EMR-Cluster zugreift, die folgenden Berechtigungen zu.
-
Navigieren Sie zur IAM-Konsole
. -
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 (/).
-
Folgen Sie dem Link zu Ihrer Rolle.
-
Wählen Sie Berechtigungen hinzufügen und dann Inline-Richtlinie erstellen aus.
-
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
regionundaccountIDdurch ihre tatsächlichen Werte, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren. -
Wählen Sie Weiter und geben Sie dann einen Richtliniennamen ein.
-
Wählen Sie Richtlinie erstellen aus.
-
Wiederholen Sie den Schritt Inline-Richtlinie erstellen, um eine weitere Richtlinie hinzuzufügen, die der Ausführungsrolle die Rechte erteilt, die Aktionen anzunehmen
AssumableRoleund dann auszuführen, die gemäß der Zugriffsrichtlinie der Rolle zulässig sind.emr-accountErsetzen Sie es durch die Amazon EMR-Konto-ID undAssumableRoledurch den Namen der angenommenen Rolle, die im Amazon EMR-Konto erstellt wurde. -
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
regionundaccountIDdurch ihre tatsächlichen Werte, bevor Sie die Liste der Anweisungen in die Inline-Richtlinie Ihrer Rolle kopieren. -
(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
-
-
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.