Konfigurieren Sie IAM-Laufzeitrollen für den Amazon EMR-Clusterzugriff in Studio
Wenn Sie von Ihren Studio- oder Studio-Classic-Notebook aus eine Verbindung zu einem Amazon-EMR-Cluster herstellen, können Sie visuell eine Liste von IAM-Rollen, auch Laufzeit-Rollen genannt, durchsuchen und spontan eine auswählen. Anschließend greifen alle Ihre Apache Spark-, Apache Hive- oder Presto-Aufträge, die von Ihrem Notebook aus erstellt wurden, nur auf die Daten und Ressourcen zu, die gemäß den mit der Laufzeit-Rolle verknüpften Richtlinien zulässig sind. Wenn auf Daten aus Data Lakes zugegriffen wird, die mit AWS Lake Formation verwaltet werden, können Sie außerdem den Zugriff auf Tabellen- und Spaltenebene mithilfe von Richtlinien erzwingen, die der Laufzeit-Rolle zugeordnet sind.
Mit dieser Funktion können Sie und Ihre Teamkollegen eine Verbindung zu demselben Cluster herstellen und dabei jeweils eine Laufzeit-Rolle verwenden, deren Umfang über Berechtigungen verfügt, die Ihrer individuellen Zugriffsebene auf Daten entsprechen. Ihre Sitzungen sind auf dem gemeinsam genutzten Cluster auch voneinander isoliert.
Informationen zum Ausprobieren dieses neuen Features mit Studio Classic finden Sie unter Anwenden detaillierter Datenzugriffskontrollen mit AWS Lake Formation und Amazon EMR von Amazon SageMaker Studio Classic
Voraussetzungen
Bevor Sie beginnen, sollten Sie sicherstellen, dass Sie die folgenden Voraussetzungen erfüllen:
-
Verwenden Sie Amazon EMR Version 6.9 oder höher.
-
Für Studio-Classic-Benutzer: Verwenden Sie JupyterLab Version 3 in der Konfiguration der Jupyter-Serveranwendung von Studio Classic. Diese Version unterstützt die Studio-Classic-Verbindung zu Amazon-EMR-Clustern mithilfe von Laufzeit-Rollen.
Für Studio-Benutzer: Verwenden Sie eine Imageversion der SageMaker-Distribution
1.10oder höher. -
Erlauben Sie die Verwendung von Laufzeit-Rollen in der Sicherheitskonfiguration Ihres Clusters. Weitere Informationen finden Sie unter Schritte zu den Laufzeit-Rollen für Amazon EMR.
-
Erstellen Sie ein Notebook mit einem der in Unterstützte Images und Kernel für die Verbindung zu einem Amazon-EMR-Cluster von Studio oder Studio Classic aus aufgeführten Kernel.
-
Lesen Sie unbedingt die Anweisungen unter Richten Sie Studio für die Verwendung von Laufzeit-IAM-Rollen ein, um Ihre Laufzeit-Rollen zu konfigurieren.
Kontoübergreifende Verbindungsszenarien
Die Laufzeit-Rollenauthentifizierung unterstützt eine Vielzahl von kontoübergreifenden Verbindungsszenarien, wenn sich Ihre Daten außerhalb Ihres Studio-Kontos befinden. Die folgende Abbildung zeigt drei verschiedene Möglichkeiten, wie Sie Ihren Amazon-EMR-Cluster, Ihre Daten und sogar Ihre Laufzeit-Ausführungsrolle von Amazon EMR Ihren Studio- und Datenkonten zuweisen können:
In Option 1 befinden sich Ihr Amazon-EMR-Cluster und Ihre Laufzeit-Ausführungsrolle von Amazon EMR in einem vom Studio-Konto getrennten Datenkonto. Sie definieren eine separate Autorisierungsrichtlinie für Amazon-EMR-Zugriffsrollen (auch bezeichnet als Assumable role) , die Ihrer Studio- oder-Studio-Classic-Ausführungsrolle die Erlaubnis erteilt, die Amazon-EMR-Zugriffsrolle zu übernehmen. Die Amazon-EMR-Zugriffsrolle ruft dann die Amazon-EMR-API GetClusterSessionCredentials im Namen Ihrer Studio- oder Studio Classic-Ausführungsrolle auf, sodass Sie Zugriff auf den Cluster erhalten.
In Option 2 befinden sich Ihr Amazon-EMR-Cluster und Ihre Laufzeit-Ausführungsrolle von Amazon EMR in Ihrem Studio-Konto. Ihre Studio-Ausführungsrolle ist berechtigt, die Amazon EMR-API GetClusterSessionCredentials zu verwenden, um Zugriff auf Ihren Cluster zu erhalten. Um auf den Amazon-S3-Bucket zuzugreifen, erteilen Sie der Laufzeit-Ausführungsrolle von Amazon EMR kontoübergreifende Zugriffsberechtigungen von Amazon S3 Bucket. Sie gewähren diese Berechtigungen im Rahmen Ihrer Bucket-Richtlinie von Amazon S3.
In Option 3 befinden sich Ihre Amazon-EMR-Cluster in Ihrem Studio-Konto und die Laufzeit-Ausführungsrolle von Amazon EMR in Ihrem Datenkonto. Ihre Studio- oder Studio-Classic-Ausführungsrolle ist berechtigt, die Amazon-EMR-API GetClusterSessionCredentials zu verwenden, um Zugriff auf Ihren Cluster zu erhalten. Fügen Sie die Laufzeit-Ausführungsrolle von Amazon EMR zur Konfigurations-JSON der Ausführungsrolle hinzu. Anschließend können Sie die Rolle in der Benutzeroberfläche auswählen, wenn Sie Ihren Cluster auswählen. Einzelheiten zum Einrichten der JSON-Datei für die Konfiguration Ihrer Ausführungsrolle finden Sie unter Herunterladen Ihrer Ausführungsrollen in Studio oder Studio im Vorfeld.
Richten Sie Studio für die Verwendung von Laufzeit-IAM-Rollen ein
Um die Laufzeit-Rollenauthentifizierung für Ihre Amazon EMR-Cluster einzurichten, konfigurieren Sie die erforderlichen IAM-Richtlinien, Netzwerk- und Benutzerfreundlichkeitsverbesserungen. Ihre Einrichtung hängt davon ab, ob Sie kontenübergreifende Vereinbarungen treffen, wenn sich Ihre Amazon-EMR-Cluster, Ihre Laufzeit-Ausführungsrolle von Amazon EMR oder beides außerhalb Ihres Studio-Kontos befinden. Der folgende Abschnitt führt Sie durch die zu installierenden Richtlinien, die Konfiguration des Netzwerks, um den Datenverkehr zwischen kontenübergreifenden Konten zuzulassen, und die lokale Konfigurationsdatei, die Sie zur Automatisierung Ihrer Amazon-EMR-Verbindung einrichten müssen.
Konfigurieren Sie die Laufzeit-Rollenauthentifizierung, wenn sich Ihr Amazon EMR-Cluster und Studio im selben Konto befinden
Wenn sich Ihr Amazon EMR-Cluster in Ihrem Studio-Konto befindet, führen Sie die folgenden Schritte aus, um Ihrer Studio-Ausführungsrichtlinie die erforderlichen Berechtigungen hinzuzufügen:
-
Fügen Sie die erforderliche IAM-Richtlinie hinzu, um eine Verbindung zu Amazon EMR-Clustern herzustellen. Details hierzu finden Sie unter Amazon-EMR-Cluster konfigurieren.
-
Erteilen Sie die Erlaubnis zum Aufrufen der Amazon-EMR-API
GetClusterSessionCredentials, wenn Sie eine oder mehrere zulässige Laufzeit-Ausführungsrollen von Amazon EMR bestehen, die in der Richtlinie angegeben sind. -
(Optional) Erteilen Sie die Erlaubnis, IAM-Rollen zu übergeben, die beliebigen benutzerdefinierten Benennungskonventionen entsprechen.
-
(Optional) Erteilen Sie die Berechtigung zum Zugriff auf Amazon EMR-Cluster, die mit bestimmten benutzerdefinierten Strings gekennzeichnet sind.
-
Laden Sie Ihre IAM-Rollen vorab herunter, damit Sie die Rolle auswählen können, die Sie verwenden möchten, wenn Sie eine Verbindung zu Ihrem Amazon EMR-Cluster herstellen. Weitere Informationen über das Vorladen Ihrer IAM-Rollen finden Sie unter Herunterladen Ihrer Ausführungsrollen in Studio oder Studio im Vorfeld.
Die folgende Beispielrichtlinie ermöglicht Laufzeit-Ausführungsrollen von Amazon EMR, die zu den Modellierungs- und Trainingsgruppen gehören, das Aufrufen von GetClusterSessionCredentials. Darüber hinaus kann der Versicherungsnehmer auf Amazon EMR-Cluster zugreifen, die mit den Strings modeling oder training gekennzeichnet sind.
Konfigurieren Sie die Laufzeit-Rollenauthentifizierung, wenn sich Ihr Cluster und Studio in verschiedenen Konten befinden
Wenn sich Ihr Amazon-EMR-Cluster nicht in Ihrem Studio-Konto befindet, erlauben Sie Ihrer SageMaker-AI-Ausführungsrolle, die kontoübergreifende Amazon-EMR-Zugriffsrolle zu übernehmen, damit Sie eine Verbindung zum Cluster herstellen können. Führen Sie die folgenden Schritte aus, um Ihre Kontoübergreifende Konfiguration einzurichten:
-
Erstellen Sie Ihre Berechtigungsrichtlinie für die SageMaker-AI-Ausführungsrolle, sodass die Ausführungsrolle die Amazon-EMR-Zugriffsrolle übernehmen kann. Folgendes ist eine Beispielrichtlinie:
-
Erstellen Sie die Vertrauensrichtlinie, um anzugeben, welchen Studio-Konto-IDs vertraut wird, um die Amazon EMR-Zugriffsrolle zu übernehmen. Folgendes ist eine Beispielrichtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerExecutionRoleToAssumeThisRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio_account_id:role/studio_execution_role" }, "Action": "sts:AssumeRole" } } -
Erstellen Sie die Autorisierungsrichtlinie für Amazon-EMR-Zugriffsrollen, die der Laufzeit-Ausführungsrolle von Amazon EMR die erforderlichen Berechtigungen für die Ausführung der vorgesehenen Aufgaben auf dem Cluster gewährt. Konfigurieren Sie die Amazon-EMR-Zugriffsrolle so, dass sie die API
GetClusterSessionCredentialsmit den Laufzeit-Ausführungsrollen von Amazon EMR aufruft, die in der Zugriffsrollenberechtigungsrichtlinie angegeben sind. Folgendes ist eine Beispielrichtlinie: -
Richten Sie das kontenübergreifende Netzwerk so ein, dass der Datenverkehr zwischen Ihren Konten hin und her fließen kann. Anweisungen finden Sie unter Konfigurieren Sie den Netzwerkzugriff für Ihren Amazon-EMR-Cluster Einrichten von . Die Schritte in diesem Abschnitt helfen Ihnen bei der Durchführung der folgenden Aufgaben:
-
VPC-Peer zwischen Ihrem Studio-Konto und Ihrem Amazon EMR-Konto, um eine Verbindung herzustellen.
-
Fügen Sie den Routing-Tabellen für private Subnetze in beiden Konten manuell Routen hinzu. Dies ermöglicht die Erstellung und Verbindung von Amazon-EMR-Clustern vom Studio-Konto zum privaten Subnetz des Remote-Kontos.
-
Richten Sie die mit Ihrer Studio-Domain verbundene Sicherheitsgruppe ein, um ausgehenden Datenverkehr zuzulassen, und die Sicherheitsgruppe des Amazon EMR-Primärknotens, um eingehenden TCP-Verkehr von der Studio-Instance-Sicherheitsgruppe zuzulassen.
-
-
Laden Sie Ihre IAM-Runtime-Rollen vorab herunter, sodass Sie die Rolle auswählen können, die Sie verwenden möchten, wenn Sie eine Verbindung zu Ihrem Amazon EMR-Cluster herstellen. Weitere Informationen über das Vorladen Ihrer IAM-Rollen finden Sie unter Herunterladen Ihrer Ausführungsrollen in Studio oder Studio im Vorfeld.
Lake Formation-Zugriff konfigurieren
Wenn auf Daten aus Data Lakes zugegriffen wird, die mit AWS Lake Formation verwaltet werden, können Sie außerdem den Zugriff auf Tabellen- und Spaltenebene mithilfe von Richtlinien erzwingen, die der Laufzeit-Rolle zugeordnet sind. Informationen zur Konfiguration von Lake Formation-Zugriff finden Sie unter Integrieren von Amazon EMR mit AWS Lake Formation.
Herunterladen Ihrer Ausführungsrollen in Studio oder Studio im Vorfeld
Sie können Ihre IAM-Runtime-Rollen vorab laden, sodass Sie die Rolle auswählen können, die Sie verwenden möchten, wenn Sie eine Verbindung zu Ihrem Amazon EMR-Cluster herstellen. Benutzer von JupyterLab in Studio können die SageMaker-AI-Konsole oder das bereitgestellte Skript verwenden.