Gestione delle chiavi Amazon SQS - Amazon Simple Queue Service

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à.

Gestione delle chiavi Amazon SQS

Amazon SQS si integra con AWS Key Management Service (KMS) per gestire le chiavi KMS per la crittografia lato server (SSE). Per informazioni su SSE e definizioni di gestione delle chiavi, consulta la sezione Crittografia inattiva in Amazon SQS. Amazon SQS utilizza le chiavi KMS per convalidare e proteggere le chiavi di dati che crittografano e decrittografano i messaggi. Nelle sezioni seguenti vengono fornite informazioni sull'utilizzo delle chiavi KMS e delle chiavi di dati nel servizio Amazon SQS.

Configurazione delle autorizzazioni per AWS KMS

Ogni chiave KMS deve avere una policy delle chiavi. Tieni presente che non puoi modificare la politica delle chiavi di una chiave KMS AWS gestita per Amazon SQS. La policy per questa chiave KMS include le autorizzazioni per tutte le entità principali nell'account (che sono autorizzate a utilizzare Amazon SQS) per usare le code crittografate.

Per una KMS gestita dal cliente, è necessario configurare la policy della chiave per aggiungere autorizzazioni per ogni produttore e consumatore della coda. A tale scopo, nomini il produttore e il consumatore come utenti nella policy della chiave KMS. Per ulteriori informazioni sulle AWS KMS autorizzazioni, consulta le AWS KMS risorse e le operazioni o il riferimento alle autorizzazioni AWS KMS API nella Guida per gli sviluppatori.AWS Key Management Service

In alternativa, puoi specificare le autorizzazioni richieste in una policy IAM assegnata alle entità principal che producono e utilizzano messaggi crittografati. Per ulteriori informazioni, consulta Utilizzo delle policy IAM con AWS KMS nella Guida per gli sviluppatori di AWS Key Management Service .

Nota

Sebbene sia possibile configurare le autorizzazioni globali per l'invio e la ricezione da Amazon SQS AWS KMS , è necessario denominare in modo esplicito l'ARN completo delle chiavi KMS in regioni Resource specifiche nella sezione di una policy IAM.

AWS Configura le autorizzazioni KMS per i servizi

Diversi AWS servizi fungono da sorgenti di eventi in grado di inviare eventi alle code di Amazon SQS. Per consentire a queste fonti di eventi di funzionare con code crittografate, devi creare una chiave KMS gestita dal cliente e aggiungere le autorizzazioni nella policy chiave affinché il servizio utilizzi i metodi API richiesti. AWS KMS Esegui la procedura seguente per configurare le autorizzazioni.

avvertimento

Quando modifichi la chiave KMS per crittografare i tuoi messaggi Amazon SQS, tieni presente che i messaggi esistenti crittografati con la vecchia chiave KMS rimarranno crittografati con quella chiave. Per decrittografare questi messaggi, devi conservare la vecchia chiave KMS e assicurarti che la relativa politica delle chiavi conceda ad Amazon SQS le autorizzazioni per e. kms:Decrypt kms:GenerateDataKey Dopo l'aggiornamento a una nuova chiave KMS per crittografare nuovi messaggi, assicurati che tutti i messaggi esistenti crittografati con la vecchia chiave KMS vengano elaborati e rimossi dalla coda prima di eliminare o disabilitare la vecchia chiave KMS.

  1. Crea una chiave KMS gestita dal cliente Per ulteriori informazioni, consulta Creazione di chiavi nella Guida per gli sviluppatori di AWS Key Management Service .

  2. Per consentire all'origine degli eventi del AWS servizio di utilizzare i metodi kms:GenerateDataKey e kms:Decrypt API, aggiungi la seguente dichiarazione alla politica delle chiavi KMS.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }] }

    Sostituire "service" nell'esempio precedente con il nome del servizio dell'origine evento. Le origini eventi includono i seguenti servizi.

    Origine eventi Nome servizio
    CloudWatch Eventi Amazon events.amazonaws.com
    Notifiche di eventi Amazon S3 s3.amazonaws.com
    Sottoscrizioni ad argomenti Amazon SNS sns.amazonaws.com
  3. Configura una coda SSE esistente utilizzando l'ARN della tua chiave KMS.

  4. Fornire l'ARN della coda crittografata per l'origine eventi.

Configura le AWS KMS autorizzazioni per i produttori

Quando scade il periodo di riutilizzo della chiave dati, la successiva chiamata del produttore a SendMessage o SendMessageBatch attiva anche le chiamate a kms:GenerateDataKey e kms:Decrypt. La chiamata a kms:Decrypt è per verificare l'integrità della nuova chiave dati prima di utilizzarla. Il produttore deve quindi avere le autorizzazioni kms:GenerateDataKey e kms:Decrypt per la chiave KMS.

Aggiungere la seguente istruzione alla policy IAM del produttore. Ricordarsi di utilizzare i valori ARN corretti per la risorsa chiave e la risorsa coda.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Configura le AWS KMS autorizzazioni per i consumatori

Quando scade il periodo di riutilizzo della chiave dati, la successiva chiamata del consumatore a ReceiveMessage attiva anche una chiamata a kms:Decrypt per verificare l'integrità della nuova chiave dati prima di utilizzarla. Il consumatore deve avere l'autorizzazione kms:Decrypt per qualsiasi chiave KMS che viene utilizzata per crittografare i messaggi nella coda specificata. Se una coda funge da coda DLQ, il consumatore deve avere anche l'autorizzazione kms:Decrypt per qualsiasi chiave KMS che viene utilizzata per crittografare i messaggi nella coda di origine. Aggiungere la seguente istruzione alla policy IAM del consumatore. Ricordarsi di utilizzare i valori ARN corretti per la risorsa chiave e la risorsa coda.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Configura le AWS KMS autorizzazioni con una protezione sostitutiva confusa

Quando il principale di una istruzione della policy della chiave è un Principale del servizio AWS, è possibile utilizzare le chiavi di condizione globali aws:SourceArn o aws:SourceAccount per proteggersi dal problema del "confused deputy". Per utilizzare queste chiavi di condizione, impostare il valore sul nome della risorsa Amazon (ARN) della risorsa crittografata. Se non si conosce l'ARN della risorsa, utilizzare aws:SourceAccount.

In questa policy della chiave KMS, una risorsa specifica del servizio di proprietà dell'account 111122223333 può richiamare KMS per le operazioni Decrypt e GenerateDataKey che si verificano durante l'utilizzo SSE di Amazon SQS.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "<replaceable>service</replaceable>.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:service::111122223333:resource" ] } } }] }

Quando si utilizzano code Amazon SQS abilitate per SSE, sono supportati i seguenti servizi aws:SourceArn:

  • Amazon SNS

  • Amazon S3

  • CloudWatch Eventi

  • AWS Lambda

  • CodeBuild

  • Customer Profiles Amazon Connect

  • AWS Auto Scaling

  • Amazon Chime

Informazioni sul periodo di riutilizzo della chiave di dati

Il periodo di riutilizzo della chiave di dati definisce la durata massima per Amazon SQS per riutilizzare la stessa chiave dati. Quando termina il periodo di riutilizzo della chiave di dati, Amazon SQS genera una nuova chiave di dati. Prendere nota delle seguenti linee guida sul periodo di riutilizzo.

  • Un periodo di riutilizzo più breve offre una maggiore sicurezza, ma comporta un maggior numero di chiamate verso AWS KMS, il che potrebbe comportare addebiti oltre il piano gratuito.

  • Anche se la chiave di dati viene memorizzata nella cache separatamente per la crittografia e la decrittografia, il periodo di riutilizzo si applica a entrambe le copie della chiave di dati.

  • Al termine del periodo di riutilizzo della chiave dati, la chiamata successiva SendMessage o SendMessageBatch in genere attiva una chiamata al AWS KMS GenerateDataKey metodo per ottenere una nuova chiave dati. Inoltre, ogni chiamata successiva a SendMessage e ReceiveMessage attiverà ciascuna una chiamata AWS KMS Decrypt a per verificare l'integrità della chiave dati prima di utilizzarla.

  • I responsabili (Account AWS o gli utenti) non condividono le chiavi dati (i messaggi inviati da destinatari univoci ottengono sempre chiavi dati uniche). Pertanto, il volume delle chiamate verso AWS KMS è un multiplo del numero di principali univoci in uso durante il periodo di riutilizzo della chiave dati.

Stima dei costi AWS KMS

Per prevedere i costi e comprendere meglio la AWS fattura, potresti voler sapere con quale frequenza Amazon SQS utilizza la tua chiave KMS.

Nota

Anche se la seguente formula può darti un'idea molto precisa dei costi previsti, i costi effettivi potrebbero essere più elevati a causa della natura diffusa di Amazon SQS.

Per calcolare il numero di richieste API (R) per coda, usa la formula seguente:

R = (B / D) * (2 * P + C)

B è il periodo di fatturazione (in secondi).

D è il periodo di riutilizzo della chiave di dati (in secondi).

P è il numero di principali produttori che effettuano invii alla coda Amazon SQS.

C è il numero di principali consumatori che ricevono dalla coda Amazon SQS.

Importante

In generale, ai principali produttori viene addebitato un importo doppio rispetto ai principali consumatori. Per ulteriori informazioni, consulta Informazioni sul periodo di riutilizzo della chiave di dati.

Se il produttore e l'utilizzatore hanno utenti diversi, il costo aumenta.

Di seguito vengono riportati esempi di calcolo. Per informazioni dettagliate sui prezzi, consulta Prezzi di AWS Key Management Service.

Esempio 1: calcolo del numero di chiamate AWS KMS API per 2 principali e 1 coda

Questo esempio assume quanto segue:

  • Il periodo di fatturazione è compreso tra il 1° e il 31 gennaio (2.678.400 secondi).

  • Il periodo di riutilizzo della chiave di dati è impostato su 5 minuti (300 secondi).

  • C'è una coda.

  • C'è 1 principale produttore e 1 principale consumatore.

(2,678,400 / 300) * (2 * 1 + 1) = 26,784

Esempio 2: calcolo del numero di chiamate AWS KMS API per più produttori e consumatori e 2 code

Questo esempio assume quanto segue:

  • Il periodo di fatturazione è compreso tra il 1° e il 28 febbraio (2.419.200 secondi).

  • Il periodo di riutilizzo della chiave di dati è impostato su 24 ore (86.400 secondi).

  • Ci sono 2 code.

  • La prima coda ha 3 principali produttori e 1 principale consumatore.

  • La seconda coda ha 5 principali produttori e 2 principali consumatori.

(2,419,200 / 86,400 * (2 * 3 + 1)) + (2,419,200 / 86,400 * (2 * 5 + 2)) = 532

AWS KMS errori

Quando lavori con Amazon SQS e AWS KMS, potresti riscontrare errori. I seguenti riferimenti descrivono gli errori e le possibili soluzioni di risoluzione dei problemi.