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.
Erstellen Sie eine Sicherheitskonfiguration mit der Amazon EMR-Konsole oder mit dem AWS CLI
Dieses Thema behandelt allgemeine Verfahren zum Erstellen einer Sicherheitskonfiguration mit der Amazon EMR-Konsole und der AWS CLI, gefolgt von einer Referenz zu den Parametern, die Verschlüsselung, Authentifizierung und IAM-Rollen für EMRFS umfassen. Weitere Informationen zu diesen Funktionen finden Sie in den folgenden Themen:
So erstellen Sie eine Sicherheitskonfiguration mithilfe der Konsole
Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/emr
. -
Wählen Sie im Navigationsbereich Security Configurations (Sicherheitskonfigurationen), Create security configuration (Sicherheitskonfiguration erstellen) aus.
-
Geben Sie in Name (Name) einen Namen für die Sicherheitskonfiguration ein.
-
Wählen Sie Optionen für Verschlüsselung, und Authentifizierung aus wie in den folgenden Abschnitten beschrieben. Wählen Sie anschließend Erstellen aus.
Um eine Sicherheitskonfiguration mit dem zu erstellen AWS CLI
-
Verwenden Sie den Befehl
create-security-configuration
wie im folgenden Beispiel gezeigt.-
Geben Sie für
SecConfigName
den Namen der Sicherheitskonfiguration an. Dies ist der Name, den Sie angeben, wenn Sie einen Cluster erstellen, der diese Sicherheitskonfiguration verwendet. -
Geben Sie in
eine Inline-JSON-Struktur oder den Pfad zu einer lokalen JSON-Datei an, z. B.SecConfigDef
. Die JSON-Parameter definieren Optionen für Verschlüsselung, IAM Rollen für EMRFS-Zugriff auf Amazon S3 und Authentifizierung, wie in den folgenden Abschnitten beschrieben.file://MySecConfig.json
aws emr create-security-configuration --name "
SecConfigName
" --security-configurationSecConfigDef
-
Datenverschlüsselung konfigurieren
Bevor Sie die Verschlüsselung in einer Sicherheitskonfiguration konfigurieren, erstellen Sie die Schlüssel und Zertifikate, die für die Verschlüsselung verwendet werden. Weitere Informationen erhalten Sie unter Bereitstellung von Schlüsseln für die Verschlüsselung von Daten im Ruhezustand und Bereitstellen von Zertifikaten für die Verschlüsselung von Daten während der Übertragung mit der Amazon-EMR-Verschlüsselung.
Beim Erstellen einer Sicherheits-Konfiguration legen Sie zwei Verschlüsselungsoptionen fest: Verschlüsselung von Daten während der Übertragung und im Ruhezustand. Die Optionen für die Datenverschlüsselung im Ruhezustand umfassen sowohl die Amazon S3-Verschlüsselung mit EMRFS und die lokale Laufwerksverschlüsselung. Die Optionen für die Verschlüsselung von Daten während der Übertragung aktivieren die Open-Source-Verschlüsselungsfunktionen für bestimmte Anwendungen, die Transport Layer Security (TLS) unterstützen. Die Optionen für die Verschlüsselung während der Übertragung und im Ruhezustand können gemeinsam oder einzeln aktiviert werden. Weitere Informationen finden Sie unter Verschlüsseln Sie Daten im Ruhezustand und bei der Übertragung mit Amazon EMR.
Anmerkung
Bei der Nutzung AWS KMS fallen Gebühren für die Speicherung und Verwendung von Verschlüsselungsschlüsseln an. Weitere Informationen finden Sie unter AWS KMS -Preisgestaltung
Angeben von Verschlüsselungsoptionen mit der Konsole
Wählen Sie Optionen unter Encryption (Verschlüsselung) entsprechend den folgenden Anleitungen aus.
-
Wählen Sie Optionen unter At rest encryption (Verschlüsselung im Ruhezustand) aus, um innerhalb des Dateisystems gespeicherte Daten zu verschlüsseln.
Sie können Daten in Amazon S3, auf lokalen Datenträgern oder in beiden Speichern verschlüsseln.
-
Unter S3-Datenverschlüsselung, für die Option Verschlüsselungsmodus wählen Sie einen Wert aus, der festlegt, wie Amazon EMR; die Amazon-S3-Daten mit EMRFS verschlüsselt.
Der nächste Schritt hängt von dem von Ihnen gewählten Verschlüsselungsmodus ab:
-
SSE-S3 (SSE-S3)
Angaben zur serverseitigen Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln. Sie müssen nicht mehr tun, da Amazon S3 die Handhabung der Schlüssel für Sie übernimmt.
-
SSE-KMS (SSE-KMS) oder CSE-KMS (CSE-KMS)
Gibt serverseitige Verschlüsselung mit AWS KMS verwalteten Schlüsseln (SSE-KMS) oder clientseitige Verschlüsselung mit AWS KMS verwalteten Schlüsseln (CSE-KMS) an. Wählen Sie für AWS KMS key einen Schlüssel aus. Der Schlüssel muss sich in derselben Region befinden wie Ihr EMR-Cluster. Schlüsselanforderungen finden Sie unter AWS KMS keys Für die Verschlüsselung verwenden.
-
CSE-Custom (CSE-Custom)
Gibt clientseitige Verschlüsselung mit einem benutzerdefinierten clientseitigen Masterschlüssel (CSE-Custom) an. Geben Sie für das S3-Objekt den Speicherort Ihrer benutzerdefinierten Schlüsselanbieter-JAR-Datei in Amazon S3 oder den Amazon-S3-ARN ein. Geben Sie dann für Key Provider Class den vollständigen Klassennamen einer Klasse ein, die in Ihrer Anwendung deklariert ist, die die Schnittstelle implementiert. EncryptionMaterialsProvider
-
-
Wählen Sie unter Local disk encryption (Lokale Laufwerksverschlüsselung) einen Wert für Key provider type (Schlüsselanbietertyp) aus.
-
AWS KMS key
Wählen Sie diese Option, um eine AWS KMS key anzugeben. Wählen Sie für AWS KMS key einen Schlüssel aus. Der Schlüssel muss sich in derselben Region befinden wie Ihr EMR-Cluster. Weitere Informationen zu den Anforderungen für Schlüssel finden Sie unter AWS KMS keys Für die Verschlüsselung verwenden.
EBS Encryption (EBS-Verschlüsselung)
Wenn Sie dies AWS KMS als Ihren Schlüsselanbieter angeben, können Sie die EBS-Verschlüsselung aktivieren, um das EBS-Stammgerät und die Speichervolumes zu verschlüsseln. Um diese Option zu aktivieren, müssen Sie der Amazon-EMR-Servicerolle
EMR_DefaultRole
Berechtigungen zur Verwendung des von Ihnen angegebenen AWS KMS key erteilen. Weitere Informationen zu den Anforderungen für Schlüssel finden Sie unter Aktivieren der EBS-Verschlüsselung durch Bereitstellung zusätzlicher Berechtigungen für KMS-Schlüssel. -
Custom (Benutzerdefiniert)
Wählen Sie diese Option aus, um einen benutzerdefinierten Schlüsselanbieter festzulegen. Geben Sie für das S3-Objekt den Speicherort Ihrer benutzerdefinierten Schlüsselanbieter-JAR-Datei in Amazon S3 oder den Amazon-S3-ARN ein. Geben Sie für Key Provider Class den vollständigen Klassennamen einer Klasse ein, die in Ihrer Anwendung deklariert ist, die die Schnittstelle implementiert. EncryptionMaterialsProvider Der Klassenname, den Sie hier angeben, muss sich von dem Klassennamen für CSE-Custom unterscheiden.
-
-
Wählen Sie In-transit encryption (Verschlüsselung bei Übertragung) aus, um die Open-Source-TLS-Verschlüsselungsfunktionen für Daten während der Übertragung zu aktivieren. Wählen Sie anhand der folgenden Anleitungen einen Certificate provider type (Zertifikatanbietertyp) aus:
-
PEM (PEM)
Wählen Sie diese Option zur Verwendung von PEM-Dateien aus, die Sie in einer ZIP-Datei bereitstellen. Zwei Artefakte sind innerhalb der ZIP-Datei erforderlich: privateKey.pem und certificateChain.pem. Eine dritte Datei, trustedCertificates.pem, ist optional. Details dazu finden Sie unter Bereitstellen von Zertifikaten für die Verschlüsselung von Daten während der Übertragung mit der Amazon-EMR-Verschlüsselung. Geben Sie in S3-Objekt den Speicherort in Amazon S3 oder den Amazon-S3-ARN des ZIP-Datei-Felds an.
-
Custom (Benutzerdefiniert)
Wählen Sie diese Option aus, um einen benutzerdefinierten Zertifikatanbieter anzugeben. Geben Sie anschließend in S3-Objekt den Speicherort in Amazon S3 oder den Amazon-S3-ARN der JAR-Datei Ihres benutzerdefinierten Zertifikatanbieters ein. Geben Sie für Key Provider Class den vollständigen Klassennamen einer Klasse ein, die in Ihrer Anwendung deklariert ist und die TLSArtifacts Provider-Schnittstelle implementiert.
-
Angeben von Verschlüsselungsoptionen mit dem AWS CLI
Die folgenden Abschnitte enthalten Beispielszenarien mit ordnungsgemäß formatiertem --security-configuration JSON für verschiedene Konfigurationen und Schlüsselanbieter, gefolgt von einer Referenz für JSON-Parameter und geeignete Werte.
Beispiel der Datenverschlüsselungsoptionen während der Übertragung
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
-
Die Verschlüsselung von Daten während der Übertragung ist aktiviert und die Verschlüsselung von Daten im Ruhezustand ist deaktiviert.
-
Eine ZIP-Datei mit Zertifikaten in Amazon S3 wird als Schlüsselanbieter verwendet (die Zertifikatanforderungen finden Sie unter Bereitstellen von Zertifikaten für die Verschlüsselung von Daten während der Übertragung mit der Amazon-EMR-Verschlüsselung).
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } } } }'
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
-
Die Verschlüsselung von Daten während der Übertragung ist aktiviert und die Verschlüsselung von Daten im Ruhezustand ist deaktiviert.
-
Ein benutzerdefinierter Schlüsselanbieter wird verwendet (die Zertifikatanforderungen finden Sie unter Bereitstellen von Zertifikaten für die Verschlüsselung von Daten während der Übertragung mit der Amazon-EMR-Verschlüsselung).
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" } } } }'
Beispiel der Datenverschlüsselungsoptionen im Ruhezustand
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
-
Die Verschlüsselung von Daten während der Übertragung ist deaktiviert und die Verschlüsselung von Daten im Ruhezustand ist aktiviert.
-
Für die Amazon-S3-Verschlüsselung wird SSE-S3 verwendet.
-
Die lokale Festplattenverschlüsselung wird AWS KMS als Schlüsselanbieter verwendet.
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
-
Die Datenverschlüsselung während der Übertragung ist aktiviert und verweist unter Verwendung der ARN auf eine ZIP-Datei mit PEM-Zertifikaten in Amazon S3.
-
Für die KMS-Verschlüsselung wird SSE-Amazon S3 verwendet.
-
Die lokale Festplattenverschlüsselung wird AWS KMS als Schlüsselanbieter verwendet.
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "arn:aws:s3:::MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
-
Die Datenverschlüsselung während der Übertragung ist aktiviert und verweist auf eine ZIP-Datei mit PEM-Zertifikaten in Amazon S3.
-
Für die Amazon-S3-Verschlüsselung wird CSE-KMS verwendet.
-
Die lokale Laufwerksverschlüsselung verwendet einen benutzerdefinierten Schlüsselanbieter, auf den anhand des ARN verwiesen wird.
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "arn:aws:s3:::artifacts/MyKeyProvider.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } } }'
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
-
Die Verschlüsselung von Daten während der Übertragung anhand eines benutzerdefinierten Schlüsselanbieters ist aktiviert.
-
CSE-Custom wird für Amazon-S3-Daten verwendet.
-
Die lokale Laufwerksverschlüsselung verwendet einen benutzerdefinierten Schlüsselanbieter.
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": "true", "EnableAtRestEncryption": "true", "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "CSE-Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } } }'
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
-
Die Verschlüsselung von Daten während der Übertragung ist deaktiviert und die Verschlüsselung von Daten im Ruhezustand ist aktiviert.
-
Die Amazon S3-Verschlüsselung ist mit SSE-KMS aktiviert.
-
Es werden mehrere AWS KMS Schlüssel verwendet, einer für jeden S3-Bucket, und Verschlüsselungsausnahmen werden auf diese einzelnen S3-Buckets angewendet.
-
Die lokale Laufwerksverschlüsselung ist deaktiviert.
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "Overrides": [ { "BucketName": "amzn-s3-demo-bucket1", "EncryptionMode": "SSE-S3" }, { "BucketName": "amzn-s3-demo-bucket2", "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, { "BucketName": "amzn-s3-demo-bucket3", "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } ] } }, "EnableInTransitEncryption": false, "EnableAtRestEncryption": true } }'
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
-
Die Verschlüsselung von Daten während der Übertragung ist deaktiviert und die Verschlüsselung von Daten im Ruhezustand ist aktiviert.
-
Die Amazon S3-Verschlüsselung wird mit SSE-S3 aktiviert und die lokale Laufwerksverschlüsselung ist deaktiviert.
aws emr create-security-configuration --name "MyS3EncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" } } } }'
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
-
Die Verschlüsselung von Daten während der Übertragung ist deaktiviert und die Verschlüsselung von Daten im Ruhezustand ist aktiviert.
-
Die lokale Festplattenverschlüsselung ist AWS KMS als Schlüsselanbieter aktiviert und die Amazon S3 S3-Verschlüsselung ist deaktiviert.
aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
-
Die Verschlüsselung von Daten während der Übertragung ist deaktiviert und die Verschlüsselung von Daten im Ruhezustand ist aktiviert.
-
Die lokale Festplattenverschlüsselung ist AWS KMS als Schlüsselanbieter aktiviert und die Amazon S3 S3-Verschlüsselung ist deaktiviert.
-
Die EBS-Verschlüsselung ist aktiviert.
aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "LocalDiskEncryptionConfiguration": { "EnableEbsEncryption": true, "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
SSE-EMR-WAL wird für die EMR-WAL-Verschlüsselung verwendet
aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'
EnableInTransitEncryption
und könnte EnableAtRestEncryption
immer noch wahr sein, wenn Sie die entsprechende Verschlüsselung aktivieren möchten.
Das nachstehende Beispiel veranschaulicht das folgende Szenario:
SSE-KMS-WAL wird für die EMR-WAL-Verschlüsselung verwendet
Serverseitige Verschlüsselung wird AWS Key Management Service als Schlüsselanbieter verwendet
aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ "AwsKmsKey":"arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'
EnableInTransitEncryption
und könnte EnableAtRestEncryption
immer noch wahr sein, wenn Sie die entsprechende Verschlüsselung aktivieren möchten.
JSON-Referenz für Verschlüsselungseinstellungen
In der folgenden Tabelle finden Sie die JSON-Parameter für die Verschlüsselungseinstellungen sowie eine Beschreibung der zulässigen Werte für die einzelnen Parameter.
Parameter | Beschreibung |
---|---|
"EnableInTransitEncryption" :
true | false |
Geben Sie true an, um die Verschlüsselung der Daten während der Übertragung zu aktivieren, und false , um sie zu deaktivieren. Wenn der Parameter nicht definiert wird, gilt false und die Verschlüsselung von Daten während der Übertragung ist deaktiviert. |
"EnableAtRestEncryption": true |
false |
Geben Sie true an, um die Verschlüsselung der Daten im Ruhezustand zu aktivieren, und false , um sie zu deaktivieren. Wenn der Parameter nicht definiert wird, gilt false und die Verschlüsselung von Daten im Ruhezustand ist deaktiviert. |
Parameter für die Verschlüsselung während der Übertragung | |
"InTransitEncryptionConfiguration" : |
Gibt eine Sammlung von Werten für die Verschlüsselung von Daten während der Übertragung an, wenn EnableInTransitEncryption true ist. |
"CertificateProviderType": "PEM" |
"Custom" |
Gibt an, ob PEM -Zertifikate verwendet werden sollen, auf die über eine ZIP-Datei oder über einen Custom Zertifikatsanbieter verwiesen wird. Wenn angegeben, S3Object muss PEM es sich um einen Verweis auf den Speicherort einer ZIP-Datei mit den Zertifikaten in Amazon S3 handeln. Wenn Custom angegeben ist, S3Object muss es sich um einen Verweis auf den Speicherort einer JAR-Datei in Amazon S3 handeln, gefolgt von einem CertificateProviderClass Eintrag. |
"S3Object" :
" |
" |
Stellt den Speicherort in Amazon S3 für eine ZIP-Datei bereit, wenn PEM angegeben, oder für eine JAR-Datei, wenn Custom angegeben. Beim Format kann es sich um einen Pfad (beispielsweise s3://MyConfig/artifacts/CertFiles.zip ) oder einen ARN (beispielsweise arn:aws:s3:::Code/MyCertProvider.jar) handeln. Wenn eine ZIP-Datei ausgewählt wurde, muss sie Dateien enthalten, deren Namen privateKey.pem und certificateChain.pem sind. Eine Datei mit dem Namen trustedCertificates.pem ist optional. |
"CertificateProviderClass" :
" |
Nur erforderlich, wenn für angegeben Custom istCertificateProviderType . gibt einen vollständigen Klassennamen an, der in der JAR-Datei deklariert ist, die die TLSArtifacts Provider-Schnittstelle implementiert. Beispiel, com.mycompany.MyCertProvider . |
Parameter für die Verschlüsselung im Ruhezustand | |
"AtRestEncryptionConfiguration" : |
Gibt eine Sammlung von Werten für die Verschlüsselung im Ruhezustand an, wenn dies der EnableAtRestEncryption Fall isttrue , einschließlich Amazon S3 S3-Verschlüsselung und Verschlüsselung lokaler Festplatten. |
Amazon S3 S3-Verschlüsselungsparameter | |
"S3EncryptionConfiguration" : |
Gibt eine Sammlung von Werten an, die für die Amazon S3 S3-Verschlüsselung mit dem Amazon EMR File System (EMRFS) verwendet werden. |
"EncryptionMode" : "SSE-S3" |
"SSE-KMS" | "CSE-KMS" |
"CSE-Custom" |
Gibt den Typ der zu verwendenden Amazon S3 S3-Verschlüsselung an. Wenn SSE-S3 angegeben, sind keine weiteren Amazon S3 S3-Verschlüsselungswerte erforderlich. Wenn entweder SSE-KMS oder angegeben CSE-KMS ist, muss ein AWS KMS key ARN als AwsKmsKey Wert angegeben werden. Wenn CSE-Custom ausgewählt wurde, müssen S3Object - und EncryptionKeyProviderClass -Werte angegeben werden. |
"AwsKmsKey" :
" |
Nur erforderlich, wenn SSE-KMS oder CSE-KMS für EncryptionMode angegeben wurden. muss ein vollständig angegebener ARN für einen Schlüssel sein (z. B. arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 ). |
"S3Object" :
" |
Nur erforderlich, wenn für angegeben CSE-Custom istCertificateProviderType . gibt den Speicherort in Amazon S3 für eine JAR-Datei an. Beim Format kann es sich um einen Pfad (beispielsweise s3://MyConfig/artifacts/MyKeyProvider.jar ) oder einen ARN (beispielsweise arn:aws:s3:::Code/MyKeyProvider.jar) handeln. |
"EncryptionKeyProviderClass" :
" |
Nur erforderlich, wenn für angegeben CSE-Custom istEncryptionMode . gibt den vollständigen Klassennamen einer Klasse an, die in der Anwendung deklariert ist, die die EncryptionMaterialsProvider Schnittstelle implementiert; zum Beispiel . |
Parameter für Verschlüsselung auf dem lokalen Datenträger | |
"LocalDiskEncryptionConfiguration" |
Gibt die Schlüsselanbieter und die entsprechenden Werte an, die für die lokale Laufwerksverschlüsselung verwendet werden müssen. |
"EnableEbsEncryption": |
Geben Sie true an, ob die EBS-Verschlüsselung aktiviert werden soll. Die EBS-Verschlüsselung verschlüsselt das EBS-Root-Geräte-Volume und die angeschlossenen Speichervolumes. Um die EBS-Verschlüsselung zu verwenden, müssen Sie als Ihr angeben. AwsKms EncryptionKeyProviderType |
"EncryptionKeyProviderType": "AwsKms" |
"Custom" |
Gibt den Schlüsselanbieter an. Wenn AwsKms angegeben, muss ein KMS-Schlüssel-ARN als AwsKmsKey Wert angegeben werden. Wenn Custom ausgewählt wurde, müssen S3Object - und EncryptionKeyProviderClass -Werte angegeben werden. |
"AwsKmsKey :
" |
Nur erforderlich, wenn für angegeben AwsKms istType . muss ein vollständig spezifizierter ARN für einen Schlüssel sein (z. B.arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123 ). |
"S3Object" :
" |
Nur erforderlich, wenn für angegeben CSE-Custom istCertificateProviderType . gibt den Speicherort in Amazon S3 für eine JAR-Datei an. Beim Format kann es sich um einen Pfad (beispielsweise s3://MyConfig/artifacts/MyKeyProvider.jar ) oder einen ARN (beispielsweise arn:aws:s3:::Code/MyKeyProvider.jar) handeln. |
|
Nur erforderlich, wenn für angegeben Custom istType . gibt den vollständigen Klassennamen einer Klasse an, die in der Anwendung deklariert ist, die die EncryptionMaterialsProvider Schnittstelle implementiert; zum Beispiel . |
EMR WAL-Verschlüsselungsparameter | |
"EMRWALEncryptionConfiguration"
|
Gibt den Wert für die EMR-WAL-Verschlüsselung an. |
"AwsKmsKey"
|
Gibt die CMK-Schlüssel-ID Arn an. |
Konfiguration der Kerberos-Authentifizierung
Eine Sicherheitskonfiguration mit Kerberos-Einstellungen kann nur von einem Cluster verwendet werden, das mit Kerberos-Attributen erstellt wurde, andernfalls tritt ein Fehler auf. Weitere Informationen finden Sie unter Verwenden Sie Kerberos für die Authentifizierung mit Amazon EMR. Kerberos ist nur in Amazon-EMR-Version 5.10.0 und höher verfügbar.
Kerberos-Einstellungen unter Verwendung der Konsole angeben
Wählen Sie anhand der folgenden Anleitungen Optionen in Kerberos authentication (Kerberos-Authentifizierung) aus.
Parameter | Beschreibung | ||
---|---|---|---|
Kerberos |
Gibt an, dass Kerberos für Cluster aktiviert ist, die diese Sicherheitskonfiguration verwenden. Wenn ein Cluster diese Sicherheitskonfiguration verwendet, müssen für den Cluster auch Kerberos-Einstellungen angegeben sein, andernfalls tritt ein Fehler auf. |
||
Anbieter |
Cluster-dediziertes KDC |
Gibt an, dass Amazon EMR einen KDC auf dem Primärknoten eines Clusters erstellt, der diese Sicherheitskonfiguration verwendet. Sie geben den Bereichsnamen und das KDC-Administratorkennwort an, wenn Sie den Cluster erstellen. Bei Bedarf können Sie von anderen Clustern aus auf diesen KDC verweisen. Erstellen Sie diese Cluster mit einer anderen Sicherheitskonfiguration, geben Sie ein externes KDC an und verwenden Sie den Bereichsnamen und das KDC-Administratorkennwort, die Sie für das clusterspezifische KDC angeben. |
|
Externes KDC |
Nur in Amazon-EMR-Version 5.20.0 und höher verfügbar. Gibt an, dass Cluster, die diese Sicherheitskonfiguration verwenden, Kerberos-Prinzipale mithilfe eines KDC-Servers außerhalb des Clusters authentifizieren. Auf dem Cluster wird kein KDC erstellt. Sie geben den Bereichsnamen und das KDC-Administratorkennwort an, wenn Sie den Cluster erstellen. |
||
Gültigkeitsdauer des Tickets |
Optional. Gibt den Zeitraum an, für den ein vom KDC ausgestelltes Kerberos-Ticket auf Clustern gültig ist, die diese Sicherheitskonfiguration verwenden. Ticket-Gültigkeitsdauern werden aus Sicherheitsgründen beschränkt. Cluster-Anwendungen und Services verlängern Tickets automatisch, wenn sie ablaufen. Benutzer, die eine Verbindung mit dem Cluster über SSH mit Kerberos-Anmeldeinformationen einrichten, müssen |
||
Bereichsübergreifende Vertrauensstellung |
Gibt eine bereichsübergreifende Vertrauensstellung zwischen einem clusterspezifischen KDC auf Clustern, die diese Sicherheitskonfiguration verwenden, und einem KDC in einem anderen Kerberos-Bereich an. Prinzipale (in der Regel Benutzer) aus einem anderen Bereich werden gegenüber Clustern authentifiziert, die diese Konfiguration verwenden. Eine zusätzliche Konfiguration im anderen Kerberos-Bereich ist erforderlich. Weitere Informationen finden Sie unter Tutorial: Konfigurieren einer bereichsübergreifenden Vertrauensstellung mit einer Active-Directory-Domain. |
||
Realitätsübergreifende Vertrauenseigenschaften |
Bereich |
Gibt den Kerberos-Bereichsnamen des anderen Bereichs in der Vertrauensstellung an. Gemäß der Konvention sind Kerberos-Bereichsnamen mit dem Domainnamen identisch, jedoch ausschließlich in Großbuchstaben. |
|
Domain |
Gibt den Domain-Namen des anderen Bereichs in der Vertrauensstellung an. |
||
Admin-Server |
Gibt den Fully Qualified Domain Name (FQDN, vollständig qualifizierter Domainname) oder IP-Adresse des Admin-Servers im anderen Bereich der Vertrauensstellung an. Der Admin-Server und KDC-Server werden normalerweise auf demselben Rechner mit demselben FQDN ausgeführt, kommunizieren jedoch über andere Ports. Falls kein Port angegeben ist, wird Port 749 verwendet, da es dabei um den Kerberos-Standard handelt. Sie können optional einen Port angeben (beispielsweise |
||
KDC-Server |
Gibt den vollständig qualifizierten Domain-Namen (FQDN, Fully Qualified Domain Name) oder IP-Adresse des KDC-Servers im anderen Bereich der Vertrauensstellung an. Der KDC-Server und Admin-Server werden normalerweise auf demselben Rechner mit demselben FQDN ausgeführt, nutzen jedoch andere Ports. Falls kein Port angegeben ist, wird Port 88 verwendet, da es dabei um den Kerberos-Standard handelt. Sie können optional einen Port angeben (beispielsweise |
||
Externes KDC |
Gibt an, dass das externe KDC des Clusters vom Cluster verwendet wird. |
||
Eigenschaften des externen KDCs |
Admin-Server |
Gibt den vollqualifizierten Domainnamen oder die IP-Adresse des externen Admin-Servers an. Der Admin-Server und KDC-Server werden normalerweise auf demselben Rechner mit demselben FQDN ausgeführt, kommunizieren jedoch über andere Ports. Falls kein Port angegeben ist, wird Port 749 verwendet, da es dabei um den Kerberos-Standard handelt. Sie können optional einen Port angeben (beispielsweise |
|
KDC-Server |
Gibt den vollqualifizierten Domainnamen des externen KDC-Servers an. Der KDC-Server und Admin-Server werden normalerweise auf demselben Rechner mit demselben FQDN ausgeführt, nutzen jedoch andere Ports. Falls kein Port angegeben ist, wird Port 88 verwendet, da es dabei um den Kerberos-Standard handelt. Sie können optional einen Port angeben (beispielsweise |
||
Active-Directory-Integration |
Gibt an, dass die Kerberos-Prinzipalauthentifizierung in eine Microsoft-Active-Directory-Domain integriert ist. |
||
Active-Directory-Integrationseigenschaften |
Active-Directory-Bereich |
Gibt den Kerberos-Bereichsnamen der Active-Directory-Domain an. Gemäß der Konvention sind Kerberos-Bereichsnamen in der Regel identisch mit dem Domainnamen, jedoch ausschließlich in Großbuchstaben. |
|
Active-Directory-Domain |
Gibt den Active-Directory-Domainnamen an. |
||
Active-Directory-Server |
Gibt den vollqualifizierten Domainnamen des Microsoft Active Directory-Domain-Controllers an. |
Angeben von Kerberos-Einstellungen mit dem AWS CLI
Die folgende Referenztabelle zeigt JSON-Parameter für Kerberos-Einstellungen in einer Sicherheitskonfiguration. Beispielkonfigurationen finden Sie unter Beispiele für Konfigurationen.
Parameter | Beschreibung | |||||
---|---|---|---|---|---|---|
|
Erforderlich für Kerberos. Gibt an, dass eine Authentifizierungskonfiguration Teil dieser Sicherheitskonfiguration ist. |
|||||
|
|
Erforderlich für Kerberos. Gibt die Kerberos-Konfigurationseigenschaften an. |
||||
|
|
|
||||
"ClusterDedicatedKdcConfiguration": { |
Erforderlich, wenn |
|||||
|
Optional. Gibt den Zeitraum an, für den ein vom KDC ausgestelltes Kerberos-Ticket auf Clustern gültig ist, die diese Sicherheitskonfiguration verwenden. Ticket-Gültigkeitsdauern werden aus Sicherheitsgründen beschränkt. Cluster-Anwendungen und Services verlängern Tickets automatisch, wenn sie ablaufen. Benutzer, die eine Verbindung mit dem Cluster über SSH mit Kerberos-Anmeldeinformationen einrichten, müssen |
|||||
|
Gibt eine bereichsübergreifende Vertrauensstellung zwischen einem clusterspezifischen KDC auf Clustern, die diese Sicherheitskonfiguration verwenden, und einem KDC in einem anderen Kerberos-Bereich an. Prinzipale (in der Regel Benutzer) aus einem anderen Bereich werden gegenüber Clustern authentifiziert, die diese Konfiguration verwenden. Eine zusätzliche Konfiguration im anderen Kerberos-Bereich ist erforderlich. Weitere Informationen finden Sie unter Tutorial: Konfigurieren einer bereichsübergreifenden Vertrauensstellung mit einer Active-Directory-Domain. |
|||||
|
Gibt den Kerberos-Bereichsnamen des anderen Bereichs in der Vertrauensstellung an. Gemäß der Konvention sind Kerberos-Bereichsnamen mit dem Domainnamen identisch, jedoch ausschließlich in Großbuchstaben. |
|||||
|
Gibt den Domain-Namen des anderen Bereichs in der Vertrauensstellung an. |
|||||
|
Gibt den Fully Qualified Domain Name (FQDN, vollständig qualifizierter Domainname) oder IP-Adresse des Admin-Servers im anderen Bereich der Vertrauensstellung an. Der Admin-Server und KDC-Server werden normalerweise auf demselben Rechner mit demselben FQDN ausgeführt, kommunizieren jedoch über andere Ports. Falls kein Port angegeben ist, wird Port 749 verwendet, da es dabei um den Kerberos-Standard handelt. Sie können optional einen Port angeben (beispielsweise |
|||||
|
Gibt den vollständig qualifizierten Domain-Namen (FQDN, Fully Qualified Domain Name) oder IP-Adresse des KDC-Servers im anderen Bereich der Vertrauensstellung an. Der KDC-Server und Admin-Server werden normalerweise auf demselben Rechner mit demselben FQDN ausgeführt, nutzen jedoch andere Ports. Falls kein Port angegeben ist, wird Port 88 verwendet, da es dabei um den Kerberos-Standard handelt. Sie können optional einen Port angeben (beispielsweise |
|||||
|
||||||
|
||||||
"ExternalKdcConfiguration": { |
Erforderlich, wenn |
|||||
|
Optional. Gibt den Zeitraum an, für den ein vom KDC ausgestelltes Kerberos-Ticket auf Clustern gültig ist, die diese Sicherheitskonfiguration verwenden. Ticket-Gültigkeitsdauern werden aus Sicherheitsgründen beschränkt. Cluster-Anwendungen und Services verlängern Tickets automatisch, wenn sie ablaufen. Benutzer, die eine Verbindung mit dem Cluster über SSH mit Kerberos-Anmeldeinformationen einrichten, müssen |
|||||
|
Gibt an, dass auf einen einzelnen KDC-Server verwiesen wird. |
|||||
"AdminServer": " |
Gibt den vollqualifizierten Domainnamen oder die IP-Adresse des externen Admin-Servers an. Der Admin-Server und KDC-Server werden normalerweise auf demselben Rechner mit demselben FQDN ausgeführt, kommunizieren jedoch über andere Ports. Falls kein Port angegeben ist, wird Port 749 verwendet, da es dabei um den Kerberos-Standard handelt. Sie können optional einen Port angeben (beispielsweise |
|||||
"KdcServer": " |
Gibt den vollqualifizierten Domainnamen des externen KDC-Servers an. Der KDC-Server und Admin-Server werden normalerweise auf demselben Rechner mit demselben FQDN ausgeführt, nutzen jedoch andere Ports. Falls kein Port angegeben ist, wird Port 88 verwendet, da es dabei um den Kerberos-Standard handelt. Sie können optional einen Port angeben (beispielsweise |
|||||
|
Gibt an, dass die Kerberos-Prinzipalauthentifizierung in eine Microsoft-Active-Directory-Domain integriert ist. |
|||||
|
|
Gibt den Kerberos-Bereichsnamen der Active-Directory-Domain an. Gemäß der Konvention sind Kerberos-Bereichsnamen in der Regel identisch mit dem Domainnamen, jedoch ausschließlich in Großbuchstaben. |
||||
|
Gibt den Active-Directory-Domainnamen an. |
|||||
|
Gibt den vollqualifizierten Domainnamen des Microsoft Active Directory-Domain-Controllers an. |
|||||
|
||||||
|
||||||
|
||||||
|
Konfigurieren von IAM-Rollen für EMRFS-Anforderungen an Amazon S3
Mit IAM-Rollen für EMRFS können Sie unterschiedliche Berechtigungen für EMRFS-Daten in Amazon S3 bereitstellen. Sie erstellen Rollenzuordnungen, die eine IAM-Rolle spezifizieren, die für Berechtigungen verwendet wird, wenn eine Zugriffsanforderung eine von Ihnen angegebene Kennung enthält. Bei der ID kann es sich um einen Hadoop-Benutzer oder eine Hadoop-Rolle oder ein Amazon-S3-Präfix handeln.
Weitere Informationen finden Sie unter Konfigurieren von IAM-Rollen für EMRFS-Anforderungen an Amazon S3.
Angeben von IAM-Rollen für EMRFS mithilfe von AWS CLI
Im Folgenden finden Sie ein JSON-Beispiel für die Angabe benutzerdefinierter IAM-Rollen für EMRFS innerhalb einer Sicherheitskonfiguration. Es zeigt Rollenzuordnungen für die drei verschiedenen Identifier-Typen, gefolgt von einer Parameterreferenz.
{ "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "
arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1
", "IdentifierType": "User", "Identifiers": [ "user1
" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_demo_s3_buckets
", "IdentifierType": "Prefix", "Identifiers": [ "s3://amzn-s3-demo-bucket1/","s3://amzn-s3-demo-bucket2/
" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup
", "IdentifierType": "Group", "Identifiers": [ "AdminGroup
" ] }] } } }
Parameter | Beschreibung |
---|---|
|
Erforderlich |
|
Erforderlich Enthält Rollenzuordnungen. |
|
Erforderlich Enthält eine oder mehrere Rollenzuordnungsdefinitionen. Rollenzuordnungen werden in der Reihenfolge bewertet, in der sie von oben nach unten angezeigt werden. Wenn eine Rollenzuweisung für einen EMRFS-Datenaufruf in Amazon S3 als wahr bewertet wird, werden keine weiteren Rollenzuordnungen ausgewertet und EMRFS verwendet die angegebene IAM-Rolle für die Anfrage. Rollenzuordnungen bestehen aus den folgenden erforderlichen Parametern: |
|
Gibt den ARN-Bezeichner einer IAM-Rolle im Format |
|
Kann einer der folgenden sein:
|
|
Gibt einen oder mehrere Kennungen des entsprechenden Kennungstyps an. Trennen Sie mehrere Bezeichner durch Kommas ohne Leerzeichen. |
Metadaten-Serviceanfragen an EC2 Amazon-Instances konfigurieren
Instance-Metadaten sind Daten über eine Instance, mit denen Sie die ausgeführte Instance konfigurieren und verwalten können. Sie können mit einer der folgenden Methoden auf Instance-Metadaten aus einer laufenden Instance zugreifen:
-
Instance Metadata Service Version 1 (IMDSv1) — eine Anforderungs-/Antwortmethode
-
Instanz-Metadatendienst Version 2 (IMDSv2) — eine sitzungsorientierte Methode
Während Amazon IMDSv1 sowohl als auch EC2 unterstützt IMDSv2, unterstützt Amazon EMR IMDSv2 in Amazon EMR 5.23.1, 5.27.1, 5.32 oder höher und 6.2 oder höher. In diesen Versionen werden Amazon EMR-Komponenten IMDSv2 für alle IMDS-Aufrufe verwendet. Für IMDS-Aufrufe in Ihrem Anwendungscode können Sie sowohl als auch IMDSv1 verwenden oder das IMDS so konfigurieren IMDSv2, dass es nur IMDSv2 für zusätzliche Sicherheit verwendet wird. Wenn Sie angeben, dass dies verwendet werden IMDSv2 muss, funktioniert IMDSv1 es nicht mehr.
Weitere Informationen finden Sie unter Konfiguration des Instance-Metadaten-Service im EC2 Amazon-Benutzerhandbuch.
Anmerkung
In früheren Versionen von Amazon EMR 5.x oder 6.x IMDSv1 führt das Ausschalten zu einem Cluster-Startfehler, da Amazon EMR-Komponenten IMDSv1 für alle IMDS-Aufrufe verwendet werden. Stellen Sie beim Ausschalten sicher IMDSv1, dass jede benutzerdefinierte Software, die verwendet wird, auf aktualisiert ist. IMDSv1 IMDSv2
Spezifizieren Sie die Konfiguration des Instance Metadata Services mit dem AWS CLI
Im Folgenden finden Sie ein JSON-Beispiel für die Angabe des Amazon EC2 Instance Metadata Service (IMDS) innerhalb einer Sicherheitskonfiguration. Die Verwendung einer benutzerdefinierten Sicherheitskonfiguration ist optional.
{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer } }
Parameter | Beschreibung |
---|---|
|
Wenn Sie IMDS nicht innerhalb einer Sicherheitskonfiguration angeben und eine Amazon EMR-Version verwenden, die dies erfordert IMDSv1, verwendet Amazon EMR standardmäßig IMDSv1 als Mindestversion des Instance-Metadatendienstes. Wenn Sie Ihre eigene Konfiguration verwenden möchten, sind die beiden folgenden Parameter erforderlich. |
|
Erforderlich Geben Sie |
|
Erforderlich Das gewünschte HTTP PUT-Antwort-Hop-Limit für Instance-Metadatenanfragen. Je größer die Zahl ist, desto weiter können sich die Instance-Metadatenanfragen bewegen. Standard: |
Die Konfiguration des Instance Metadata Services mit der Konsole angeben
Sie können die Verwendung von IMDS für einen Cluster konfigurieren, wenn Sie ihn von der Amazon-EMR-Konsole aus starten.
So konfigurieren Sie die Verwendung von IMDS mithilfe der Konsole:
-
Wenn Sie auf der Seite Sicherheitskonfigurationen eine neue Sicherheitskonfiguration erstellen, wählen Sie unter der Einstellung EC2Instanz-Metadatendienst die Option EC2Instanz-Metadatendienst konfigurieren aus. Diese Konfiguration wird nur in Amazon EMR 5.23.1, 5.27.1, 5.32 oder höher und 6.2 oder höher unterstützt.
-
Für Minimum Instance Metadata Service Version wählen Sie eine der folgenden Optionen aus:
-
Schalten Sie die IMDSv1 Option aus und lassen Sie sie nur zu IMDSv2, wenn Sie nur IMDSv2 auf diesem Cluster zulassen möchten. Weitere Informationen finden Sie unter Umstellung auf die Nutzung des Instance-Metadaten-Service Version 2 im EC2 Amazon-Benutzerhandbuch.
-
Erlauben Sie beides IMDSv1 und IMDSv2 auf dem Cluster, wenn Sie IMDSv2 auf diesem Cluster eine sitzungsorientierte Einstellung zulassen IMDSv1 möchten.
-
-
Denn IMDSv2 Sie können auch die zulässige Anzahl von Netzwerk-Hops für das Metadaten-Token konfigurieren, indem Sie das HTTP-Put-Response-Hop-Limit auf eine Ganzzahl zwischen und festlegen.
1
64
Weitere Informationen finden Sie unter Konfiguration des Instance-Metadaten-Service im EC2 Amazon-Benutzerhandbuch.
Weitere Informationen finden Sie unter Instanzdetails konfigurieren und Instanz-Metadatenservice konfigurieren im EC2 Amazon-Benutzerhandbuch.