

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

# 使用 Lake Formation 標籤型存取控制和具名資源共用資料湖
<a name="share-dl-tbac-tutorial"></a>

本教學課程示範如何設定 AWS Lake Formation ，以安全地與多個公司、組織或業務單位共用存放在資料湖中的資料，而無需複製整個資料庫。 AWS 帳戶 使用 Lake Formation 跨帳戶存取控制，有兩個選項可讓您與另一個資料庫和資料表共用：
+ **Lake Formation 標籤型存取控制 （建議）**

  Lake Formation 標籤型存取控制是一種根據屬性定義許可的授權策略。在 Lake Formation 中，這些屬性稱為 *LF 標籤*。如需更多詳細資訊，請參閱 [使用 Lake Formation 標籤型存取控制管理資料湖](managing-dl-tutorial.md)。
+ **Lake Formation 命名資源**

  Lake Formation 命名的資源方法是一種授權策略，可定義資源的許可。資源包括資料庫、資料表和資料欄。資料湖管理員可以指派和撤銷 Lake Formation 資源的許可。如需更多詳細資訊，請參閱 [Lake Formation 中的跨帳戶資料共用](cross-account-permissions.md)。

  如果資料湖管理員偏好將許可明確授予個別資源，建議使用具名資源。當您使用具名資源方法將 Data Catalog 資源的 Lake Formation 許可授予外部帳戶時，Lake Formation 會使用 AWS Resource Access Manager (AWS RAM) 來共用資源。

**Topics**
+ [

## 目標對象
](#tut-share-tbac-roles)
+ [

## 在生產者帳戶中設定 Lake Formation Data Catalog 設定
](#tut-share-tbac-LF-settings)
+ [

## 步驟 1：使用 AWS CloudFormation 範本佈建資源
](#tut-tbac-share-provision-resources)
+ [

## 步驟 2：Lake Formation 跨帳戶共用先決條件
](#cross-account-share-prerequisistes)
+ [

## 步驟 3：使用標籤型存取控制方法實作跨帳戶共用
](#tut-share-tbac-method)
+ [

## 步驟 4：實作具名資源方法
](#tut-named-resource-method)
+ [

## 步驟 5：清除 AWS 資源
](#share-tbac-clean-up-db)

## 目標對象
<a name="tut-share-tbac-roles"></a>



本教學課程適用於資料管理員、資料工程師和資料分析師。在 Lake Formation 中共用 Data Catalog 資料表 AWS Glue 和管理許可時，生產帳戶中的資料管理員會根據其支援的功能擁有功能所有權，並且可以授予各種取用者、外部組織和帳戶的存取權。下表列出本教學課程中使用的角色：


| Role | Description | 
| --- | --- | 
| DataLakeAdminProducer | 資料湖管理員 IAM 使用者具有下列存取權：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/share-dl-tbac-tutorial.html) | 
| DataLakeAdminConsumer |  資料湖管理員 IAM 使用者具有下列存取權： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/share-dl-tbac-tutorial.html)  | 
| DataAnalyst | DataAnalyst 使用者具有下列存取權：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/share-dl-tbac-tutorial.html) | 

## 在生產者帳戶中設定 Lake Formation Data Catalog 設定
<a name="tut-share-tbac-LF-settings"></a>

開始本教學課程之前，您必須擁有可用於以具有正確許可的管理使用者身分登入 AWS 帳戶 的 。如需詳細資訊，請參閱[完成初始 AWS 組態任務](getting-started-setup.md#initial-aws-signup)。

本教學課程假設您熟悉 IAM。如需 IAM 的相關資訊，請參閱 [IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)。

**在生產者帳戶中設定 Lake Formation Data Catalog 設定**
**注意**  
 在本教學課程中，具有來源資料表的帳戶稱為生產者帳戶，而需要存取來源資料表的帳戶稱為取用者帳戶。

Lake Formation 提供自己的許可管理模型。為了維持與 IAM 許可模型的回溯相容性，預設會將`Super`許可授予所有現有 AWS Glue Data Catalog 資源`IAMAllowedPrincipals`上的 群組。此外，對新的 Data Catalog 資源**僅啟用 IAM 存取控制設定**。本教學課程使用 Lake Formation 許可的精細存取控制，並使用 IAM 政策進行粗略精細存取控制。如需詳細資訊，請參閱 [精細存取控制的方法](access-control-fine-grained.md)。因此，在使用 AWS CloudFormation 範本進行快速設定之前，您需要變更生產者帳戶中的 Lake Formation Data Catalog 設定。
**重要**  
此設定會影響所有新建立的資料庫和資料表，因此我們強烈建議在非生產帳戶或新帳戶中完成此教學課程。此外，如果您使用的是共用帳戶 （例如公司的開發帳戶），請確定它不會影響其他資源。如果您偏好保留預設安全設定，則必須在將資源分享至其他帳戶時完成額外的步驟，在該帳戶中，您必須撤銷資料庫或資料表`IAMAllowedPrincipals`上來自 的預設**超級**許可。我們稍後會討論本教學課程的詳細資訊。

若要在生產者帳戶中設定 Lake Formation Data Catalog 設定，請完成下列步驟：

1.  AWS 管理主控台 使用生產者帳戶以管理員使用者身分登入 ，或以具有 Lake Formation `PutDataLakeSettings` API 許可的使用者身分登入 。

1. 在 Lake Formation 主控台的導覽窗格中的資料**目錄**下，選擇**設定**。

1. 取消選取 **僅對新資料庫使用 IAM 存取控制**，並**僅對新資料庫中的新資料表使用 IAM 存取控制**

   選擇**儲存**。  
![\[Data catalog settings interface for AWS Lake Formation with permission options.\]](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/tbac-tut-settings.jpg)

   此外，您可以在**管理角色和任務**、**資料庫建立者**`IAMAllowedPrincipals`下移除 的`CREATE_DATABASE`許可。只有在那時，您才可以管理誰可以透過 Lake Formation 許可建立新的資料庫。

## 步驟 1：使用 AWS CloudFormation 範本佈建資源
<a name="tut-tbac-share-provision-resources"></a>

生產者帳戶的 CloudFormation 範本會產生下列資源：
+ 做為資料湖的 Amazon S3 儲存貯體。
+ Lambda 函數 （適用於 Lambda 支援的 CloudFormation 自訂資源）。我們使用 函數將範例資料檔案從公有 Amazon S3 儲存貯體複製到您的 Amazon S3 儲存貯體。
+ IAM 使用者和政策：DataLakeAdminProducer。
+ 適當的 Lake Formation 設定和許可，包括：
  + 在生產者帳戶中定義 Lake Formation 資料湖管理員
  + 將 Amazon S3 儲存貯體註冊為 Lake Formation 資料湖位置 （生產者帳戶）
+  AWS Glue Data Catalog 資料庫、資料表和分割區。由於有兩個共用資源的選項 AWS 帳戶，因此此範本會建立兩組不同的資料庫和資料表。

消費者帳戶的 CloudFormation 範本會產生下列資源：
+ IAM 使用者和政策：
  + DataLakeAdminConsumer
  + DataAnalyst
+  AWS Glue Data Catalog 資料庫。此資料庫用於建立共用資源的資源連結。

**在生產者帳戶中建立您的資源**

1. 在美國東部 （維吉尼亞北部） 區域登入 AWS CloudFormation 主控台，網址為 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)。

1. 選擇[啟動堆疊](https://aws-bigdata-blog.s3.amazonaws.com/artifacts/Securely_sharing_data_across_AWS_accounts_using_AWS_Lake_Formation/lakeformation_tutorial_cross_account_producer.yaml)。

1.  選擇**下一步**。

1. 針對**堆疊名稱**，輸入堆疊名稱，例如 `stack-producer`。

1.  在**使用者組態**區段中，輸入 和 `ProducerDatalakeAdminUserName` 的使用者名稱和密碼`ProducerDatalakeAdminUserPassword`。

1. 針對 **DataLakeBucketName**，輸入資料湖儲存貯體的名稱。此名稱必須是全域唯一的。

1. 針對 **DatabaseName** 和 **TableName**，保留預設值。

1. 選擇**下一步**。

1. 在下一頁中，選擇**下一步**。

1.  檢閱最終頁面上的詳細資訊，然後選取**我確認 AWS CloudFormation 可能會建立 IAM 資源**。

1.  選擇**建立**。

   堆疊建立最多可能需要一分鐘。

**在取用者帳戶中建立您的資源**

1. 在美國東部 （維吉尼亞北部） 區域登入 AWS CloudFormation 主控台，網址為 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)。

1. 選擇[啟動堆疊](https://aws-bigdata-blog.s3.amazonaws.com/artifacts/Securely_sharing_data_across_AWS_accounts_using_AWS_Lake_Formation/lakeformation_tutorial_cross_account_consumer.yaml)。

1.  選擇**下一步**。

1. 針對**堆疊名稱**，輸入堆疊名稱，例如 `stack-consumer`。

1.  在**使用者組態**區段中，輸入 和 `ConsumerDatalakeAdminUserName` 的使用者名稱和密碼`ConsumerDatalakeAdminUserPassword`。

1. 針對 `DataAnalystUserName`和 `DataAnalystUserPassword`，輸入您希望資料分析師 IAM 使用者的使用者名稱和密碼。

1. 針對 **DataLakeBucketName**，輸入資料湖儲存貯體的名稱。此名稱必須是全域唯一的。

1. 針對 **DatabaseName**，保留預設值。

1. 針對 `AthenaQueryResultS3BucketName`，輸入存放 Amazon Athena 查詢結果的 Amazon S3 儲存貯體名稱。 Amazon Athena 如果您沒有儲存貯體，[請建立 Amazon S3 儲存貯](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)體。

1. 選擇**下一步**。

1. 在下一頁中，選擇**下一步**。

1.  檢閱最終頁面上的詳細資訊，然後選取**我確認 AWS CloudFormation 可能會建立 IAM 資源**。

1.  選擇**建立**。

   堆疊建立最多可能需要一分鐘。

**注意**  
完成教學課程後，請在 中刪除堆疊 CloudFormation ，以避免產生費用。確認資源在堆疊的事件狀態中已成功刪除。

## 步驟 2：Lake Formation 跨帳戶共用先決條件
<a name="cross-account-share-prerequisistes"></a>

在與 Lake Formation 共用資源之前，標籤型存取控制方法和具名資源方法都有先決條件。

**完整的標籤型存取控制跨帳戶資料共用先決條件**
+ 如需跨帳戶資料共用需求的詳細資訊，請參閱跨帳戶資料共用章節中的[先決條件](cross-account-prereqs.md)一節。

  若要與**跨帳戶版本設定**的第 3 版或更高版本共用 Data Catalog 資源，授予者需要擁有`AWSLakeFormationCrossAccountManager`您帳戶中 AWS 受管政策中定義的 IAM 許可。

  如果您使用的是**跨帳戶版本設定**的第 1 版或第 2 版，則必須先將下列`JSON`許可物件新增至生產者帳戶中的 Data Catalog 資源政策，才能使用標籤型存取控制方法授予跨帳戶存取資源。這可讓消費者帳戶在 `glue:EvaluatedByLakeFormationTags` 為 true 時存取 Data Catalog。此外，對於您使用 Lake Formation 許可標籤將許可授予消費者帳戶的資源，此條件會變成 true。 AWS 帳戶 您要授予許可的每個 都需要此政策。

  下列政策必須在 `Statement`元素內。我們在下一節討論完整的 IAM 政策。

  ```
  {
      "Effect": "Allow",
      "Action": [
          "glue:*"
      ],
      "Principal": {
          "AWS": [
              "consumer-account-id"
          ]
      },
      "Resource": [
          "arn:aws:glue:region:account-id:table/*",
          "arn:aws:glue:region:account-id:database/*",
          "arn:aws:glue:region:account-id:catalog"
      ],
      "Condition": {
          "Bool": {
              "glue:EvaluatedByLakeFormationTags": true
          }
      }
  }
  ```

**完成具名資源方法跨帳戶共用先決條件**

1. 如果您的帳戶中沒有 Data Catalog 資源政策，您照常進行 Lake Formation 跨帳戶授予。不過，如果 Data Catalog 資源政策存在，您必須將下列陳述式新增至其中，以允許跨帳戶授予在使用具名資源方法進行時成功。如果您計劃只使用具名資源方法，或只使用標籤型存取控制方法，您可以略過此步驟。在本教學課程中，我們會評估這兩種方法，而且我們需要新增下列政策。

   下列政策必須在 `Statement`元素內。我們在下一節討論完整的 IAM 政策。

   ```
   {
             "Effect": "Allow",
             "Action": [
             "glue:ShareResource"
             ],
             "Principal": {
               "Service":"ram.amazonaws.com"
             },
             "Resource": [
                 "arn:aws:glue:region:account-id:table/*/*",
                 "arn:aws:glue:region:account-id:database/*",
                 "arn:aws:glue:region:account-id:catalog"
             ]
   }
   ```

1. 接著，使用 AWS Command Line Interface () 新增 AWS Glue Data Catalog 資源政策AWS CLI。

   如果您同時使用標籤型存取控制方法和具名資源方法授予跨帳戶許可，則必須在新增上述政策時將`EnableHybrid`引數設定為「true」。由於 主控台目前不支援此選項，因此您必須使用 `glue:PutResourcePolicy` API 和 AWS CLI。

   首先，建立政策文件 （例如 policy.json) 並新增前兩個政策。將 *consumer-account-id* 取代為 AWS 帳戶 接收授予*的帳戶 ID*、將 *region* 取代為 Data Catalog 的區域，其中包含您授予許可的資料庫和資料表，並將 *account-id* 取代為生產者 AWS 帳戶 ID。

   輸入下列 AWS CLI 命令。將 *glue-resource-policy* 取代為正確的值 （例如 file：//policy.json)。

   ```
   aws glue put-resource-policy --policy-in-json glue-resource-policy --enable-hybrid TRUE
   ```

   如需詳細資訊，請參閱 [put-resource-policy。](https://docs.aws.amazon.com/cli/latest/reference/glue/put-resource-policy.html)

## 步驟 3：使用標籤型存取控制方法實作跨帳戶共用
<a name="tut-share-tbac-method"></a>

在本節中，我們會逐步引導您完成下列高階步驟：

1.  定義 LF 標籤。

1.  將 LF 標籤指派給目標資源。

1. 將 LF-Tag 許可授予取用者帳戶。

1. 將資料許可授予取用者帳戶。

1. 或者，撤銷資料庫、資料表和資料欄`IAMAllowedPrincipals`上的 許可。

1. 建立共用資料表的資源連結。

1.  建立 LF 標籤並將其指派給目標資料庫。

1.  將 LF-Tag 資料許可授予取用者帳戶。

**定義 LF 標籤**
**注意**  
如果您已登入您的生產者帳戶，請先登出，再完成下列步驟。

1. 在 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 以資料湖管理員身分登入生產者帳戶。使用您在堆疊建立期間 CloudFormation 指定的生產者帳號、IAM 使用者名稱 （預設值為 `DatalakeAdminProducer`) 和密碼。

1. 在 Lake Formation 主控台 ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)) 的導覽窗格中，於**許可**下，選擇 **LF 標籤和許可**。

1. 選擇**新增 LF 標籤**。

**將 LF 標籤指派給目標資源**

將 LF-Tag 指派給目標資源，並將資料許可授予另一個帳戶

身為資料湖管理員，您可以將標籤連接至資源。如果您計劃使用單獨的角色，您可能需要授予描述和連接到單獨角色的許可。

1. 在導覽窗格中的資料**目錄**下，選取**資料庫**。

1. 選取目標資料庫`(lakeformation_tutorial_cross_account_database_tbac)`，然後在**動作**功能表上，選擇**編輯 LF 標籤**。

   在本教學課程中，您可以將 LF 標籤指派給資料庫，但您也可以將 LF 標籤指派給資料表和資料欄。

1. 選擇**指派新的 LF 標籤**。

1. 新增索引鍵 `Confidentiality` 和值 `public`。

1.  選擇**儲存**。

**將 **LF-Tag** 許可授予取用者帳戶**

仍在生產者帳戶中，將存取 LF-Tag 的許可授予取用者帳戶。

1. 在導覽窗格**的許可**下，選擇 **LF 標籤和許可**。

1. 選擇 **LF-Tags** 索引標籤，然後選擇與消費者帳戶共用的 LF-Tag **金鑰**和**值** (**金鑰**`Confidentiality`和**值** `public`)。

1. 選擇 **授予許可**。

1. 針對**許可類型**，選擇 **LF-Tag 鍵/值對許可。**

1. 針對**委託人**，選擇**外部帳戶**。

1. 輸入目標 **AWS 帳戶 ID**。

   AWS 帳戶 在相同組織中會自動出現。否則，您必須手動輸入 AWS 帳戶 ID。

1. 在**許可**下，選取**描述**。

   這是提供給消費者帳戶的許可。可授予許可是消費者帳戶可授予其他委託人的許可。

1. 選擇 **Grant** (授予)。

   此時，消費者資料湖管理員應該能夠在**許可**、**LF 標籤和許可下，找到透過消費者帳戶 Lake Formation 主控台共用的政策標籤**。

**將資料許可授予取用者帳戶**

我們現在將透過指定 LF-Tag 表達式，並授予取用者帳戶存取符合表達式之任何資料表或資料庫的權限，來提供資料存取權給取用者帳戶。

1. 在導覽窗格**的許可**、**資料湖許可**下，選擇**授予**。

1. 針對**委託人**，選擇**外部帳戶**，然後輸入目標 AWS 帳戶 ID。

1. 對於 **LF 標籤或目錄資源**，選擇與消費者帳戶共用的 **LF 標籤**的**索引鍵**和**值** (**索引鍵**`Confidentiality`和**值** `public`)。

1. 針對**許可**，**在與 LF-Tags 相符的資源 （建議）** 下，選擇**新增 LF-Tag**。

1. 選取與消費者帳戶共用之標籤的**索引鍵**和**值** （索引鍵`Confidentiality`和值 `public`)。

1. 針對**資料庫許可**，選取**資料庫許可**下的**描述**，以授予資料庫層級的存取許可。

1. 消費者資料湖管理員應該能夠在 Lake Formation 主控台 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 的**許可**、**管理角色和任務**、**LF 標籤下，找到透過消費者帳戶共用的政策標籤**。

1. 選取**授予許可**下的**描述**，讓取用者帳戶可以將資料庫層級許可授予其使用者。

1. 針對**資料表和資料欄許可**，選取**資料表許可**下的**選取**和**描述**。

1. 選取**可授予許可**下的**選取**和**描述**。

1. 選擇 **Grant** (授予)。

**在資料庫、資料表和資料欄`IAMAllowedPrincipals`上撤銷 的許可 （選用）。**

在本教學課程一開始，您已變更 Lake Formation Data Catalog 設定。如果您略過該部分，則需要此步驟。如果您變更 Lake Formation Data Catalog 設定，您可以略過此步驟。

在此步驟中，我們需要撤銷資料庫或資料表`IAMAllowedPrincipals`上來自 的預設**超級**許可。如需詳細資訊，請參閱 [步驟 4：將資料存放區切換至 Lake Formation 許可模型](upgrade-glue-lake-formation.md#upgrade-glue-lake-formation-step4)。

在撤銷 的許可之前`IAMAllowedPrincipals`，請確定您已透過 Lake Formation 授予現有 IAM 主體必要的許可。這包括三個步驟：

1. 使用 Lake Formation `GetDataAccess`動作 （使用 IAM 政策） 將 IAM 許可新增至目標 IAM 使用者或角色。

1.  授予具有 Lake Formation 資料許可 （變更、選取等） 的目標 IAM 使用者或角色。

1. 然後，撤銷 的許可`IAMAllowedPrincipals`。否則，在撤銷 的許可後`IAMAllowedPrincipals`，現有的 IAM 主體可能無法再存取目標資料庫或 Data Catalog。

   當您想要套用 Lake Formation 許可模型 （而非 IAM 政策模型），以使用 Lake Formation 許可模型管理單一帳戶內或多個帳戶之間的使用者存取權時，`IAMAllowedPrincipals`需要撤銷 的**超級**許可。對於要保留傳統 `IAMAllowedPrincipals` IAM 政策模型的其他資料表，您不需要撤銷 的許可。

   此時，消費者帳戶資料湖管理員應該能夠在 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 的 Lake Formation 主控台、**Data Catalog 資料庫下，找到透過消費者帳戶共用的資料庫**和資料表。如果沒有，請確認是否已正確設定下列項目：

   1. 正確的政策標籤和值會指派給目標資料庫和資料表。

   1. 正確的標籤許可和資料許可會指派給取用者帳戶。

   1. 在資料庫或資料表`IAMAllowedPrincipals`上從 撤銷預設超級許可。

**建立共用資料表的資源連結**

在帳戶之間共用資源時，共用資源不會放入消費者帳戶的資料目錄中。為了讓它們可用，並使用 Athena 等服務查詢共用資料表的基礎資料，我們需要建立共用資料表的資源連結。資源連結是 Data Catalog 物件，它是本機或共用資料庫或資料表的連結。如需詳細資訊，請參閱[建立資源連結](creating-resource-links.md)。透過建立資源連結，您可以：
+ 將不同的名稱指派給符合 Data Catalog 資源命名政策的資料庫或資料表。
+ 使用 Athena 和 Redshift Spectrum 等服務來查詢共用資料庫或資料表。

若要建立資源連結，請完成下列步驟：

1. 如果您已登入您的消費者帳戶，請登出。

1. 以消費者帳戶資料湖管理員身分登入。使用您在 CloudFormation 堆疊建立期間指定的消費者帳戶 ID、IAM 使用者名稱 （預設 DatalakeAdminConsumer) 和密碼。

1. 在 Lake Formation 主控台 ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)：//) 的導覽窗格中的資料**目錄、資料庫**下，選擇共用資料庫 `lakeformation_tutorial_cross_account_database_tbac`。

   如果您沒有看到資料庫，請重新檢視先前的步驟，以查看是否已正確設定所有項目。

1. 選擇**檢視資料表**。

1. 選擇共用資料表 `amazon_reviews_table_tbac`。

1. 在**動作**功能表中，選擇**建立資源連結**。

1. 針對**資源連結名稱**，輸入名稱 （本教學課程為 `amazon_reviews_table_tbac_resource_link`)。

1. 在**資料庫**下，選取資源連結建立所在的資料庫 （在此文章中，n CloudFormation堆疊已建立資料庫 `lakeformation_tutorial_cross_account_database_consumer`)。

1. 選擇**建立**。

   資源連結會顯示在**資料目錄** **Tables** 下方。

**建立 LF 標籤並將其指派給目標資料庫**

Lake Formation 標籤位於與 資源相同的 Data Catalog 中。這表示在生產者帳戶中建立的標籤在授予取用者帳戶中資源連結的存取權時無法使用。您需要在取用者帳戶中建立一組單獨的 LF 標籤，以便在共用取用者帳戶中的資源連結時使用 LF 標籤型存取控制。

1. 定義消費者帳戶中的 LF 標籤。在本教學課程中，我們使用金鑰`Division`和值 `sales`、 `marketing`和 `analyst`。

1. 將 LF 標籤索引鍵`Division`和值`analyst`指派給建立資源連結`lakeformation_tutorial_cross_account_database_consumer`的資料庫 。

**將 LF 標籤資料許可授予消費者**

最後，將 LF 標籤資料許可授予消費者。

1. 在導覽窗格**的許可**、**資料湖許可**下，選擇**授予**。

1. 針對**主體**，選擇 **IAM 使用者和角色**，然後選擇使用者 `DataAnalyst`。

1.  針對 **LF 標籤或目錄資源**，選擇**符合 LF 標籤的資源 **（建議）。

1. 選擇**關鍵**部門和**價值**分析師。

1. 針對**資料庫許可**，選取**資料庫許可**下的**描述**。

1. 針對**資料表和資料欄許可**，選取**資料表許可**下的**選取**和**描述**。

1. 選擇 **Grant** (授予)。

1. 針對使用者 重複這些步驟`DataAnalyst`，其中 LF-Tag 金鑰為 `Confidentiality`，值為 `public`。

   此時，消費者帳戶中的資料分析師使用者應該能夠找到資料庫和資源連結，並透過位於 https：//[https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) 的 Athena 主控台查詢共用資料表。如果沒有，請確認是否已正確設定下列項目：
   + 系統會為共用資料表建立資源連結
   + 您已授予使用者對生產者帳戶共用的 LF-Tag 的存取權
   + 您已授予使用者存取與資源連結和在其中建立資源連結之資料庫相關聯的 LF-Tag
   + 檢查您是否已將正確的 LF 標籤指派給資源連結，以及資源連結建立所在的資料庫

## 步驟 4：實作具名資源方法
<a name="tut-named-resource-method"></a>

若要使用具名資源方法，我們會逐步引導您完成下列高階步驟：

1. 或者，在資料庫、資料表和資料欄`IAMAllowedPrincipals`上撤銷 的許可。

1. 將資料許可授予取用者帳戶。

1. 接受來自 的資源共用 AWS Resource Access Manager。

1. 建立共用資料表的資源連結。

1. 將共用資料表的資料許可授予取用者。

1. 將資源連結的資料許可授予取用者。

**在資料庫、資料表和資料欄`IAMAllowedPrincipals`上撤銷 的許可 （選用）**
+ 在本教學課程一開始，我們變更了 Lake Formation Data Catalog 設定。如果您略過該部分，則需要此步驟。如需說明，請參閱上一節中的選用步驟。

**將資料許可授予取用者帳戶**

1. 
**注意**  
如果您以另一個使用者身分登入生產者帳戶，請先登出。

   使用生產者帳戶資料湖管理員，使用 CloudFormation 堆疊建立期間指定的 AWS 帳戶 ID、IAM 使用者名稱 （預設為 `DatalakeAdminProducer`) 和密碼，登入位於 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)：// 的 Lake Formation 主控台。

1. 在**許可**頁面**的資料湖許可**下，選擇**授予**。

1. 在**主體**下，選擇**外部帳戶**，然後輸入一或多個 AWS 帳戶 IDs或 AWS 組織 IDs。如需詳細資訊，請參閱：[AWS Organizations](https://aws.amazon.com/organizations/)。

   生產者帳戶所屬的組織和 AWS 帳戶 同一組織內的組織會自動顯示。否則，請手動輸入帳戶 ID 或組織 ID。

1. 針對 **LF 標籤或目錄資源**，選擇 `Named data catalog resources`。

1. 在**資料庫**下，選擇資料庫 `lakeformation_tutorial_cross_account_database_named_resource`。

1. 選擇**新增 LF 標籤**。

1. 在**資料表**下，選擇**所有資料表**。

1. 針對**資料表資料欄許可**̧ 選擇**選取**，並在**資料表許可**下**描述**。

1. Select**Select** 和 **Describe**，在**可授予許可**下。

1. 或者，對於**資料許可**，如果需要資料**欄層級許可管理，請選擇簡易資料欄型存取**。

1. 選擇 **Grant** (授予)。

如果您尚未撤銷 的許可`IAMAllowedPrincipals`，您會收到**授予許可**失敗錯誤。此時，您應該會在**許可、資料許可**下看到透過 AWS RAM 與取用者帳戶共用的目標資料表。

**從 接受資源共用 AWS RAM**
**注意**  
此步驟僅適用於 AWS 帳戶以組織為基礎的共用，而非以組織為基礎的共用。

1. 使用 CloudFormation 在堆疊建立期間指定的 IAM 使用者名稱 （預設為 DatalakeAdminConsumer) 和密碼，使用消費者帳戶資料湖管理員登入位於 [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/)：// 的 AWS 主控台。

1. 在 AWS RAM 主控台的導覽窗格中，**在與我共用、資源共用**下，選擇共用的 Lake Formation 資源。**狀態**應為**待定**。

1. 選擇**動作**和**授予**。

1. 確認資源詳細資訊，然後選擇**接受資源共用**。

   此時，消費者帳戶資料湖管理員應該能夠在 Lake Formation 主控台 ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)****：//) 的 **Data Catalog** 資料庫下找到共用資源。

**建立共用資料表的資源連結**
+ 遵循 [步驟 3：使用標籤型存取控制方法實作跨帳戶共用](#tut-share-tbac-method)（步驟 6) 中的指示，為共用資料表建立資源連結。命名資源連結 `amazon_reviews_table_named_resource_resource_link`。在資料庫中建立資源連結`lakeformation_tutorial_cross_account_database_consumer`。

**將共用資料表的資料許可授予取用者**

若要將共用資料表的資料許可授予取用者，請完成下列步驟：

1. 在 Lake Formationconsole ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)：//) 的**許可**、**資料湖許可**下，選擇**授予**。

1. 針對**主體**，選擇 **IAM 使用者和角色**，然後選擇使用者 `DataAnalyst`。

1. 針對 **LF 標籤或目錄資源**，選擇**具名資料目錄資源**。

1. 在**資料庫**下，選擇資料庫 `lakeformation_tutorial_cross_account_database_named_resource`。如果您在下拉式清單中看不到資料庫，請選擇**載入更多**。

1.  在**資料表**下，選擇資料表 `amazon_reviews_table_named_resource`。

1. 針對**資料表和資料欄許可**，選取**資料表許可**下的**選取**和**描述**。

1. 選擇 **Grant** (授予)。

**將資源連結的資料許可授予取用者**

除了授予資料湖使用者存取共用資料表的許可之外，您也需要授予資料湖使用者存取資源連結的許可。

1. 在 Lake Formation 主控台 ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)) 的**許可**、**資料湖許可**下，選擇**授予**。

1. 針對**主體**，選擇 **IAM 使用者和角色**，然後選擇使用者 `DataAnalyst`。

1. 針對 **LF 標籤或目錄資源**，選擇**具名資料目錄資源**。

1. 在**資料庫**下，選擇資料庫 `lakeformation_tutorial_cross_account_database_consumer`。如果您在下拉式清單中看不到資料庫，請選擇**載入更多**。

1.  在**資料表**下，選擇資料表 `amazon_reviews_table_named_resource_resource_link`。

1. 針對**資源連結許可**，選取**資源連結許可**下的**描述**。

1. 選擇 **Grant** (授予)。

   此時，消費者帳戶中的資料分析師使用者應該能夠找到資料庫和資源連結，並透過 Athena 主控台查詢共用資料表。

   如果沒有，請確認是否已正確設定下列項目：
   + 系統會為共用資料表建立資源連結
   + 您已授予使用者對生產者帳戶共用之資料表的存取權
   + 您已授予使用者對資源連結和建立資源連結之資料庫的存取權

## 步驟 5：清除 AWS 資源
<a name="share-tbac-clean-up-db"></a>

若要避免不必要的費用 AWS 帳戶，您可以刪除用於本教學課程 AWS 的資源。

1. 使用生產者帳戶登入 Lake Formation 主控台，網址為 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)：//：
   + AWS Resource Access Manager 資源共用
   + Lake Formation 標籤
   + CloudFormation 堆疊
   + Lake Formation 設定
   + AWS Glue Data Catalog

1. 使用消費者帳戶登入 Lake Formation 主控台，網址為 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)：//：
   + Lake Formation 標籤
   + CloudFormation 堆疊