Personalizzazione della crittografia per i mount di Amazon S3
In questa sezione viene descritta la personalizzazione della crittografia per la memorizzazione del contenuto in un formato crittografato su Amazon S3. Inizialmente, il contenuto memorizzato su Amazon S3 viene crittografato utilizzando il tipo di crittografia serverSideEncryption-s3. Il contenuto memorizzato in archivi basati su file è in formato normale.
|
L'utente è responsabile della gestione delle opzioni di crittografia. È necessario assicurarsi che il contenuto sia accessibile in caso di modifiche alle opzioni di crittografia.
|
Per personalizzare la crittografia del contenuto su Amazon S3, scrivere implementazioni del delegato come descritto di seguito.
1. Delegato del Configuratore di crittografia S3: digitare il delegato per scegliere il tipo di crittografia. Se si desidera utilizzare un altro tipo di crittografia, è necessario scrivere un delegato che restituisca il tipo di crittografia previsto, implementare i file di classe nel sito master e nei file server registrati, ovvero i siti di replica, ed eseguire la configurazione utilizzando lo strumento da riga di comando. Il valore di default del delegato è
com.ptc.windchill.objectstorage.amazons3.encryption.DefaultS3EncryptConfigurator. Il delegato di default restituisce il tipo di crittografia come
serverSideEncryption-s3. Se si desidera utilizzare un altro tipo di crittografia, è necessario scrivere un delegato che restituisca il tipo di crittografia previsto, distribuire i file di classe ed eseguire la configurazione utilizzando lo strumento da riga di comando. Se si desidera utilizzare un altro tipo di crittografia, è necessario scrivere un delegato che restituisca il tipo di crittografia previsto. Per ulteriori informazioni sulla configurazione, vedere
Configurazione degli archivi file di Windchill per l'utilizzo di Amazon S3.
Di seguito è riportato un delegato di esempio.
SampleS3EncryptConfigurator.java:
SampleS3EncryptConfigurator restituisce serverSideEncryption-kms come tipo di crittografia. Il contenuto memorizzato su Amazon S3 viene crittografato utilizzando la crittografia KMS. L'API getS3EncryptionType riceve il nome e la chiave oggetto del bucket come argomento. È possibile programmare il tipo di crittografia utilizzando il nome e la chiave oggetto del bucket. Ad esempio, per il bucket b1, viene restituito il tipo di crittografia serverSideEncryption-kms, mentre per il bucket b2 viene restituito il tipo di crittografia serverSideEncryption-s3.
Di seguito sono riportati i valori validi per il tipo di crittografia.
a. serverSideEncryption-s3 - Il contenuto viene memorizzato utilizzando la crittografia sul lato server con le chiavi gestite AWS S3.
b. serverSideEncryption-kms - Il contenuto viene memorizzato utilizzando la crittografia sul lato server con le chiavi gestite AWS KMS.
c. serverSideEncryption-customerProvidedKeys - Il contenuto viene memorizzato utilizzando la crittografia sul lato server con le chiavi fornite dal cliente.
2. SSEKMSKeyProvider Delegate - Immettere il delegato per identificare l'ID chiave KMS durante la crittografia del contenuto su Amazon S3. Questo delegato è applicabile se il tipo di crittografia è configurato come
serverSideEncryption-kms. Windchill fornisce l'implementazione di default di questo delegato. Tale implementazione utilizza l'ID di default della chiave AWS KMS che è specifico di un'area. Se si desidera utilizzare altri ID di chiave KMS, è necessario scrivere l'implementazione del delegato e configurare il delegato per la selezione dell'implementazione. Questo delegato è applicabile se il tipo di crittografia è configurato come
serverSideEncryption-kms. Il valore predefinito di default del delegato è
com.ptc.windchill.objectstorage.amazons3.encryption.ssekms.DefaultSSEKMSKeyProvider. Se il delegato di default non restituisce alcun ID di chiave KMS, viene utilizzato l'ID di chiave AWS KMS di default per la crittografia. Se si desidera utilizzare i propri ID di chiave KMS, è necessario scrivere un delegato che restituisca gli ID di chiave KMS previsti, distribuire i file di classe ed eseguire la configurazione utilizzando lo strumento da riga di comando. Per ulteriori informazioni sulla configurazione, vedere
Configurazione degli archivi file di Windchill per l'utilizzo di Amazon S3.
| Non utilizzare questa implementazione così com'è in un ambiente di produzione. |
Di seguito è riportato un delegato di esempio.
SampleSSEKMSKeyProvider.java:in questa implementazione di esempio viene illustrato come restituire l'ID chiave KMS per un'area specifica. Nell'esempio si ottiene innanzitutto l'oggetto AmazonS3Client. Utilizzando AmamzonS3Client, si recupera la posizione e l'area di un determinato nome di bucket. Per ulteriori dettagli su questa procedura, fare riferimento alla documentazione Java su AWS.
3. SSECSecKeyGenerator Delegate- Se si configura il tipo di crittografia come
serverSideEncryption-customerProvidedKeys, è necessario scrivere l'implementazione per questo delegato e configurare il delegato. Questo delegato è applicabile solo se il tipo di crittografia è configurato come
serverSideEncryption-customerProvidedKeys. Per questo delegato non esiste alcuna implementazione predefinita di default. Scrivere un delegato che gestisca le chiavi private, distribuire i file di classe ed eseguire la configurazione utilizzando questo strumento da riga di comando. Per ulteriori informazioni sulla configurazione, vedere
Configurazione degli archivi file di Windchill per l'utilizzo di Amazon S3.
Di seguito è riportato un delegato di esempio.
SampleSSECSecKeyGenerator.java: si tratta di un'implementazione di esempio che illustra come generare una SecretKey. L'implementazione di esempio cerca una SecretKey esistente. Se trovata, la SecretKey viene restituita. In caso contrario, generare una nuova SecretKey, memorizzarla in un file sul disco e restituirla. È possibile scegliere la strategia per memorizzare la SecretKey in modo sicuro. Nell'implementazione di esempio, inoltre, la singola SecretKey viene utilizzata per tutti i file presenti nell'archivio. È possibile scrivere il proprio algoritmo per gestire le diverse SecretKey in base ai bucket o agli oggetti memorizzati in AWS S3
.