Stellen Sie von Ihrem Notebook aus eine Connect zu einem EMR Amazon-Cluster her - Amazon SageMaker

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.

Stellen Sie von Ihrem Notebook aus eine Connect zu einem EMR Amazon-Cluster her

Wenn Sie von Ihrem Jupyter-Notebook in Studio aus eine Verbindung zu einem EMR Amazon-Cluster herstellen, müssen Sie möglicherweise zusätzliche Einstellungen vornehmen. In der folgenden Diskussion werden insbesondere zwei Probleme behandelt:

  • Übergeben von Parametern an Ihren EMR Amazon-Verbindungsbefehl. In SparkMagic Kerneln funktionieren Parameter, die Sie an Ihren EMR Amazon-Verbindungsbefehl übergeben, möglicherweise nicht wie erwartet, da Papermill Unterschiede darin hat, wie Papermill Parameter weitergibt und wie Parameter SparkMagic empfängt. Die Behelfslösung zur Behebung dieser Einschränkung besteht darin, Parameter als Umgebungsvariablen zu übergeben. Weitere Informationen zum Problem und zur Problemumgehung finden Sie unter Übergeben Sie Parameter an Ihren EMR Verbindungsbefehl.

  • Weitergabe von Benutzeranmeldedaten an Kerberos- LDAP oder HTTP Basic Auth-authentifizierte Amazon-Cluster. EMR Im interaktiven Modus fragt Studio in einem Popup-Formular nach Anmeldeinformationen, in das Sie Ihre Anmeldeinformationen eingeben können. In Ihrem nicht-interaktiven Notebook müssen Sie sie durch das AWS Secrets Manager durchreichen. Weitere Informationen zur Verwendung von Jobs AWS Secrets Manager in Ihrem geplanten Notizbuch finden Sie unter. Übergeben Sie Benutzeranmeldedaten an Ihren Kerberos- oder HTTP Basic Auth-authentifizierten Amazon-Cluster LDAP EMR

Übergeben Sie Parameter an Ihren EMR Verbindungsbefehl

Wenn Sie Images mit dem SparkMagic PySpark und Spark-Kernel verwenden und Ihren EMR Verbindungsbefehl parametrisieren möchten, geben Sie Ihre Parameter im Feld Umgebungsvariablen statt im Feld Parameter im Formular Job erstellen (im Dropdownmenü Zusätzliche Optionen) an. Stellen Sie sicher, dass Ihr EMR Verbindungsbefehl im Jupyter-Notebook diese Parameter als Umgebungsvariablen übergibt. Nehmen wir zum Beispiel an, Sie übergeben cluster-id als Umgebungsvariable, wenn Sie Ihren Auftrag erstellen. Ihr EMR Verbindungsbefehl sollte wie folgt aussehen:

%%local import os
%sm_analytics emr connect —cluster-id {os.getenv('cluster_id')} --auth-type None

Sie benötigen diese Problemumgehung, um die Anforderungen von SparkMagic und Papermill zu erfüllen. Für den Hintergrundkontext erwartet der SparkMagic Kernel, dass der %%local magische Befehl allen von Ihnen definierten lokalen Variablen beiliegt. Papermill gibt den %%local magischen Befehl jedoch nicht zusammen mit Ihren Überschreibungen weiter. Um diese Papermill-Einschränkung zu umgehen, müssen Sie Ihre Parameter als Umgebungsvariablen im Feld Umgebungsvariablen angeben.

Übergeben Sie Benutzeranmeldedaten an Ihren Kerberos- oder HTTP Basic Auth-authentifizierten Amazon-Cluster LDAP EMR

Um eine sichere Verbindung zu einem EMR Amazon-Cluster herzustellen, LDAP der die Kerberos- oder HTTP Basic Auth-Authentifizierung verwendet, verwenden Sie den Befehl AWS Secrets Manager to pass user credentials to your connection. Informationen zum Erstellen eines Geheimnisses im Secrets Manager finden Sie unter Erstellen eines AWS Secrets Manager -Geheimnisses. Ihr Geheimnis muss Ihren Benutzernamen und Ihr Passwort enthalten. Sie übergeben das Geheimnis mit dem --secrets Argument, wie im folgenden Beispiel dargestellt:

%sm_analytics emr connect --cluster-id j_abcde12345 --auth Kerberos --secret aws_secret_id_123

Ihr Administrator kann mithilfe einer attribute-based-access-control (ABAC) -Methode, die den Zugriff anhand spezieller Tags zuweist, eine flexible Zugriffsrichtlinie einrichten. Sie können flexiblen Zugriff einrichten, um ein einzelnes Geheimnis für alle Benutzer im Konto oder ein Geheimnis für jeden Benutzer zu erstellen. Die folgenden Codebeispiele veranschaulichen diese Szenarien:

Erstellen Sie ein einzelnes Geheimnis für alle Benutzer im Konto

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS" : "arn:aws:iam::AWS_ACCOUNT_ID:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"}, "Action" : "secretsmanager:GetSecretValue", "Resource" : [ "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes789-7g8h9i" ] } ] }

Erstellen Sie für jeden Benutzer ein anderes Geheimnis

Mit dem PrincipleTag Tag können Sie für jeden Benutzer ein anderes Geheimnis erstellen, wie im folgenden Beispiel gezeigt:

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS" : "arn:aws:iam::AWS_ACCOUNT_ID:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"}, "Condition" : { "StringEquals" : { "aws:ResourceTag/user-identity": "${aws:PrincipalTag/user-identity}" } }, "Action" : "secretsmanager:GetSecretValue", "Resource" : [ "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes789-7g8h9i" ] } ] }