Настройка шифрования для подключений Amazon S3
В этом разделе поясняется настройка шифрования, позволяющая сохранить содержимое в зашифрованном формате на Amazon S3. Стандартное содержимое, сохраняемое на Amazon S3, зашифровывается с помощью типа шифрования serverSideEncryption-s3. Содержимое, сохраняется в файловых архивах в текстовом формате.
|
Пользователь несет ответственность за управление опциями шифрования. Необходимо убедиться, что содержимое будет доступно в случае изменений опций шифрования.
|
Чтобы настроить шифрование содержимого на Amazon S3, напишите реализации делегатов следующим образом.
1. Делегат конфигуратора шифрования S3 - введите команды делегата, позволяющие выбрать тип шифрования. Если нужно использовать другой тип шифрования, необходимо написать команды делегата, возвращающие ожидаемый тип шифрования, развернуть файлы класса на главном сайте и на зарегистрированных файловых серверах, представляющих собой сайты реплик, и сконфигурировать использование инструмента командной строки. Значение по умолчанию делегата:
com.ptc.windchill.objectstorage.amazons3.encryption.DefaultS3EncryptConfigurator. Делегат по умолчанию возвращает тип шифрования
serverSideEncryption-s3. Если требуется использовать другой тип шифрования, необходимо записать делегат, который возвращает нужный тип шифрования, развернуть файлы класса и произвести настройку с помощью этого инструмента командной строки. Если требуется использовать другой тип шифрования, необходимо записать делегат, который возвращает нужный тип шифрования. Дополнительные сведения о конфигурировании см. в разделе
Конфигурирование файловых архивов Windchill для использования Amazon S3.
Ниже приведен пример делегата.
SampleS3EncryptConfigurator.java:
SampleS3EncryptConfigurator возвращает serverSideEncryption-kms как тип шифрования. Содержимое, сохраненное на Amazon S3, зашифровывается с использованием шифрования KMS. Интерфейс API getS3EncryptionType получает наименование контейнера и ключ объекта в качестве аргументов. Используя наименование контейнера и ключ объекта, можно запрограммировать тип шифрования. Например, для контейнера b1 требуется возвратить тип шифрования serverSideEncryption-kms, а для контейнера b2 нужно возвратить тип шифрования serverSideEncryption-s3.
Допустимые значения типа шифрования:
a. serverSideEncryption-s3 - содержимое сохраняется с помощью шифрования на стороне сервера с управляемыми ключами AWS S3.
b. serverSideEncryption-kms - содержимое сохраняется с помощью шифрования на стороне сервера с управляемыми ключами AWS KMS.
c. serverSideEncryption-customerProvidedKeys - содержимое сохраняется с помощью шифрования на стороне сервера с ключами, предоставляемыми заказчиком.
2. SSEKMSKeyProvider Delegate - введите данные делегата для определения идентификатора ключа KMS во время шифрования содержимого на Amazon S3. Этот делегат применим, если тип шифрования сконфигурирован как
serverSideEncryption-kms. Windchill предоставляет реализацию по умолчанию для этого делегата. В реализации по умолчанию используется идентификатор по умолчанию ключа KMS AWS, специфичный для региона. Если требуется использовать другие идентификаторы ключа KMS, необходимо написать реализацию для этого делегата и сконфигурировать его для выбора этой реализации. Этот делегат применим, если тип шифрования сконфигурирован как
serverSideEncryption-kms. Стандартное значение по умолчанию делегата:
com.ptc.windchill.objectstorage.amazons3.encryption.ssekms.DefaultSSEKMSKeyProvider. Если делегат по умолчанию возвращает для идентификатора ключа KMS значение "нет", для шифрования используется идентификатор по умолчанию ключа AWS KMS. Если требуется использовать собственные идентификаторы ключа KMS, необходимо записать делегат, который возвращает нужные идентификаторы ключа KMS, развернуть файлы класса и произвести настройку с помощью этого инструмента командной строки. Дополнительные сведения о конфигурировании см. в разделе
Конфигурирование файловых архивов Windchill для использования Amazon S3.
| Не используйте эту реализацию "как есть" на производственном оборудовании. |
Ниже приведен пример делегата.
SampleSSEKMSKeyProvider.java:Этот пример реализации демонстрирует способ возвращения идентификатора ключа KMS для конкретного региона. Здесь мы сначала получаем объект AmazonS3Client. Используя AmamzonS3Client, мы загружаем расположение и регион для данного наименования контейнера. Дополнительные сведения об этом см. в документации по AWS Java.
3. SSECSecKeyGenerator Delegate - при конфигурировании типа шифрования как
serverSideEncryption-customerProvidedKeys необходимо написать реализацию для этого делегата и выполнить конфигурирование делегата. Этот делегат применим, только если тип шифрования сконфигурирован как
serverSideEncryption-customerProvidedKeys. Для этого делегата отсутствует стандартная реализация по умолчанию. Напишите делегат, управляющий секретными ключами, разверните файлы класса и осуществите настройку с помощью этого инструмента командной строки. Дополнительные сведения о конфигурировании см. в разделе
Конфигурирование файловых архивов Windchill для использования Amazon S3.
Ниже приведен пример делегата.
SampleSSECSecKeyGenerator.javaЭтот пример реализации демонстрирует способ генерации секретного ключа. В этом примере реализации выполняется поиск существующего секретного ключа. Если секретный ключ найден, он будет возвращен. В противном случае сгенерируйте новый секретный ключ, сохраните его в файле на диске и возвратите. Можно выбрать стратегию безопасного хранения секретного ключа. Также в этом примере реализации используется единый секретный ключ для всех файлов в архиве. Можно написать собственный алгоритм для управления несколькими секретными ключами для контейнеров или для объектов, хранящихся в AWS S3
.