本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
中的資料加密 AWS Transform
本主題提供有關傳輸中 AWS Transform 加密和靜態加密的特定資訊。
AWS Transform 依預設提供加密,以使用 AWS 擁有的金鑰加密來保護靜態敏感客戶資料。
加密類型
傳輸中加密
使用 TLS 1.2 或更新版本的連線,保護客戶 AWS Transform 與 之間的通訊,以及 AWS Transform 與其下游相依性之間的通訊。
重要
當您連接探索帳戶時, AWS Transform 會在該帳戶中代表您建立 Amazon S3 儲存貯體。根據預設,該儲存貯體尚未SecureTransport啟用。如果您希望儲存貯體政策包含安全傳輸,則必須更新政策。如需詳細資訊,請參閱 Amazon S3 的安全最佳實務。
靜態加密
AWS Transform 使用 Amazon DynamoDB 和 Amazon Simple Storage Service (Amazon S3) 存放靜態資料。預設情況下,靜態資料會使用 AWS 加密解決方案進行加密。 會使用來自 AWS Key Management Service (AWS KMS) 的 AWS 擁有金鑰,以加密方式 AWS Transform 加密您的資料。您不需要採取任何動作來保護加密資料的 AWS 受管金鑰。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的 AWS 擁有的金鑰。
| 資料類型 | AWS擁有的金鑰加密 | 客戶自管金鑰加密 (選用) |
|---|---|---|
|
客戶儲存貯體資料 客戶輸入和輸出,例如存放在 Amazon S3 儲存貯體中的程式碼和文件 |
已啟用 |
已啟用 |
|
成品存放區 中繼成品做為存放在 S3 儲存貯體中的程式碼轉換的一部分 |
已啟用 |
已啟用 |
|
任務目標 客戶對存放在 Amazon S3 儲存貯體中之任務的意圖 |
已啟用 |
已啟用 |
|
聊天訊息 客戶與 之間 AWS Transform 存放在 Amazon S3 儲存貯體中的訊息 |
已啟用 |
已啟用 |
|
聊天知識庫 與存放在 Amazon OpenSearch 中並透過 AWS Bedrock 處理 AWS Transform 的客戶聊天相關的索引資料 |
已啟用 |
已啟用 |
注意:客戶可以註冊自己的客戶受管金鑰 (CMK),用於加密上述所有資料類型。
客戶受管金鑰是您帳戶中建立、擁有和管理 AWS 的 KMS 金鑰,可透過控制對 KMS 金鑰的存取,直接控制對資料的存取。僅支援對稱金鑰。如需有關建立您自己的 KMS 金鑰的資訊,請參閱《 AWS Key Management Service 開發人員指南》中的建立金鑰。
當您使用客戶受管金鑰時, AWS Transform 會使用 KMS 授予,允許授權的使用者、角色或應用程式使用 KMS 金鑰。當 AWS Transform 管理員選擇在組態期間使用客戶受管金鑰進行加密時,會為其建立授權。此授權可讓最終使用者使用加密金鑰進行靜態資料加密。如需授權的詳細資訊,請參閱 AWS KMS中的授權。
AWS 擁有的金鑰 (預設)
注意
AWS 擁有的金鑰 — 預設 AWS Transform 使用這些金鑰自動加密個人身分識別資料。您無法檢視、管理或使用 AWS 擁有的金鑰,或稽核其使用方式。不過,您不需要採取任何動作或變更任何程式,即可保護加密您資料的金鑰。如需詳細資訊,請參閱 Key Management Service 開發人員指南中的 AWS 擁有 AWS的金鑰。
依預設加密靜態資料,有助於降低保護敏感資料所涉及的營運開銷和複雜性。同時,其可讓您建置符合嚴格加密合規性和法規要求的安全應用程式。
雖然您無法停用此層加密或選取替代加密類型,但您可以在建立轉換時選擇客戶受管金鑰,在現有 AWS 擁有的加密金鑰上新增第二層加密:
客戶受管金鑰 (選用)
客戶受管金鑰 — AWS Transform 支援使用您建立、擁有和管理的對稱客戶受管金鑰,以使用 AWS 擁有的金鑰在現有加密上新增第二層加密。您可以完全控制此層加密,因此能執行以下任務:
-
建立和維護金鑰政策
-
建立和維護 IAM 政策和授予操作
-
啟用和停用金鑰政策
-
輪換金鑰密碼編譯資料
-
新增 標籤
-
建立金鑰別名
-
輪換金鑰密碼編譯資料
-
新增 標籤
-
建立金鑰別名
-
安排金鑰供刪除
-
如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的客戶自管金鑰。
注意
AWS Transform 會使用 AWS 擁有的金鑰自動啟用靜態加密,免費保護個人身分識別資料。不過,使用客戶受管金鑰需支付 AWS KMS 費用。如需定價的詳細資訊,請參閱 AWS Key Management Service 定價。
如需詳細資訊 AWS KMS,請參閱什麼是 AWS Key Management Service?
如何在 中使用 AWS Transform 授予 AWS Key Management Service
AWS Transform 需要授予才能使用您的客戶受管金鑰。
當您建立使用客戶受管金鑰加密的 【資源名稱】 時, AWS Transform 會透過傳送 CreateGrant 請求至 來代表您建立授予 AWS Key Management Service。中的授予 AWS Key Management Service 用於授予客戶帳戶中 KMS 金鑰的 AWS Transform 存取權。
AWS Transform 需要授予 ,才能將客戶受管金鑰用於下列內部操作:
-
將 【KMS API】 請求傳送至 AWS KMS ,以驗證建立 【資源名稱】 時輸入的對稱客戶受管 KMS 金鑰 ID 是否有效。
-
將 【KMS API】 請求傳送至 AWS KMS ,以產生由客戶受管金鑰加密的資料金鑰。
-
將 【KMS API】 請求傳送至 AWS KMS 以解密加密的資料金鑰,以便用來加密您的資料。
您可以隨時撤銷授予的存取權,或移除服務對客戶受管金鑰的存取權。如果您這麼做, AWS Transform 則無法存取客戶受管金鑰加密的任何資料,這會影響相依於該資料的操作。例如,如果您嘗試從 AWS Transform 無法存取的加密 【資源名稱】 取得 【資源名稱】,則操作會傳回 AccessDeniedException 錯誤。
建立客戶自管金鑰
您可以使用 AWS 管理主控台或 AWS Key Management Service APIs 來建立對稱客戶受管金鑰。
若要建立對稱客戶受管金鑰,請遵循《 AWS Key Management Service 開發人員指南》中的建立對稱客戶受管金鑰的步驟。
若要將客戶受管金鑰與 AWS Transform 資源搭配使用,必須在金鑰政策中允許下列 API 操作:
kms:CreateGrant — 新增客戶自管金鑰的授予。授予控制對指定 KMS 金鑰的存取,允許存取授予操作 AWS Transform 所需的 。如需詳細資訊,請參閱 AWS Key Management Service Developer Guide 中的 Using Grants。
這可讓 AWS Transform 執行下列動作:
-
呼叫 【KMS API (GenerateDataKeyWithoutPlainText/GenerateDatakey) 以產生加密的資料金鑰並將其儲存,因為不會立即使用資料金鑰進行加密。
-
呼叫 【KMS API (Decrypt)】 以使用儲存的加密資料金鑰來存取加密的資料。
-
設定淘汰委託人以允許 服務至 RetireGrant。
-
kms:DescribeKey – 提供客戶受管金鑰詳細資訊,以允許 【服務名稱】 驗證金鑰。
SQL 現代化加密
在 SQL Server 現代化程序期間, 會在您的帳戶中 AWS Transform 建立資源,例如 EC2 執行個體、ECS 叢集、ECR 映像和 S3 物件。您可以選擇提供客戶受管金鑰來加密帳戶中的資料。您需要使用金鑰 CreatedFor 和值 AWSTransform 來標記 KMS 金鑰。如果您沒有預設金鑰政策,此範例政策會列出金鑰政策中所需的最低許可。如果您有預設金鑰政策,除了預設金鑰政策之外,您仍然需要手動更新 KMS 金鑰,以允許 ECS 使用您的金鑰。
"Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws-transform": "*" }, "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/*AWSTransform*" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "ec2.*.amazonaws.com" }, "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/*AWSTransform*" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "ec2.*.amazonaws.com", "ecr.*.amazonaws.com" ] }, "Bool": { "kms:GrantIsForAWSResource": "true" }, "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/*AWSTransform*" } } }, { "Effect": "Allow", "Principal": { "Service": "fargate.amazonaws.com" }, "Action": "kms:GenerateDataKeyWithoutPlaintext", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:ecs:clusterName": "AWSTransform*" } } }, { "Effect": "Allow", "Principal": { "Service": "fargate.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:ecs:clusterName": "AWSTransform*" }, "ForAllValues:StringEquals": { "kms:GrantOperations": "Decrypt" } } } ]
資料庫遷移的加密
在資料庫遷移程序期間, AWS Transform 會使用 AWS Database Migration Service (DMS) 來遷移您的資料庫資料。您可以選擇性地提供客戶受管金鑰,以在遷移期間加密資料庫資料。
下列政策包含三個陳述式。第一個陳述式會授予 AWS KMS 金鑰的根帳戶許可。第二個陳述式允許連接器角色在探索期間驗證金鑰。第三個陳述式允許連接器角色使用 金鑰進行 DMS 操作。
"Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow connector role to validate key during discovery", "Effect": "Allow", "Principal": { "AWS": "connector-role-arn" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "Allow connector role to use key via DMS", "Effect": "Allow", "Principal": { "AWS": "connector-role-arn" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "dms.us-east-1.amazonaws.com" } } } ]
使用客戶自管 KMS 金鑰
建立客戶受管 KMS 金鑰之後, AWS Transform 管理員必須在 AWS Transform 主控台中提供金鑰,以用來加密資料。
若要設定客戶受管金鑰來加密其中的資料 AWS Transform,管理員需要使用 許可 AWS KMS。
若要使用以客戶受管金鑰加密的功能,使用者需要允許 AWS Transform 存取客戶受管金鑰的許可。
如果您在使用 時看到與 KMS 授予相關的錯誤 AWS Transform,您可能需要更新許可, AWS Transform 以允許 建立授予。若要自動設定所需的許可,請前往 AWS Transform 主控台,然後在頁面頂端的橫幅中選擇更新許可。若要允許 AWS Transform 建立授予,您需要更新 AWS Transform 主控台頁面上的許可。
允許 AWS Transform 存取客戶受管金鑰
下列範例政策陳述式透過允許存取金鑰,授予使用者 AWS Transform 存取以客戶受管金鑰加密之功能的許可。 AWS Transform 如果管理員已設定客戶受管金鑰進行加密,則需要使用此政策。
注意
此資訊不適用於使用 CMK 的 SQL Server 現代化部署工作流程。
"Statement": [ { "Sid": "QKMSDecryptGenerateDataKeyPermissions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": [ "arn:aws:kms:arn:aws::111122223333:key/[[key_id]]" ], "Condition": { "StringLike": { "kms:ViaService": [ "q.us-east-1.amazonaws.com" ] } } } ]