選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

建立 Amazon Redshift 聯合目錄

焦點模式
建立 Amazon Redshift 聯合目錄 - AWS Lake Formation

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

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

本主題說明接受叢集或命名空間邀請、建立聯合多層級目錄,以及將許可授予其他委託人所需的步驟。您可以使用 Lake Formation 主控台、 AWS Command Line Interface (AWS CLI) 或 APIs/SDKs來完成這些任務。本主題中的範例顯示生產者叢集/命名空間、資料目錄和相同帳戶中的資料取用者。

若要進一步了解 Lake Formation 跨帳戶功能,請參閱Lake Formation 中的跨帳戶資料共用

在 Data Catalog 中管理 Amazon Redshift 命名空間
  1. 檢閱命名空間邀請並接受它。

    Console
    1. 以資料湖管理員身分登入 Lake Formation 主控台,網址為 https://https://console.aws.amazon.com/lakeformation/。導覽至 Data Catalog 下的 Catalogs 頁面。

    2. 檢閱您獲授權存取的命名空間邀請。狀態欄指出您目前在命名空間的參與狀態。未接受狀態表示您已新增至命名空間,但您尚未接受它或拒絕邀請。

      具有待定邀請的目錄頁面。
    3. 若要回應命名空間或叢集邀請,請選取邀請名稱,然後選擇檢閱邀請。在接受或拒絕邀請中,檢閱邀請詳細資訊。選擇接受以接受邀請或拒絕以拒絕邀請。如果您拒絕邀請,則無法存取 命名空間。

    AWS CLI

    下列範例示範如何檢視、接受和註冊邀請。以有效的 AWS 帳戶 ID 取代 AWS 帳戶 ID。將 取代data-share-arn為參考命名空間的實際 Amazon Resource Name (ARN)。

    1. 檢視待定邀請。

      aws redshift describe-data-shares \ --data-share-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace' \
    2. 接受邀請。

      aws redshift associate-data-share-consumer \ --data-share-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace' \ --consumer-arn 'arn:aws:glue:us-east-1:123456789012:catalog'
    3. 在 Lake Formation 帳戶中註冊叢集或命名空間。使用 RegisterResource API 操作在 Lake Formation 中註冊資料共用。 DataShareArn是 的輸入參數ResourceArn

      注意

      這是必要步驟。

      aws lakeformation register-resource \ --resource-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace'
    1. 以資料湖管理員身分登入 Lake Formation 主控台,網址為 https://https://console.aws.amazon.com/lakeformation/。導覽至 Data Catalog 下的 Catalogs 頁面。

    2. 檢閱您獲授權存取的命名空間邀請。狀態欄指出您目前在命名空間的參與狀態。未接受狀態表示您已新增至命名空間,但您尚未接受它或拒絕邀請。

      具有待定邀請的目錄頁面。
    3. 若要回應命名空間或叢集邀請,請選取邀請名稱,然後選擇檢閱邀請。在接受或拒絕邀請中,檢閱邀請詳細資訊。選擇接受以接受邀請或拒絕以拒絕邀請。如果您拒絕邀請,則無法存取 命名空間。

  2. 建立聯合目錄。

    接受邀請後,您需要在 Data Catalog 中建立聯合目錄,將 Amazon Redshift 命名空間中的物件映射到 Data Catalog。您必須是資料湖管理員,或是具有建立目錄所需許可的使用者或角色。

    Console
    1. 接受命名空間邀請後,即會顯示設定目錄詳細資訊頁面。

    2. 設定目錄詳細資訊頁面上,輸入目錄的唯一名稱。針對目錄名稱使用小寫。目錄名稱長度必須小於或等於 255 個字元。您可以使用此識別符在中繼資料階層 (catalogid.dbName.schema.table).

    3. 輸入目錄的描述。描述長度必須小於或等於 2048 個字元。

    4. 接著,選擇從 Iceberg 相容引擎存取此目錄核取方塊,以使用 Apache Iceberg 相容分析引擎存取 Amazon Redshift 資源,例如 Amazon EMR 上的 Athena 和 Apache Spark。

      您不需要啟用資料湖存取,即可使用 Amazon Redshift 存取聯合目錄。

      具有存取啟用選項的建立目錄頁面。
    5. 為了讓這些查詢引擎能夠讀取和寫入 Amazon Redshift 命名空間, 會 AWS Glue 建立具有執行讀取和寫入操作所需的運算和儲存資源的受管 Amazon Redshift 叢集,而不會影響 Amazon Redshift 資料倉儲工作負載。

      您也需要為 IAM 角色提供在 Amazon S3 儲存貯體之間傳輸資料所需的許可。

    6. 根據預設,Amazon Redshift 叢集中的資料會使用 AWS 受管金鑰加密。Lake Formation 提供建立自訂 KMS 金鑰以進行加密的選項。如果您使用的是客戶受管金鑰,則必須將特定金鑰政策新增至金鑰。

      如果您使用客戶受管金鑰來加密 Amazon Redshift 叢集/命名空間中的資料,請選擇自訂加密設定。若要使用自訂金鑰,您必須將其他自訂受管金鑰政策新增至 KMS 金鑰。如需詳細資訊,請參閱在 中管理 Amazon Redshift 命名空間的先決條件 AWS Glue Data Catalog

    AWS CLI

    使用下列範例程式碼,使用 發佈至 Data Catalog 的 Amazon Redshift 資料來建立目錄 AWS CLI。

    aws glue create-catalog --cli-input-json \ '{ "Name": "nscatalog", "CatalogInput": { "Description": "Redshift federated catalog", "CreateDatabaseDefaultPermissions" : [], "CreateTableDefaultPermissions": [], "FederatedCatalog": { "Identifier": "arn:aws:redshift:us-east-1:123456789012:datashare:11524d7f-f56d-45fe-83f7-d7bb0a4d6d71/ds_internal_namespace", "ConnectionName": "aws:redshift" }, "CatalogProperties": { "DataLakeAccessProperties" : { "DataLakeAccess" : true, "DataTransferRole" : "arn:aws:iam::123456789012:role/DataTransferRole" } } } }'
    1. 接受命名空間邀請後,即會顯示設定目錄詳細資訊頁面。

    2. 設定目錄詳細資訊頁面上,輸入目錄的唯一名稱。針對目錄名稱使用小寫。目錄名稱長度必須小於或等於 255 個字元。您可以使用此識別符在中繼資料階層 (catalogid.dbName.schema.table).

    3. 輸入目錄的描述。描述長度必須小於或等於 2048 個字元。

    4. 接著,選擇從 Iceberg 相容引擎存取此目錄核取方塊,以使用 Apache Iceberg 相容分析引擎存取 Amazon Redshift 資源,例如 Amazon EMR 上的 Athena 和 Apache Spark。

      您不需要啟用資料湖存取,即可使用 Amazon Redshift 存取聯合目錄。

      具有存取啟用選項的建立目錄頁面。
    5. 為了讓這些查詢引擎能夠讀取和寫入 Amazon Redshift 命名空間, 會 AWS Glue 建立具有執行讀取和寫入操作所需的運算和儲存資源的受管 Amazon Redshift 叢集,而不會影響 Amazon Redshift 資料倉儲工作負載。

      您也需要為 IAM 角色提供在 Amazon S3 儲存貯體之間傳輸資料所需的許可。

    6. 根據預設,Amazon Redshift 叢集中的資料會使用 AWS 受管金鑰加密。Lake Formation 提供建立自訂 KMS 金鑰以進行加密的選項。如果您使用的是客戶受管金鑰,則必須將特定金鑰政策新增至金鑰。

      如果您使用客戶受管金鑰來加密 Amazon Redshift 叢集/命名空間中的資料,請選擇自訂加密設定。若要使用自訂金鑰,您必須將其他自訂受管金鑰政策新增至 KMS 金鑰。如需詳細資訊,請參閱在 中管理 Amazon Redshift 命名空間的先決條件 AWS Glue Data Catalog

  3. 將許可授予您帳戶中的使用者或外部帳戶中的使用者。

    AWS Management Console
    1. 選擇下一步,將許可授予共用目錄、資料庫和資料表上的其他使用者。

    2. 新增許可畫面上,選擇要授予的主體和許可類型。

      目錄許可頁面,包含委託人類型和授予選項。
      1. 主體區段中,選擇主體類型,然後指定要授予許可的主體。

        • IAM 使用者和角色 – 從 IAM 使用者和角色清單中選擇一或多個使用者或角色。

        • SAML 使用者和群組 – 針對 SAML 和 Amazon QuickSight 使用者和群組,輸入一或多個透過 SAML 聯合的使用者或群組的 Amazon Resource Name (ARNs),或 Amazon QuickSight 使用者或群組ARNs。在每個 ARN 之後按 Enter

          如需有關如何建構 ARNs 的資訊,請參閱 AWS CLI 授予和撤銷 AWS CLI 命令。

        • 外部帳戶 – 針對 AWS、 AWS 組織或 IAM 主體,輸入一或多個有效的 AWS 帳戶 IDs、組織 IDs、組織單位 IDs 或 IAM 使用者或角色的 ARN。在每個 ID 之後按 Enter。組織 ID 包含「o-」,後面接著 10-32 個小寫字母或數字。組織單位 ID 以「ou-」開頭,後面接著 4-32 個小寫字母或數字 (包含 OU 的根 ID)。此字串後面接著第二個「-」破折號和 8 到 32 個額外的小寫字母或數字。

      2. 許可區段中,選取許可和可授予的許可。

        目錄許可下,選取要授予的一或多個許可。在可授予許可下,選取授予收件人可以授予其 AWS 帳戶中其他主體的許可。當您從外部帳戶將許可授予 IAM 主體時,不支援此選項。

        選擇超級使用者,將使用者不受限制的許可授予目錄中的資源 (資料庫、資料表、檢視)。

    3. 選擇新增

    AWS CLI

    使用下列範例來使用 授予目錄、資料庫和資料表許可 AWS CLI:

    • 下列範例顯示如何授予聯合型目錄中的許可。

      aws lakeformation grant-permissions --cli-input-cli-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin" }, "Resource": { "Catalog": { "Id": "123456789012:nscatalog" } }, "Permissions": [ "DESCRIBE","CREATE_CATALOG" ], "PermissionsWithGrantOption": [ ] }'
    • 使用下列範例來授予資料庫的許可。

      aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin" }, "Resource": { "Database": { "CatalogId": "123456789012:nscatalog/dev", "Name": "public" } }, "Permissions": [ "ALL" ] }'
    • 下列範例顯示如何授予 Amazon Redshift 資料庫中資料表的許可。

      aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin" }, "Resource": { "Table": { "CatalogId": "123456789012:nscatalog2/dev", "DatabaseName": "public", "TableWildcard" : {} } }, "Permissions": [ "ALL" ] }'
    1. 選擇下一步,將許可授予共用目錄、資料庫和資料表上的其他使用者。

    2. 新增許可畫面上,選擇要授予的主體和許可類型。

      目錄許可頁面,包含委託人類型和授予選項。
      1. 主體區段中,選擇主體類型,然後指定要授予許可的主體。

        • IAM 使用者和角色 – 從 IAM 使用者和角色清單中選擇一或多個使用者或角色。

        • SAML 使用者和群組 – 針對 SAML 和 Amazon QuickSight 使用者和群組,輸入一或多個透過 SAML 聯合的使用者或群組的 Amazon Resource Name (ARNs),或 Amazon QuickSight 使用者或群組ARNs。在每個 ARN 之後按 Enter

          如需有關如何建構 ARNs 的資訊,請參閱 AWS CLI 授予和撤銷 AWS CLI 命令。

        • 外部帳戶 – 針對 AWS、 AWS 組織或 IAM 主體,輸入一或多個有效的 AWS 帳戶 IDs、組織 IDs、組織單位 IDs 或 IAM 使用者或角色的 ARN。在每個 ID 之後按 Enter。組織 ID 包含「o-」,後面接著 10-32 個小寫字母或數字。組織單位 ID 以「ou-」開頭,後面接著 4-32 個小寫字母或數字 (包含 OU 的根 ID)。此字串後面接著第二個「-」破折號和 8 到 32 個額外的小寫字母或數字。

      2. 許可區段中,選取許可和可授予的許可。

        目錄許可下,選取要授予的一或多個許可。在可授予許可下,選取授予收件人可以授予其 AWS 帳戶中其他主體的許可。當您從外部帳戶將許可授予 IAM 主體時,不支援此選項。

        選擇超級使用者,將使用者不受限制的許可授予目錄中的資源 (資料庫、資料表、檢視)。

    3. 選擇新增

  4. 選擇下一步以檢閱目錄詳細資訊並建立聯合目錄。新建立的聯合目錄和目錄物件會出現在目錄頁面中。

    Amazon Redshift 聯合目錄會與 一起參考catalogID = 123456789012:Redshift-federated catalog id

下一個主題:

檢視目錄物件

上一個主題:

先決條件
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。