

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 跨 AWS 帳戶註冊加密的 Amazon S3 位置
<a name="register-cross-encrypted"></a>

AWS Lake Formation 與 [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)(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 帳戶 B 中註冊 AWS KMS加密的 AWS Identity and Access Management Amazon S3 儲存貯體需要下列許可：
+ 帳戶 A 中的角色必須授予帳戶 B 中儲存貯體的許可。
+ 帳戶 B 中的儲存貯體政策必須授予帳戶 A 中角色的存取許可。
+ 如果 KMS 金鑰位於帳戶 B 中，金鑰政策必須授予帳戶 A 中角色的存取權，而帳戶 A 中的角色必須授予 KMS 金鑰的許可。

在下列程序中，您會在包含 Data Catalog AWS 的帳戶中建立角色 （先前討論中的帳戶 A)。然後，您可以使用此角色來註冊位置。Lake Formation 在存取 Amazon S3 中的基礎資料時擔任此角色。擔任的角色具有 KMS 金鑰所需的許可。因此，您不需要將 KMS 金鑰的許可授予使用 ETL 任務或整合服務存取基礎資料的委託人，例如 Amazon Athena。

**重要**  
您無法使用 Lake Formation 服務連結角色來註冊另一個帳戶中的位置。您必須改用使用者定義的角色。角色必須符合 中的要求[用於註冊位置的角色需求](registration-role.md)。如需服務連結角色的詳細資訊，請參閱[Lake Formation 的服務連結角色許可](service-linked-roles.md#service-linked-role-permissions)。

**開始之前**  
檢閱[用於註冊位置的角色需求](registration-role.md)。

**跨 AWS 帳戶註冊加密的 Amazon S3 位置**

1. 在與 Data Catalog 相同的 AWS 帳戶中，登入 AWS 管理主控台 並在 開啟 IAM 主控台[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 建立新的角色或檢視符合 中需求的現有角色[用於註冊位置的角色需求](registration-role.md)。確保角色包含授予 Amazon S3 位置許可的政策。

1. 如果 KMS 金鑰不在與 Data Catalog 相同的帳戶中，請將內嵌政策新增至角色，以授予 KMS 金鑰所需的許可。政策範例如下。將區域和帳戶 ID 取代為 KMS 金鑰的區域和帳戶號碼。以金鑰 ID 取代 *<key-id>*。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
           "Effect": "Allow",
           "Action": [
               "kms:Encrypt",
               "kms:Decrypt",
               "kms:ReEncrypt*",
               "kms:GenerateDataKey*",
               "kms:DescribeKey"
            ],
           "Resource": "arn:aws:kms:us-east-1:111122223333:key/<key-id>"
           }
       ]
   }
   ```

------

1. 在 Amazon S3 主控台上，新增儲存貯體政策，將所需的 Amazon S3 許可授予角色。以下為儲存貯體政策的範例。將帳戶 ID 取代為 AWS Data Catalog 的帳號，將 *<role-name>* 取代為您的角色名稱，將 *<bucket-name>* 取代為儲存貯體名稱。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect":"Allow",
               "Principal": {
                   "AWS":"arn:aws:iam::111122223333:role/<role-name>"
               },
               "Action":"s3:ListBucket",
               "Resource":"arn:aws:s3:::<bucket-name>"
           },
           {
               "Effect":"Allow",
               "Principal": {
                   "AWS":"arn:aws:iam::111122223333:role/<role-name>"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource":"arn:aws:s3:::<bucket-name>/*"
           }
       ]
   }
   ```

------

1. 在 中 AWS KMS，將角色新增為 KMS 金鑰的使用者。

   1. 在 https：//[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) 開啟 AWS KMS 主控台。然後，以管理員使用者身分登入，或以可以修改用於加密位置之 KMS 金鑰的金鑰政策的使用者身分登入。

   1. 在導覽窗格中，選擇**客戶受管金鑰**，然後選擇 KMS 金鑰的名稱。

   1. 在 KMS 金鑰詳細資訊頁面的**金鑰政策**索引標籤下，如果金鑰政策的 JSON 檢視未顯示，請選擇**切換到政策檢視**。

   1. 在**金鑰政策**區段中，選擇**編輯**，然後將角色的 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 金鑰](https://docs.amazonaws.cn/en_us/kms/latest/developerguide/key-policy-modifying-external-accounts.html)。

       

1. 在 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 開啟 AWS Lake Formation 主控台。以資料湖管理員身分登入 Data Catalog AWS 帳戶。

1. 在導覽窗格的**管理**下，選擇**資料湖位置**。

1. 選擇**註冊位置**。

1. 在**註冊位置頁面上**，針對 **Amazon S3 路徑**，輸入位置路徑為 **s3://*<bucket>*/*<prefix>***。將 *<bucket>* 取代為儲存貯體的名稱，並將 *<prefix>* 取代為位置的其餘路徑。
**注意**  
您必須輸入路徑，因為當您選擇**瀏覽**時，跨帳戶儲存貯體不會出現在清單中。

1. 針對 **IAM 角色**，從步驟 2 選擇角色。

1. 選擇**註冊位置**。