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.
Verschlüsselung von Amazon EMR in EKS-Protokollen mit verwaltetem Speicher
In den folgenden Abschnitten erfahren Sie, wie Sie die Verschlüsselung für Protokolle konfigurieren.
Verschlüsselung aktivieren
Um Protokolle im verwalteten Speicher mit Ihrem eigenen KMS-Schlüssel zu verschlüsseln, verwenden Sie die folgende Konfiguration, wenn Sie eine Jobausführung einreichen.
"monitoringConfiguration": { "managedLogs": { "allowAWSToRetainLogs":"ENABLED", "encryptionKeyArn":"
KMS key arn
" }, "persistentAppUI": "ENABLED" }
Die allowAWSToRetainLogs
Konfiguration ermöglicht AWS die Aufbewahrung von System-Namespace-Protokollen, wenn ein Job mit nativem FGAC ausgeführt wird. Die persistentAppUI
Konfiguration ermöglicht AWS das Speichern von Ereignisprotokollen, die zur Generierung der Spark-Benutzeroberfläche verwendet werden. Der encryptionKeyArn
wird verwendet, um den KMS-Schlüssel ARN anzugeben, mit dem Sie die gespeicherten Protokolle verschlüsseln möchten. AWS
Erforderliche Berechtigungen für die Protokollverschlüsselung
Dem Benutzer, der den Job einreicht oder die Spark-Benutzeroberfläche aufruft kms:DescribeKey
kms:GenerateDataKey
, müssen die Aktionen und kms:Decrypt
für den Verschlüsselungsschlüssel zugelassen werden. Diese Berechtigungen werden verwendet, um die Gültigkeit des Schlüssels zu überprüfen und zu überprüfen, ob der Benutzer über die erforderlichen Rechte zum Lesen und Schreiben von Protokollen verfügt, die mit dem KMS-Schlüssel verschlüsselt wurden. Wenn der Benutzer, der den Job einreicht, nicht über die erforderlichen Schlüsselberechtigungen verfügt, lehnt Amazon EMR on EKS die Übermittlung der Auftragsausführung ab.
Beispiel für eine IAM-Richtlinie für die Rolle, die zum Aufrufen verwendet wurde StartJobRun
{ "Version": "2012-10-17", "Statement": [ { "Action": "emr-containers:StartJobRun", "Resource": "*", "Effect": "Allow" }, { "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "
KMS key ARN
", "Effect": "Allow" } ] }
Außerdem müssen Sie den KMS-Schlüssel so konfigurieren, dass die persistentappui.elasticmapreduce.amazonaws.com
und elasticmapreduce.amazonaws.com
Service Principals und verwenden können. kms:GenerateDataKey
kms:Decrypt
Auf diese Weise kann EMR mit dem KMS-Schlüssel verschlüsselte Protokolle lesen und in den verwalteten Speicher schreiben.
Beispiel für eine KMS-Schlüsselrichtlinie
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "
IAM role ARN used to call StartJobRun
" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringLike": { "kms:viaService": "emr-containers.region
.amazonaws.com" } } }, { "Effect": "Allow", "Principal": { "AWS": "IAM role ARN used to call StartJobRun
" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:viaService": "emr-containers.region
.amazonaws.com", "kms:EncryptionContext:aws:emr-containers:virtualClusterId": "virtual cluster id
" } } }, { "Effect": "Allow", "Principal": { "Service": [ "persistentappui.elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:emr-containers:virtualClusterId": "virtual cluster id
", "aws:SourceArn": "virtual cluster ARN
" } } } ] }
Aus Sicherheitsgründen empfehlen wir, die aws:SourceArn
Bedingungen kms:viaService
kms:EncryptionContext
, und hinzuzufügen. Diese Bedingungen tragen dazu bei, dass der Schlüssel nur von Amazon EMR auf EKS und nur für Protokolle verwendet wird, die von Aufträgen generiert werden, die in einem bestimmten virtuellen Cluster ausgeführt werden.