Risoluzione dei problemi nell'applicazione DynamoDB Encryption Client - AWS Crittografia database SDK

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

Risoluzione dei problemi nell'applicazione DynamoDB Encryption Client

Nota

La nostra libreria di crittografia lato client è stata rinominata Database Encryption. AWS SDK Il seguente argomento fornisce informazioni sulle versioni 1. x —2. x del DynamoDB Encryption Client for Java e versioni 1. x —3. x del client di crittografia DynamoDB per Python. Per ulteriori informazioni, consulta AWS Database Encryption SDK for DynamoDB version support.

Questa sezione descrive i problemi che si possono incontrare durante l'utilizzo del DynamoDB Encryption Client e offre suggerimenti per risolverli.

Per fornire feedback sul DynamoDB Encryption Client, segnala un problema nel aws-dynamodb-encryption-javarepository or. aws-dynamodb-encryption-python GitHub

Per fornire feedback su questa documentazione, utilizzare il link di feedback in qualsiasi pagina.

Accesso negato

Problema: la tua applicazione non può accedere a una risorsa necessaria.

Suggerimento: scopri le autorizzazioni richieste e aggiungile al contesto di sicurezza in cui opera la tua applicazione.

Dettagli

Per eseguire un'applicazione che utilizza la libreria DynamoDB Encryption Client, il chiamante deve disporre dell'autorizzazione per utilizzarne i componenti. In caso contrario, le applicazioni non potranno accedere agli elementi richiesti.

  • Il client di crittografia DynamoDB non richiede un account Amazon Web Services AWS() né dipende da alcun servizio. AWS Tuttavia, se l'applicazione utilizza l'account AWS, è necessario disporre di un utente Account AWS and che disponga dell'autorizzazione per utilizzare l'account.

  • Il client di crittografia DynamoDB non richiede Amazon DynamoDB. Tuttavia, se l'applicazione che utilizza il client crea tabelle DynamoDB, inserisce elementi in una tabella o ottiene elementi da una tabella, il chiamante deve avere l'autorizzazione per utilizzare le operazioni DynamoDB richieste nel tuo. Account AWS Per i dettagli, consulta gli argomenti sul controllo degli accessi nella Amazon DynamoDB Developer Guide.

  • Se l'applicazione utilizza una classe client helper nel client di crittografia DynamoDB per Python, il chiamante deve avere l'autorizzazione per chiamare l'operazione DynamoDB. DescribeTable

  • Il client di crittografia DynamoDB non AWS Key Management Service richiede ().AWS KMSTuttavia, se l'applicazione utilizza un Direct KMS Materials Provider o utilizza un Provider più recente con un provider store che lo utilizza AWS KMS, il chiamante deve essere autorizzato a utilizzare le operazioni AWS KMSGenerateDataKeyand Decrypt.

La verifica della firma non va a buon fine

Problema: un item non può essere decrittografato perché la verifica della firma non va a buon fine. L'item potrebbe anche non essere crittografato e firmato secondo le tue intenzioni.

Suggerimento: assicurati che tutte le operazioni di attributo valgano per tutti gli attributi dell'item. Quando decrittografi un item, assicurati di fornire operazioni di attributo che corrispondano a quelle utilizzate per crittografare l'item.

Dettagli

Le azioni relative agli attributi fornite indicano al DynamoDB Encryption Client quali attributi crittografare e firmare, quali attributi firmare (ma non crittografare) e quali ignorare.

Se le operazioni di attributo specificate non valgono per tutti gli attributi nell'item, l'item potrebbe non essere crittografato e firmato secondo le tue intenzioni. Se le operazioni di attributo che fornisci quando decrittografi un item sono diverse da quelle che hai fornito quando lo hai crittografato, la verifica della firma potrebbe non andare a buon fine. Questo è problema tipico delle applicazioni distribuite, in cui le nuove operazioni di attributo non sono state propagate a tutti gli host.

Gli errori di convalida delle firme sono difficili da risolvere. Per aiutare a prevenirli, adotta ulteriori precauzioni quando modifichi il modello di dati. Per informazioni dettagliate, vedi Modifica del modello di dati.

Problemi con le tabelle globali delle versioni precedenti

Problema: gli elementi in una versione precedente della tabella globale di Amazon DynamoDB non possono essere decrittografati perché la verifica della firma non riesce.

Suggerimento: imposta le azioni relative agli attributi in modo che i campi di replica riservati non siano crittografati o firmati.

Dettagli

È possibile utilizzare il DynamoDB Encryption Client con le tabelle globali DynamoDB. Si consiglia di utilizzare tabelle globali con una chiave multiregione e di replicare KMS la KMS chiave in tutte le aree in Regioni AWS cui viene replicata la tabella globale.

A partire dalla versione 2019.11.21 delle tabelle globali, puoi utilizzare le tabelle globali con il DynamoDB Encryption Client senza alcuna configurazione speciale. Tuttavia, se si utilizza la versione 2017.11.29 delle tabelle globali, è necessario assicurarsi che i campi di replica riservati non siano crittografati o firmati.

Se si utilizza la versione delle tabelle globali 2017.11.29, è necessario impostare le azioni degli attributi per i seguenti attributi DO_NOTHING in @DoNotTouchJava o Python.

  • aws:rep:deleting

  • aws:rep:updatetime

  • aws:rep:updateregion

Se si utilizza un'altra versione delle tabelle globali, non è richiesta alcuna azione.

Scarse prestazioni del provider più recente

Problema: l'applicazione è meno reattiva, soprattutto dopo l'aggiornamento a una versione più recente del DynamoDB Encryption Client.

Suggerimento: modifica il valore e la dimensione della cache. time-to-live

Dettagli

The Most Recent Provider è progettato per migliorare le prestazioni delle applicazioni che utilizzano il DynamoDB Encryption Client consentendo un riutilizzo limitato dei materiali crittografici. Quando configuri il provider più recente per la tua applicazione, devi bilanciare il miglioramento delle prestazioni con i problemi di sicurezza derivanti dalla memorizzazione nella cache e dal riutilizzo.

Nelle versioni più recenti di DynamoDB Encryption Client, time-to-live il valore TTL () determina per quanto tempo possono essere utilizzati i provider di materiale crittografico memorizzati nella cache (). CMPs Determina TTL anche la frequenza con cui il Most Recent Provider verifica la presenza di una nuova versione di. CMP

Se TTL è troppo lungo, l'applicazione potrebbe violare le regole aziendali o gli standard di sicurezza. Se il tuo TTL è troppo breve, le chiamate frequenti al provider store possono far sì che quest'ultimo limiti le richieste provenienti dall'applicazione e da altre applicazioni che condividono il tuo account di servizio. Per risolvere questo problema, regolate le dimensioni della TTL cache a un valore che soddisfi gli obiettivi di latenza e disponibilità e sia conforme ai vostri standard di sicurezza. Per informazioni dettagliate, vedi Impostazione di un time-to-live valore.