Vertrauliche Konfigurationsdaten in AWS Secrets Manager speichern - Amazon EMR

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.

Vertrauliche Konfigurationsdaten in AWS Secrets Manager speichern

Amazon EMR beschreibt und listet API-Vorgänge auf, die benutzerdefinierte Konfigurationsdaten (wie DescribeCluster und ListInstanceGroups) ausgeben, und zwar in Klartext. Amazon EMR ist integriert, AWS Secrets Manager sodass Sie Ihre Daten in Secrets Manager speichern und den geheimen ARN in Ihren Konfigurationen verwenden können. Auf diese Weise geben Sie keine vertraulichen Konfigurationsdaten in Amazon EMR im Klartext weiter und stellen sie externen APIs zur Verfügung. Wenn Sie angeben, dass ein Schlüssel-Wert-Paar einen ARN für ein in Secrets Manager gespeichertes Geheimnis enthält, ruft Amazon EMR dieses Geheimnis ab, wenn es Konfigurationsdaten an den Cluster sendet. Amazon EMR sendet die Anmerkung nicht, wenn externe APIs zur Anzeige der Konfiguration verwendet werden.

Ein Secret erstellen

Um ein Geheimnis zu erstellen, befolgen Sie die Schritte unter AWS Secrets Manager -Geheimnis erstellen im AWS Secrets Manager -Benutzerhandbuch. In Schritt 3 müssen Sie das Klartext-Feld auswählen, um Ihren sensiblen Wert einzugeben.

Beachten Sie, dass Secrets Manager zwar zulässt, dass ein Geheimnis bis zu 65 536 Byte enthält, Amazon EMR jedoch die kombinierte Länge des Eigenschaftsschlüssels (ohne Anmerkung) und des abgerufenen geheimen Werts auf 1 024 Zeichen begrenzt.

Gewähren Sie Amazon EMR Zugriff, um das Geheimnis abzurufen

Amazon EMR verwendet eine IAM-Servicerolle, um Cluster für Sie bereitzustellen und zu verwalten. Die Servicerolle für Amazon-EMR-Rolle definiert die zulässigen Aktionen für bei der Bereitstellung von Ressourcen und der Ausführung von Service-Level-Aufgaben, die nicht im Kontext einer EC2-Instance innerhalb eines Clusters ausgeführt werden. Weitere Informationen zu Servicerollen finden Sie unter Servicerolle für Amazon EMR (EMR-Rolle) und IAM-Rollen anpassen.

Damit Amazon EMR den geheimen Wert aus Secrets Manager abrufen kann, fügen Sie Ihrer Amazon-EMR-Rolle die folgende Richtlinienerklärung hinzu, wenn Sie Ihren Cluster starten.

{ "Sid":"AllowSecretsRetrieval", "Effect":"Allow", "Action":"secretsmanager:GetSecretValue", "Resource":[ "arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" ] }

Wenn Sie den geheimen Schlüssel mit einem vom Kunden verwalteten Schlüssel erstellen AWS KMS key, müssen Sie der Amazon EMR-Rolle auch eine kms:Decrypt Berechtigung für den von Ihnen verwendeten Schlüssel hinzufügen. Weitere Informationen finden Sie unter Authentifizierung und Zugriffskontrolle für AWS Secrets Manager im AWS Secrets Manager -Benutzerhandbuch.

Das Secret in einer Konfigurationsklassifizierung verwenden

Sie können die EMR.secret@-Anmerkung zu jeder Konfigurationseigenschaft hinzufügen, um anzugeben, dass ihr Schlüssel-Wert-Paar einen ARN für ein in Secrets Manager gespeichertes Secret enthält.

Das folgende Beispiel veranschaulicht, wie Sie eine geheime ARN in einer Konfigurationsklassifizierung angeben:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "EMR.secret@presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

Wenn Sie Ihren Cluster erstellen und Ihre kommentierte Konfiguration einreichen, validiert Amazon EMR die Konfigurationseigenschaften. Wenn Ihre Konfiguration gültig ist, entfernt Amazon EMR die Anmerkung aus der Konfiguration und ruft das Secret von Secrets Manager ab, um die eigentliche Konfiguration zu erstellen, bevor sie auf den Cluster angewendet wird:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"<my-secret-key-retrieved-from-Secrets-Manager>" } }

Wenn Sie eine Aktion wie DescribeCluster aufrufen, gibt Amazon EMR die aktuelle Anwendungskonfiguration auf dem Cluster zurück. Wenn eine Anwendungskonfigurationseigenschaft so gekennzeichnet ist, dass sie einen geheimen ARN enthält, enthält die vom DescribeCluster-Aufruf zurückgegebene Anwendungskonfiguration den ARN und nicht den geheimen Wert. Dadurch wird sichergestellt, dass der geheime Wert nur auf dem Cluster sichtbar ist:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

Den Secret-Wert aktualisieren

Amazon EMR ruft den geheimen Wert aus einer mit Anmerkungen versehenen Konfiguration ab, wenn die angehängte Instance-Gruppe gestartet, neu konfiguriert oder ihre Größe geändert wird. Sie können Secrets Manager verwenden, um den Wert eines Secrets zu ändern, das in der Konfiguration eines laufenden Clusters verwendet wird. Wenn Sie dies tun, können Sie eine Rekonfigurationsanfrage an jede Instance-Gruppe senden, die den aktualisierten Wert erhalten soll. Weitere Informationen zur Neukonfiguration einer Instance-Gruppe und zu den Dingen, die Sie dabei beachten sollten, finden Sie unter Eine Instance-Gruppe in einem laufenden Cluster neu konfigurieren.