Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Crittografia del disco con KMS CMK
EMR Serverless crittografa per impostazione predefinita tutti i dischi collegati ai lavoratori utilizzando chiavi di crittografia di proprietà del servizio. Facoltativamente, è possibile scegliere di crittografare questi dischi utilizzando le proprie chiavi gestite dal cliente (). AWS KMS CMKs Ciò offre un maggiore controllo sulle chiavi di crittografia, inclusa la possibilità di stabilire e mantenere le politiche chiave e di controllare l'utilizzo delle chiavi.
È possibile configurare la crittografia del disco durante la creazione di un'applicazione o quando si inviano singoli lavori. Se abilitata a livello di applicazione, tutti i lavori su quell'applicazione ereditano le impostazioni di crittografia. È inoltre possibile sovrascrivere le impostazioni predefinite dell'applicazione specificando una configurazione di crittografia del disco quando si invia un lavoro.
Nota
La crittografia dei dischi EMR Serverless supporta solo chiavi KMS simmetriche. Le chiavi KMS asimmetriche non sono supportate. È necessario utilizzare una chiave KMS di crittografia simmetrica creata in. AWS KMSPer ulteriori informazioni su AWS KMS, consulta Cos'è? AWS KMS
Utilizzo del contesto di crittografia
Facoltativamente, EMR Serverless utilizza il contesto di crittografia per fornire dati autenticati aggiuntivi per le operazioni di crittografia. Il contesto di crittografia è un insieme di coppie chiave-valore che possono contenere dati autenticati aggiuntivi non segreti. Il contesto di crittografia è associato crittograficamente ai dati crittografati, quindi è necessario lo stesso contesto di crittografia per decrittografare i dati.
In EMR Serverless, è possibile specificare il contesto di crittografia personalizzato durante la configurazione della crittografia del disco. Questo contesto di crittografia è incluso nei AWS CloudTrail log per aiutarti a identificare e comprendere le tue operazioni KMS.
Nota
Non archiviate le informazioni sensibili in un contesto di crittografia così come appaiono in testo semplice nei log. AWS CloudTrail
Configurazione della crittografia del disco con chiavi gestite dal cliente
CreateApplication
Per crittografare i dischi con la tua chiave KMS, includi il diskEncryptionConfiguration parametro durante la creazione di un'applicazione EMR Serverless.
aws emr-serverless create-application \ --type TYPE \ --name APPLICATION_ID \ --release-label RELEASE_LABEL \ --region AWS_REGION \ --disk-encryption-configuration '{ "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } }'
UpdateApplication
Per aggiornare il contesto di crittografia and/or ARN della chiave KMS, specificare diskEncryptionConfiguration il parametro con i nuovi valori durante l'aggiornamento di un'applicazione.
aws emr-serverless update-application \ --name APPLICATION_ID \ --region AWS_REGION \ --disk-encryption-configuration '{ "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } }'
Nota
Per annullare la crittografia del disco configurata su un'applicazione, inserite un valore vuoto diskEncryptionConfiguration durante l'aggiornamento dell'applicazione.
StartJobRun
Per crittografare i dischi con la tua chiave KMS, usa la diskEncryptionConfiguration configurazione quando invii un job run.
--configuration-overrides '{ "diskEncryptionConfiguration": { "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } } }'
Endpoint Livy pubblici
Per crittografare i dischi con la tua chiave KMS durante la creazione di sessioni Spark tramite endpoint Livy pubblici, specifica la configurazione di crittografia nell'oggetto della sessione. conf
data = { "kind": "pyspark", "heartbeatTimeoutInSecond": 60, "conf": { "emr-serverless.session.executionRoleArn": "role_arn", "spark.emr-serverless.disk.encryptionKeyArn": "key-arn", "spark.emr-serverless.disk.encryptionContext": "key1:value1,key2:value2" # Optional } } # Send request to create a session with the Livy API endpoint request = AWSRequest(method='POST', url=endpoint + "/sessions", data=json.dumps(data), headers=headers)
Autorizzazioni richieste per la crittografia del disco
Autorizzazioni delle chiavi di crittografia per EMR Serverless
Quando si crittografano i dischi con la propria chiave di crittografia, è necessario configurare le seguenti autorizzazioni per la chiave KMS per il principale: emr-serverless.amazonaws.com
-
kms:GenerateDataKey: Per generare chiavi dati per crittografare i volumi del disco -
kms:Decrypt: Per decrittografare le chiavi dati quando si accede ai contenuti crittografati del disco
{ "Effect": "Allow", "Principal":{ "Service": "emr-serverless.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:emr-serverless:region:aws-account-id:/applications/application-id" }, "StringEquals": { "kms:EncryptionContext:applicationId": "application-id", "aws:SourceAccount": "aws-account-id" } } }
Come procedura consigliata in materia di sicurezza, ti consigliamo di aggiungere una chiave di aws:SourceArn condizione alla politica delle chiavi KMS. La chiave di condizione globale IAM aws:SourceArn aiuta a garantire che EMR Serverless utilizzi la chiave KMS solo per l'ARN di un'applicazione. Inoltre, l'inclusione della chiave di aws:SourceAccount condizione fornisce un altro livello di sicurezza limitando l'uso della chiave KMS alle richieste provenienti dall'ID dell'account specificato nella AWS condizione.
Il ruolo di job runtime deve disporre delle seguenti autorizzazioni nella sua policy IAM:
{ "Sid": "Enable GDK and Decrypt", "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }
Autorizzazioni utente richieste
L'utente che invia il lavoro deve disporre delle autorizzazioni per utilizzare la chiave. Puoi specificare le autorizzazioni nella politica delle chiavi KMS o nella politica IAM per l'utente, il gruppo o il ruolo. Se l'utente che invia il lavoro non dispone delle autorizzazioni della chiave KMS, EMR Serverless rifiuta l'invio dell'esecuzione del lavoro.
Esempi di policy delle chiavi
La seguente politica chiave fornisce le autorizzazioni per e: kms:DescribeKey kms:GenerateDataKey kms:Decrypt
-
kms:DescribeKey: Per verificare che la chiave KMS gestita dal cliente sia abilitata e SYMMETRIC prima di utilizzarla.
{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:user/user-name" }, "Action": [ "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Enable GDK and Decrypt", "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:user/user-name" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "emr-serverless.region.amazonaws.com", "kms:EncryptionContext:key": "value" } } }
Come procedura consigliata in materia di sicurezza, consigliamo di aggiungere una chiave di kms:viaService condizione alla politica delle chiavi KMS. Limita l'uso della chiave KMS alle richieste di convalida provenienti solo da emr-serverless.
Policy IAM di esempio
La seguente politica IAM fornisce le autorizzazioni per, e. kms:DescribeKey kms:GenerateDataKey kms:Decrypt
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }
Monitoraggio dell'utilizzo delle chiavi
È possibile monitorare l'uso delle chiavi gestite dai clienti in EMR Serverless tramite. AWS CloudTrail AWS CloudTrail acquisisce tutte le chiamate API AWS KMS come eventi, incluse le chiamate dalla console EMR Serverless, dall'API AWS Serverless EMR, dalla CLI o dall'SDK. AWS
Le informazioni acquisite includono il contesto di crittografia specificato, che può aiutarti a identificare e controllare le risorse EMR Serverless specifiche che hanno utilizzato la tua chiave KMS. Ad esempio, potresti vedere eventi simili ai seguenti in. AWS CloudTrail Per ulteriori informazioni sull'utilizzo AWS CloudTrail, consulta la Guida AWS CloudTrail per l'utente.
GenerateDataKey
Evento di esempio per GenerateDataKey le operazioni quando EMR Serverless crea volumi di dischi crittografati
{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "principalId": "user", "invokedBy": "AWS Internal" }, "eventTime": "2025-07-28T21:43:51Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "ipAddress", "userAgent": "userAgent", "requestParameters": { "encryptionContext": { "applicationId": "test" }, "keyId": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample", "keySpec": "AES_256" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "145c963debe558dfb01848d2a4539da940f3478852f86cfe2f52d5df796a5a02" }, "requestID": "cc9d1c5e-97c4-4a4f-ae7a-e576sample", "eventID": "0b0fef09-f28d-4da8-a5a1-17b74sample", "readOnly": true, "resources": [ { "accountId": "account", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "accountId", "eventCategory": "Management" }
Decrypt
Evento di esempio per le operazioni di decrittografia quando EMR Serverless accede a dati crittografati.
{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "principalId": "user", "invokedBy": "AWS Internal" }, "eventTime": "2025-07-28T21:43:51Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "ipAddress", "userAgent": "userAgent", "requestParameters": { "encryptionContext": { "applicationId": "test" }, "keyId": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample", "keySpec": "AES_256" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "145c963debe558dfb01848d2a4539da940f3478852f86cfe2f52d5df796a5a02" }, "requestID": "cc9d1c5e-97c4-4a4f-ae7a-e576sample", "eventID": "0b0fef09-f28d-4da8-a5a1-17b74sample", "readOnly": true, "resources": [ { "accountId": "account", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "accountId", "eventCategory": "Management" }
Ulteriori informazioni
Le seguenti risorse forniscono ulteriori informazioni sulla crittografia dei dati a riposo.
-
Per ulteriori informazioni sulle migliori pratiche di sicurezza per AWS KMS, consulta la Guida per gli AWS KMS sviluppatori.