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 - 键入要在加密 Amazon S3 上的内容期间标识 KMS 密钥 ID 的委派。如果加密类型配置为 serverSideEncryption-kms,则该委派适用。Windchill 提供了该委派的默认实施。默认实施使用特定于某个区域的默认 AWS KMS 密钥 ID。如果要使用其他 KMS 密钥 ID,则需要写入该委派的实施,并配置该委派以选择您的实施。加密类型配置为 serverSideEncryption-kms 时,此委派才适用。委派的默认出厂设置值为 com.ptc.windchill.objectstorage.amazons3.encryption.ssekms.DefaultSSEKMSKeyProvider。如果默认委派返回的 KMS 密钥 ID 为无,则将使用默认 AWS KMS 密钥 ID 进行加密。如果要使用自己的 KMS 密钥 ID,则需要写入一个可返回预期 KMS 密钥 ID 的委派,然后部署类文件并使用此命令行工具进行配置。有关配置的详细信息,请参阅将 Windchill 文件电子仓库配置为使用 Amazon S3
* 
请勿在生产环境中使用此实施。
示例委派如下:
SampleSSEKMSKeyProvider.java:此示例实施演示了如何才能返回某个特定区域的 KMS 密钥 ID。在此,我们首先获取 AmazonS3Client 对象。使用 AmamzonS3Client 检索给定存储桶名称的位置和区域。检查 AWS java 文档以了解与此相关的更多详细信息。
3. SSECSecKeyGenerator Delegate - 如果将加密类型配置为 serverSideEncryption-customerProvidedKeys,则应写入此委派的实施并配置委派。仅当加密类型配置为 serverSideEncryption-customerProvidedKeys 时,此委派才适用。此委派不存在默认的即用型实施。写入一个可管理秘密密钥的委派,然后部署类文件并使用此命令行工具进行配置。有关配置的详细信息,请参阅将 Windchill 文件电子仓库配置为使用 Amazon S3
示例委派如下:
SampleSSECSecKeyGenerator.java:此示例实施演示了如何生成 SecretKey。此示例实施可搜索现有 SecretKey。如有发现,则将返回 SecretKey。否则会生成一个新的 SecretKey,将其存储在磁盘上的文件中并返回。您可以决定安全存储 SecretKey 的策略。此外,此示例实施还将单个 SecretKey 用于电子仓库中的所有文件。您可以写入您自己的算法来管理存储在 AWS S3 中的存储桶或对象的多个 SecretKey。
这对您有帮助吗?