本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Lake Formation 與 AWS Key Management Service(AWS KMS) 整合,可讓您更輕鬆地設定其他整合服務,以加密和解密 Amazon Simple Storage Service (Amazon S3) 位置中的資料。
AWS 受管金鑰 支援客戶受管金鑰和 。不支援用戶端加密/解密。
重要
避免註冊已啟用請求者付款的 Amazon S3 儲存貯體。對於向 Lake Formation 註冊的儲存貯體,用於註冊儲存貯體的角色一律會被視為請求者。如果儲存貯體是由另一個 AWS 帳戶存取,則如果角色屬於與儲存貯體擁有者相同的 帳戶,則儲存貯體擁有者需要支付資料存取的費用。
本節說明如何在下列情況下註冊 Amazon S3 位置:
-
Amazon S3 位置中的資料會使用在 中建立的KMS金鑰加密 AWS KMS。
-
Amazon S3 位置不在與 相同的 AWS 帳戶中 AWS Glue Data Catalog。
-
KMS 金鑰與 Data Catalog 位於或不在相同的 AWS 帳戶中。
使用 AWS 帳戶 A 中的 (IAM) 角色在 AWS Identity and Access Management AWS 帳戶 B 中註冊 AWS KMS–加密的 Amazon S3 儲存貯體需要下列許可:
-
帳戶 A 中的角色必須授予帳戶 B 中儲存貯體的許可。
-
帳戶 B 中的儲存貯體政策必須授予帳戶 A 中角色的存取權。
-
如果KMS金鑰位於帳戶 B 中,則金鑰政策必須授予帳戶 A 中角色的存取權,而帳戶 A 中的角色必須授予KMS金鑰的許可。
在下列程序中,您會在包含資料目錄 (先前討論中的帳戶 A) 的 AWS 帳戶中建立角色。然後,您可以使用此角色來註冊位置。Lake Formation 在存取 Amazon S3 中的基礎資料時擔任此角色。擔任的角色具有KMS金鑰所需的許可。因此,您不需要將KMS金鑰的許可授予使用ETL任務或整合服務存取基礎資料的主體,例如 Amazon Athena。
重要
您不能使用 Lake Formation 服務連結角色來註冊另一個帳戶中的位置。您必須改用使用者定義的角色。角色必須符合 中的要求用於註冊位置的角色需求。如需服務連結角色的詳細資訊,請參閱Lake Formation 的服務連結角色許可。
開始之前
檢閱用於註冊位置 的角色需求。
跨 AWS 帳戶註冊加密的 Amazon S3 位置
-
在與 Data Catalog 相同的 AWS 帳戶中,登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
建立新的角色或檢視符合 中需求的現有角色用於註冊位置的角色需求。確保角色包含授予 Amazon S3 位置許可的政策。
-
如果KMS金鑰不在與 Data Catalog 相同的帳戶中,請將內嵌政策新增至角色,以授予KMS金鑰所需的許可。政策範例如下。Replace (取代)
<cmk-region>
以及<cmk-account-id>
金鑰的區域和帳戶號碼KMS。Replace (取代)<key-id>
金鑰 ID。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
<cmk-region>
:<cmk-account-id>
:key/<key-id>
" } ] } -
在 Amazon S3 主控台上,新增儲存貯體政策,將所需的 Amazon S3 許可授予角色。以下為儲存貯體政策的範例。Replace (取代)
<catalog-account-id>
Data Catalog 的 AWS 帳戶號碼,<role-name>
您的角色名稱,以及<bucket-name>
儲存貯體的名稱。{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::
<catalog-account-id>
:role/<role-name>
" }, "Action":"s3:ListBucket", "Resource":"arn:aws:s3:::<bucket-name>
" }, { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::<catalog-account-id>
:role/<role-name>
" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource":"arn:aws:s3:::<bucket-name>
/*" } ] } -
在 中 AWS KMS,將角色新增為KMS金鑰的使用者。
-
開啟 AWS KMS 主控台,以 https://console.aws.amazon.com/kms 為單位
。然後,以管理員使用者身分登入,或以使用者身分登入,以修改用於加密位置之金鑰的KMS金鑰政策。 -
在導覽窗格中,選擇客戶受管金鑰 ,然後選擇KMS金鑰的名稱。
-
在KMS金鑰詳細資訊頁面的金鑰政策索引標籤下,如果未顯示金鑰政策的JSON檢視,請選擇切換至政策檢視 。
-
在金鑰政策區段中,選擇編輯 ,並將角色的 Amazon Resource Name (ARN) 新增至
Allow use of the key
物件,如下列範例所示。注意
如果該物件遺失,請使用範例所示的許可新增物件。
... { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
<catalog-account-id>
:role/<role-name>
" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, ...如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南 中的允許其他帳戶中的使用者使用KMS金鑰
。
-
-
在 開啟 AWS Lake Formation 主控台https://console.aws.amazon.com/lakeformation/
。以資料湖管理員身分登入 Data Catalog AWS 帳戶。 -
在導覽窗格中的管理 下,選擇 Data lake 位置 。
-
選擇註冊位置 。
-
在註冊位置頁面上,針對 Amazon S3 路徑 ,輸入位置路徑為
s3://
。Replace (取代)<bucket>
/<prefix>
<bucket>
儲存貯體的名稱和<prefix>
位置的其餘路徑。注意
您必須輸入路徑,因為當您選擇瀏覽 時,跨帳戶儲存貯體不會出現在清單中。
-
對於IAM角色 ,請從步驟 2 中選擇角色。
-
選擇註冊位置 。