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
這是否有幫助?