

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

# Configurazione CSE-CUSTOM
<a name="emr-s3a-cse-custom"></a>

[Per utilizzare CSE-CUSTOM, è necessario creare un provider di chiavi personalizzato implementando l'interfaccia Keyring.](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/choose-keyring.html) Ecco un esempio di implementazione:

```
public class CustomKeyring implements Keyring {
  public CustomKeyring()  {
    // custom code
  }

  @Override
  public EncryptionMaterials onEncrypt(EncryptionMaterials encryptionMaterials) {
    // custom code
  }

  @Override
  public DecryptionMaterials onDecrypt(DecryptionMaterials decryptionMaterials,
      ListEncryptedDataKey list) {
    // custom code
  }
```

È possibile abilitare le chiavi personalizzate di crittografia lato client (CSE-CUSTOM) in due ambiti principali:
+ Il primo ambito è la configurazione a livello di cluster:

  ```
  [
    {
      "Classification":"core-site",
      "Properties": {
         "fs.s3a.encryption.algorithm": "CSE-CUSTOM",
         "fs.s3a.cse.customKeyringProvider.uri":"S3 path of custom jar",
         "fs.s3a.encryption.cse.custom.keyring.class.name":"fully qualified class name"
      }
    }
  ]
  ```
+ Il secondo è la configurazione specifica del processo o dell'applicazione. CSE-CUSTOM può essere configurato per una specifica applicazione Spark come segue:

  ```
  spark-submit --conf spark.hadoop.fs.s3a.encryption.algorithm=CSE-CUSTOM --conf spark.hadoop.fs.s3a.encryption.cse.custom.keyring.class.name=fully qualified class name
  ```
**Nota**  
Assicurati che il jar personalizzato richiesto per la generazione encryption/decryption delle chiavi sia presente nel percorso della classe.