Gestione delle chiavi - Amazon Simple Notification 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

Nelle sezioni seguenti vengono fornite informazioni sull'utilizzo delle chiavi gestite in AWS Key Management Service (AWS KMS). Per saperne di più su

Nota

Amazon SNS supporta solo chiavi KMS di crittografia simmetrica. Non è possibile utilizzare nessun altro tipo di chiave KMS per crittografare le risorse del servizio. Per informazioni su come determinare se una chiave KMS è simmetrica o asimmetrica, consultare Identifying asymmetric KMS keys (Individuazione di chiavi KMS asimmetriche).

Stima dei costi AWS KMS

Per prevedere i costi e capire meglio la fatturazione AWS, è utile sapere quanto spesso Amazon SNS usa la AWS KMS key.

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

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

R = B / D * (2 * P)

B è il periodo di fatturazione (in secondi).

D è il periodo di riutilizzo della chiave dati (in secondi–Amazon SNS riutilizza una chiave dati per un massimo di 5 minuti).

P è il numero di principali per la pubblicazione che effettuano invii all’argomento Amazon SNS.

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 API AWS KMS per 1 editore e 1 argomento

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 è di 5 minuti (300 secondi).

  • C'è 1 argomento.

  • C'è un principale per la pubblicazione.

2,678,400 / 300 * (2 * 1) = 17,856

Esempio 2: calcolo del numero di chiamate API AWS KMS per più editori e 2 argomenti

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 è di 5 minuti (300 secondi).

  • Ci sono 2 argomenti.

  • Il primo argomento ha 3 principali per la pubblicazione.

  • Il secondo argomento ha 5 principali per la pubblicazione.

(2,419,200 / 300 * (2 * 3)) + (2,419,200 / 300 * (2 * 5)) = 129,024

Configurazione delle autorizzazioni per AWS KMS

Prima di utilizzare SSE, è necessario configurare le policy AWS KMS key per consentire la crittografia degli argomenti e la crittografia e la decrittografia dei messaggi. Per esempi e ulteriori informazioni sulle autorizzazioni diAWS KMS, consulta AWS KMSAutorizzazioni API: Documentazione su operazioni e risorse nellaAWS Key Management ServiceGuida per sviluppatori. Per dettagli su come configurare un argomento Amazon SNS con crittografia lato server, consulta Configura un argomento Amazon SNS con crittografia lato server.

Nota

È possibile gestire le autorizzazioni per le chiavi KMS utilizzando le policy IAM. Per ulteriori informazioni, consulta Uso di policy IAM con AWS KMS.

Sebbene sia possibile configurare le autorizzazioni globali per inviare e ricevere da Amazon SNS, AWS KMS richiede esplicitamente la denominazione dell’ARN completo delle KMS in regioni specifiche nella sezione Resource di una policy IAM.

È necessario assicurarsi che le policy della chiave AWS KMS key consentano le autorizzazioni necessarie. Per eseguire questa operazione, denomina i principali che producono e utilizzano messaggi crittografati in Amazon SNS come utenti nella policy della chiave KMS.

In alternativa, è possibile specificare le operazioni AWS KMS richieste e l'ARN KMS in una policy IAM assegnata ai principali che pubblicano ed effettuano la sottoscrizione per ricevere messaggi crittografati in Amazon SNS. Per ulteriori informazioni, consulta Gestione dell'accesso a AWS KMS nella Guida per sviluppatori di AWS Key Management Service.

Se stai selezionando una chiave gestita dal cliente per l'argomento Amazon SNS e stai utilizzando alias per controllare l'accesso alle chiavi KMS utilizzando le policy IAM o le policy delle chiavi KMS con la chiave di condizione kms:ResourceAliases, assicurati che alla chiave gestita dal cliente selezionata sia associato anche un alias. Per ulteriori informazioni sull'uso degli alias per controllare l'accesso alle chiavi KMS, consulta Using aliases to control access to KMS keys (Utilizzo degli alias per controllare l'accesso alle chiavi KMS) nella Guida per gli sviluppatori di AWS Key Management Service.

Consentire a un utente di inviare messaggi a un argomento con SEE

L'editore deve avere le autorizzazioni kms:GenerateDataKey* e kms:Decrypt per la chiave AWS KMS key.

{ "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": [ "sns:Publish" ], "Resource": "arn:aws:sns:*:123456789012:MyTopic" }] }

Abilitare la compatibilità tra le origini eventi dai servizi AWS e gli argomenti crittografati

Diversi servizi AWS pubblicano eventi in argomenti Amazon SNS. Per consentire a queste origini eventi di utilizzare argomenti crittografati, devi eseguire la seguente procedura.

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

  2. Per consentire al servizio AWS di disporre delle autorizzazioni kms:GenerateDataKey* e kms:Decrypt, aggiungi la seguente dichiarazione alla policy KMS.

    { "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }] }
    Origine eventi Principale del servizio
    Amazon CloudWatch cloudwatch.amazonaws.com
    Amazon CloudWatch Events events.amazonaws.com
    AWS CodeCommit codecommit.amazonaws.com
    AWS CodeStar codestar-notifications.amazonaws.com
    AWS Database Migration Service dms.amazonaws.com
    AWS Directory Service ds.amazonaws.com
    Amazon DynamoDB dynamodb.amazonaws.com
    Amazon Inspector inspector.amazonaws.com
    Amazon Redshift redshift.amazonaws.com
    Amazon RDS events.rds.amazonaws.com
    Amazon S3 Glacier glacier.amazonaws.com
    Amazon Simple Email Service ses.amazonaws.com
    Amazon Simple Storage Service s3.amazonaws.com
    AWS Snowball importexport.amazonaws.com
    AWS Systems Manager Incident Manager

    AWS Systems Manager Incident Manager è costituito da due principi di servizio:

    ssm-incidents.amazonaws.com; ssm-contacts.amazonaws.com
    Nota

    Alcune origini di eventi Amazon SNS richiedono un ruolo IAM, invece di un principale del servizio, nella policy delle AWS KMS key:

  3. Aggiungi le chiavi di condizione aws:SourceAccount e aws:SourceArn per la policy delle risorse KMS per proteggere ulteriormente la chiave KMS da attacchi confused deputy. Fare riferimento all'elenco della documentazione specifica del servizio (sopra) per i dettagli esatti in ciascun caso.

    Importante

    L'aggiunta di un aws:SourceAccount e un aws:SourceArn a una policy AWS KMS non è supportata per gli argomenti EventBridge-to-encrypted.

    { "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "customer-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:service:region:customer-account-id:resource-type:customer-resource-id" } } }
  4. Abilitare SSE per il proprio argomento utilizzando la chiave KMS.

  5. Fornire l'ARN dell'argomento crittografato per l'origine eventi.

Errori AWS KMS

Quando utilizzi Amazon SNS e AWS KMS, possono verificarsi degli errori. Di seguito sono descritti gli errori e le possibili opzioni per la risoluzione dei problemi.

KMSAccessDeniedException

Il testo cifrato fa riferimento a una chiave che non esiste o a cui non hai accesso.

Codice di stato HTTP: 400

KMSDisabledException

La richiesta è stata rifiutata perché la chiave KMS specificata non è abilitata.

Codice di stato HTTP: 400

KMSInvalidStateException

La richiesta è stata rifiutata perché lo stato della risorsa specificata non è valido per questa richiesta. Per ulteriori informazioni, consulta Key states of AWS KMS keys (Stati chiave nelle chiavi AWS KMS keys) nella Guida per gli sviluppatori di AWS Key Management Service.

Codice di stato HTTP: 400

KMSNotFoundException

La richiesta è stata rifiutata perché non è possibile trovare l'entità o la risorsa specificata.

Codice di stato HTTP: 400

KMSOptInRequired

L'ID chiave di accesso AWS necessita di una sottoscrizione al servizio.

Codice di stato HTTP: 403

KMSThrottlingException

La richiesta è stata negata a causa del throttling della richiesta. Per ulteriori informazioni sulla limitazione della larghezza di banda della rete consulta Quote nella Guida per gli sviluppatori di AWS Key Management Service.

Codice di stato HTTP: 400