View a markdown version of this page

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

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 Studio-Notebook aus eine Connect zu einem Amazon-EMR-Cluster her

Wenn Sie von Ihrem Jupyter Notebook in Studio aus eine Verbindung zu einem Amazon EMR-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 Amazon EMR-Verbindungsbefehl. In SparkMagic Kerneln funktionieren die Parameter, die Sie an Ihren Amazon EMR-Verbindungsbefehl übergeben, aufgrund der Unterschiede in der Art und Weise, wie Papermill Parameter übergibt und wie Parameter empfangen werden, möglicherweise nicht wie SparkMagic erwartet. 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 Benutzeranmeldeinformationen an Kerberos-, LDAP- oder HTTP Basic Auth-authenticated Amazon EMR-Cluster. 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 AWS Secrets Manager in Ihren geplanten Notizbuchaufträgen finden Sie unter. Übergeben Sie Benutzeranmeldeinformationen an Ihren Kerberos-, LDAP- oder HTTP Basic Auth-authenticated Amazon EMR-Cluster

Übergeben Sie Parameter an Ihren EMR-Verbindungsbefehl

Wenn Sie Images mit den Kerneln SparkMagic PySpark und Spark-Kerneln verwenden und Ihren EMR-Verbindungsbefehl parametrisieren möchten, geben Sie Ihre Parameter im Feld Umgebungsvariablen an und nicht im Feld Parameter im Formular „Job erstellen“ (im Dropdownmenü „Zusätzliche Optionen“). 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 und Papermill zu erfüllen. SparkMagic Für den Hintergrundkontext erwartet der SparkMagic Kernel, dass der %%local magische Befehl alle lokalen Variablen begleitet, die Sie definieren. 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 Benutzeranmeldeinformationen an Ihren Kerberos-, LDAP- oder HTTP Basic Auth-authenticated Amazon EMR-Cluster

Um eine sichere Verbindung zu einem Amazon EMR-Cluster herzustellen, der die Kerberos-, LDAP- oder HTTP Basic Auth-Authentifizierung verwendet, verwenden Sie den, um Benutzeranmeldeinformationen an Ihren Verbindungsbefehl zu übergeben. AWS Secrets Manager Informationen zum Erstellen eines Geheimnisses im Secrets Manager finden Sie unter Erstellen eines AWS Secrets Manager -Geheimnisses. Das Secret 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 ABAC-Methode (attribute-based-access-control) eine flexible Zugriffsrichtlinie einrichten, bei der der Zugriff auf speziellen Tags zugewiesen wird. 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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345" }, "Action": "secretsmanager:GetSecretValue", "Resource": [ "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:111122223333: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:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333: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:111122223333:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes789-7g8h9i" ] } ] }