Verschlüsselungsanpassung für Amazon S3-Zuordnungen
In diesem Abschnitt wird beschrieben, wie Sie die Verschlüsselung anpassen, um Inhalt in einem verschlüsselten Format in Amazon S3 zu speichern. Standardmäßig wird der in Amazon S3 gespeicherte Inhalt mit dem Verschlüsselungstyp serverSideEncryption-s3 verschlüsselt. Der in dateibasierten Depots gespeicherte Inhalt liegt im einfachen Textformat vor.
* 
Der Benutzer ist für die Verwaltung der Verschlüsselungsoptionen verantwortlich. Sie sollten überprüfen, ob der Inhalt im Falle von Änderungen an den Verschlüsselungsoptionen zugänglich ist.
Um die Verschlüsselung von Inhalt in Amazon S3 anzupassen, schreiben Sie Delegate-Implementierungen wie folgt:
1. Delegate für S3 Verschlüsselungskonfigurator – Geben Sie den Delegate ein, um den Verschlüsselungstyp zu wählen. Wenn Sie einen anderen Verschlüsselungstyp verwenden möchten, sollten Sie einen Delegate schreiben, der den erwarteten Verschlüsselungstyp zurückgibt, die Klassendateien auf der Haupt-Site und auf registrierten Dateiservern, d.h. Replikat-Sites, bereitstellen und mithilfe des Befehlszeilentools konfigurieren. Der Standardwert des Delegate ist com.ptc.windchill.objectstorage.amazons3.encryption.DefaultS3EncryptConfigurator. Der Default-Delegate gibt den Verschlüsselungstyp als serverSideEncryption-s3 zurück. Wenn Sie einen anderen Verschlüsselungstyp verwenden möchten, sollten Sie einen Delegate schreiben, der den erwarteten Verschlüsselungstyp zurückgibt, die Klassen-Dateien bereitstellen und mithilfe dieses Befehlszeilen-Tools konfigurieren. Weitere Details zur Konfiguration finden Sie unter Windchill Dateidepots für die Verwendung von Amazon S3 konfigurieren.
Nachstehend finden Sie einen Beispiel-Delegate.
SampleS3EncryptConfigurator.java:
SampleS3EncryptConfigurator gibt serverSideEncryption-kms als Verschlüsselungstyp zurück. Der in Amazon S3 gespeicherte Inhalt wird mit KMS-Verschlüsselung verschlüsselt. Die API getS3EncryptionType erhält den Bucket-Namen und den Objektschlüssel als Argument. Sie können den Verschlüsselungstyp mithilfe von Bucket-Name und Objektschlüssel programmieren. Beispiel: Geben Sie für Bucket b1 den Verschlüsselungstyp serverSideEncryption-kms und für Bucket b2 den Verschlüsselungstyp serverSideEncryption-s3 zurück.
Gültige Werte für den Verschlüsselungstyp sind:
a. serverSideEncryption-s3 – Der Inhalt wird unter Verwendung serverseitiger Verschlüsselung mit von AWS S3 verwalteten Schlüsseln gespeichert.
b. serverSideEncryption-kms – Der Inhalt wird unter Verwendung serverseitiger Verschlüsselung mit von AWS KMS verwalteten Schlüsseln gespeichert.
c. serverSideEncryption-customerProvidedKeys – Der Inhalt wird unter Verwendung serverseitiger Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln gespeichert.
2. SSEKMSKeyProvider Delegate – Geben Sie den Delegate ein, um die KMS-Schlüssel-ID während der Verschlüsselung von Inhalt in Amazon S3 zu identifizieren. Dieser Delegate ist anwendbar, wenn serverSideEncryption-kms als Verschlüsselungstyp konfiguriert ist. Windchill stellt eine Standardimplementierung dieses Delegate bereit. Die Standardimplementierung verwendet die standardmäßige AWS KMS-Schlüssel-ID, die für eine Region spezifisch ist. Wenn Sie andere KMS-Schlüssel-IDs verwenden möchten, müssen Sie die Implementierung für diesen Delegate schreiben und diesen Delegate so konfigurieren, dass Ihre Implementierung ausgewählt wird. Dieser Delegate ist anwendbar, wenn der Verschlüsselungstyp als serverSideEncryption-kms konfiguriert ist. Der standardmäßige Wert für den Delegate ist com.ptc.windchill.objectstorage.amazons3.encryption.ssekms.DefaultSSEKMSKeyProvider. Wenn der Standard-Delegate keine KMS-Schlüssel-ID zurückgibt, wird die standardmäßige AWS KMS-Schlüssel-ID für die Verschlüsselung verwendet. Wenn Sie Ihre eigenen KMS-Schlüssel-IDs verwenden möchten, sollten Sie einen Delegate schreiben, der die erwarteten KMS-Schlüssel-IDs zurückgibt, die Klassen-Dateien bereitstellen und mithilfe dieses Befehlszeilen-Tools konfigurieren. Weitere Details zur Konfiguration finden Sie unter Windchill Dateidepots für die Verwendung von Amazon S3 konfigurieren.
* 
Verwenden Sie diese Implementierung nicht, da sie sich in einer Produktionsumgebung befindet.
Nachstehend finden Sie einen Beispiel-Delegate:
SampleSSEKMSKeyProvider.java:Diese Beispielimplementierung zeigt, wie Sie die KMS-Schlüssel-ID für eine bestimmte Region zurückgeben können. Hier wird zunächst das AmazonS3Client-Objekt abgerufen. Unter Verwendung von AmazonS3Client werden der Speicherort und die Region für einen bestimmten Bucket-Namen abgerufen. Weitere Details hierzu finden Sie in der Javadoc zu AWS.
3. SSECSecKeyGenerator Delegate – Wenn Sie serverSideEncryption-customerProvidedKeys als Verschlüsselungstyp konfigurieren, sollten Sie die Implementierung für diesen Delegate schreiben und den Delegate konfigurieren. Dieser Delegate ist nur anwendbar, wenn der Verschlüsselungstyp als serverSideEncryption-customerProvidedKeys konfiguriert ist. Für diesen Delegate gibt es keine standardmäßige Implementierung. Schreiben Sie einen Delegate, der die geheimen Schlüssel verwaltet, stellen Sie die Klassen-Dateien bereit und konfigurieren Sie sie mithilfe dieses Befehlszeilen-Tools. Weitere Details zur Konfiguration finden Sie unter Windchill Dateidepots für die Verwendung von Amazon S3 konfigurieren.
Nachstehend finden Sie einen Beispiel-Delegate:
SampleSSECSecKeyGenerator.java: Dies ist eine Beispielimplementierung, die zeigt, wie ein geheimer Schlüssel generiert wird. Diese Beispielimplementierung sucht nach einem vorhandenen geheimen Schlüssel. Wenn der geheime Schlüssel gefunden wird, wird er zurückgegeben. Andernfalls wird ein neuer geheimer Schlüssel generiert, in einer Datei auf Datenträger gespeichert und zurückgegeben. Sie können die Strategie zum sicheren Speichern des geheimen Schlüssels wählen. Diese Beispielimplementierung verwendet außerdem einen einzelnen geheimen Schlüssel für alle Dateien im Depot. Sie können Ihren eigenen Algorithmus schreiben, um mehrere geheime Schlüssel für Buckets oder für Objekte zu verwalten, die in AWS S3 gespeichert sind.
War dies hilfreich?