Crittografia del disco con KMS CMK - Amazon EMR

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.