

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
<a name="troubleshooting"></a>

**Nota**  
La nostra libreria di crittografia lato client è stata [rinominata](DDBEC-rename.md) Database Encryption SDK. AWS 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 per il supporto della versione DynamoDB](legacy-dynamodb-encryption-client.md#legacy-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-java](https://github.com/aws/aws-dynamodb-encryption-java/)repository or. [aws-dynamodb-encryption-python](https://github.com/aws/aws-dynamodb-encryption-python/) GitHub 

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

**Topics**
+ [Accesso negato](#kms-permissions)
+ [La verifica della firma non va a buon fine](#change-data-model)
+ [Problemi con le tabelle globali delle versioni precedenti](#fix-global-tables)
+ [Scarse prestazioni del provider più recente](#mrp-ttl-delay)

## Accesso negato
<a name="kms-permissions"></a>

**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](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/) [utente Account AWS and che disponga dell'autorizzazione](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) 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](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-overview.html) nella *Amazon DynamoDB Developer Guide*.
+ Se l'applicazione utilizza una [classe client helper](python-using.md#python-helpers) nel client di crittografia DynamoDB per Python, il chiamante deve avere l'autorizzazione per chiamare l'operazione DynamoDB. [DescribeTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html)
+ Il client di crittografia DynamoDB non AWS Key Management Service richiede ().AWS KMS[Tuttavia, se l'applicazione utilizza un [Direct KMS Materials Provider o utilizza un fornitore](direct-kms-provider.md)[più recente con un provider](most-recent-provider.md) store che utilizza Direct KMS Materials Provider AWS KMS, il chiamante deve essere autorizzato a utilizzare le AWS KMS[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operazioni e Decrypt.](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)

## La verifica della firma non va a buon fine
<a name="change-data-model"></a>

**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](DDBEC-legacy-concepts.md#legacy-attribute-actions) 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](data-model.md).

## Problemi con le tabelle globali delle versioni precedenti
<a name="fix-global-tables"></a>

**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](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html). Ti consigliamo di utilizzare tabelle globali con una chiave KMS [multiregionale e di replicare la chiave KMS](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in tutti i luoghi in cui viene replicata la tabella globale. Regioni AWS 

A partire dalla [versione 2019.11.21](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) 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](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html) 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 [`@DoNotTouch`Java](java-using.md#attribute-actions-java) o Python.](python-using.md#python-attribute-actions)
+ `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
<a name="mrp-ttl-delay"></a>

**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 Il TTL determina anche la frequenza con cui il provider più recente verifica la presenza di una nuova versione della CMP. 

Se il TTL è troppo lungo, l'applicazione potrebbe violare le regole aziendali o gli standard di sicurezza. Se il 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 l'account di servizio. Per risolvere questo problema, regolate il TTL e le dimensioni della 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 valore time-to-live](most-recent-provider.md#most-recent-provider-ttl).