

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

# 存取共用聯合目錄
<a name="catalog-resource-link"></a>

 AWS Lake Formation 跨帳戶功能可讓使用者安全地跨多個 AWS 帳戶、 AWS 組織共用分散式資料湖，或直接與另一個帳戶中的 IAM 主體共用，以便精細存取中繼資料和基礎資料。

Lake Formation 使用 AWS Resource Access Manager (AWS RAM) 服務來促進資源共用。當您與其他帳戶共用目錄資源時， 會 AWS RAM 傳送邀請給承授者帳戶，以接受或拒絕資源授予。

Amazon Athena 和 Redshift Spectrum 等整合式分析服務需要資源連結，才能在查詢中包含共用資源。委託人需要在 中建立資源連結 AWS Glue Data Catalog ，以從另一個資源共用資源 AWS 帳戶。如需資源連結的詳細資訊，請參閱[資源連結如何在 Lake Formation 中運作](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html)。

*目錄連結容器*是 Data Catalog 物件，參考來自其他 AWS 帳戶的本機或跨帳戶聯合資料庫層級目錄。您也可以在目錄連結容器中建立資料庫連結和資料表連結。當您建立資料庫連結或資料表連結時，您必須指定位於相同目標 Amazon Redshift 資料庫層級目錄 (Amazon Redshift 資料庫） 下的目標資源。

若要建立目錄連結容器，您需要 Lake Formation `CREATE_CATALOG`或 `glue:CreateCatalog`許可。

 您必須擁有**跨帳戶版本設定**第 4 AWS 帳戶版或更新版本，才能跨 共用聯合目錄中的資料庫或資料表。

## 建立跨帳戶聯合目錄的目錄連結容器
<a name="create-resource-link-catalog"></a>

您可以使用 AWS Lake Formation 主控台、`CreateCatalog`API 或 AWS Command Line Interface ()， AWS Glue 建立指向任何 AWS 區域中 Redshift 資料庫層級聯合目錄的目錄連結容器AWS CLI。

**建立目錄連結容器至共用目錄 （主控台）**

1. 在 https：//[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) 開啟 AWS Lake Formation 主控台。以具有 Lake Formation `CREATE_CATALOG`許可的委託人身分登入。

1. 在導覽窗格中，選擇**目錄**，然後選擇**建立目錄**。

1. 在**設定目錄詳細資訊**頁面上，提供下列資訊：  
**名稱**  
輸入與目錄名稱遵守相同規則的名稱。名稱可以與目標共用目錄相同。  
**Type**  
選擇**目錄連結容器**做為目錄類型。  
**來源**  
選擇 `Redshift`。  
**目標 Redshift 目錄**  
選取 Redshift 資料庫層級聯合目錄，或從清單中選擇本機 （擁有） 目錄。  
此清單包含與您的帳戶共用的所有目錄。請注意，目錄擁有者帳戶 ID 會與每個目錄一起列出。如果您沒有看到您知道已與 帳戶共用的目錄，請檢查下列項目：  
   + 如果您不是資料湖管理員，請檢查資料湖管理員是否授予目錄上的 Lake Formation 許可。
   + 如果您是資料湖管理員，而且您的帳戶與授予帳戶不在同一個 AWS 組織中，請確定您已接受目錄的 AWS Resource Access Manager (AWS RAM) 資源共享邀請。如需詳細資訊，請參閱[從 接受資源共享邀請 AWS RAM](accepting-ram-invite.md)。
透過主控台建立目錄連結容器時，嘗試選取跨帳戶 **Redshift 目錄時，可能會顯示目標** Redshift 目錄下拉式清單。 `No matches`雖然有此顯示，但您可以在輸入欄位中輸入 Amazon Redshift 聯合資料庫層級目錄 (Amazon Redshift 資料庫） 的目標 ARN，表單仍會正常運作。例如：`arn:aws:glue:us-east-1:123456789012:catalog/federated-catalog-redshift/dev`。  
發生此行為是因為主控台只能搜尋目前登入帳戶中的潛在候選者。下拉式清單旨在作為自動完成功能，但您仍然可以手動輸入 ARNs 以進行跨帳戶存取。

1. 為了讓 Apache Iceberg 查詢引擎能夠讀取和寫入 Amazon Redshift 命名空間， 會使用執行讀取和寫入操作所需的運算和儲存資源來 AWS Glue 建立受管 Amazon Redshift 叢集，而不會影響 Amazon Redshift 資料倉儲工作負載。您需要為 IAM 角色提供將資料傳輸到 Amazon S3 儲存貯體，以及從該儲存貯體傳輸資料所需的權限。

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

1. （選用） 選擇**新增許可**，將許可授予其他委託人。

   不過，授予目錄連結容器的許可並不會授予目標 （連結） 目錄的許可。您必須分別授予目標目錄的許可，目錄連結才能在 Athena 中顯示。

1. 接著，檢閱目錄連結容器詳細資訊，然後選擇**建立目錄**。

   然後，您可以在**目錄**頁面下檢視連結容器名稱。

   現在，您可以在目錄連結容器中建立資料庫連結和資料表連結，以啟用查詢引擎的存取。

**建立目錄連結容器 CLI 範例**
+ 在下列範例中， `TargetRedshiftCatalog` 物件會指定 Amazon Redshift 聯合資料庫層級目錄 (Amazon Redshift 資料庫） 的 arn。建立目錄連結容器時，`DataLakeAccess`必須啟用 。

  ```
  aws glue create-catalog \
    --cli-input-json 
      '{
          "Name": {{"linkcontainer"}}, 
          "CatalogInput": {
              "TargetRedshiftCatalog": {
                 "CatalogArn": {{"arn:aws:us-east-1:123456789012:catalog/nscatalog/dev"}}
               },
              "CatalogProperties": {
                "DataLakeAccessProperties" : {
                  "DataLakeAccess" : true,
                  "DataTransferRole" : {{"arn:aws:iam::111122223333:role/DataTransferRole"}}
               } 
             }
          }
      }'
  ```

## 在目錄連結容器下建立資源連結
<a name="create-db-table-link"></a>

 您可以在目錄連結容器下建立資料庫和資料表連結的資源連結。當您建立資料庫資源連結或資料表資源連結時，必須指定位於連結容器指向的相同目標 Amazon Redshift 資料庫層級目錄 (Amazon Redshift 資料庫） 下的目標資源。

您可以使用 AWS Lake Formation 主控台、API 或 AWS Command Line Interface () 建立共用 Amazon Redshift 資料庫或資料表的資源連結AWS CLI。
+ 如需詳細說明，請參閱 [建立共用 Data Catalog 資料庫的資源連結](create-resource-link-database.md)。

  以下是在目錄連結容器下建立資料庫資源連結 AWS CLI 的範例。

  ```
  aws glue create-database \
    --cli-input-json \
      '{
          "CatalogId": {{"111122223333:linkcontainer"}},
          "DatabaseInput": {
              "Name": {{"dblink"}},
               "TargetDatabase": {
                 "CatalogId": {{"123456789012:nscatalog/dev"}},
                  "DatabaseName": {{"schema1"}}
               }
          }
      }'
  ```
+ 若要在目錄連結容器下建立資料表資源連結，您必須先在本機中建立 AWS Glue 資料庫 AWS Glue Data Catalog ，以包含資料表資源連結。

  如需建立共用資料表的資源連結的詳細資訊，請參閱 [建立共用 Data Catalog 資料表的資源連結](create-resource-link-table.md)。
  +  建立資料庫以包含資料表資源連結範例

    ```
    aws glue create-database \
      --cli-input-json \
          '{
              "CatalogId": {{"111122223333:linkcontainer"}},
              "DatabaseInput": {
                  "Name": {{"db1"}},
                  "Description": {{"creating parent database for table link"}}
              }
          }'
    ```
  +  建立資料表資源連結範例

    ```
    aws glue create-table \
      --cli-input-json \
        '{
            "CatalogId": {{"111122223333:linkcontainer"}},
             "DatabaseName": {{"db1"}},
            "TableInput": {
                "Name": "tablelink",
                "TargetTable": {
                    "CatalogId": {{"123456789012:nscatalog/dev"}},
                   "DatabaseName": {{"schema1"}}, 
                    "Name": {{"table1"}}
                 }
            }
        }'
    ```