使用 Lake Formation 管理對資料表或資料庫的存取 - Amazon Simple Storage Service

使用 Lake Formation 管理對資料表或資料庫的存取

將資料表儲存貯體與AWS 分析服務整合後,Lake Formation 即可管理對資料表的存取,並要求每個 IAM 主體 (使用者或角色) 都獲授權來執行動作。Lake Formation 會使用自己的許可模型 (Lake Formation 許可),為資料目錄資源啟用精細的存取控制。

如需詳細資訊,請參閱《AWS Lake Formation 開發人員指南》中的 Lake Formation 許可概觀

AWS Lake Formation 中有兩種主要類型的權限:

  1. 中繼資料存取權限可控制在 Data Catalog 中建立、讀取、更新和刪除中繼資料資料庫和資料表的能力。

  2. 基礎資料存取權限可控制讀取和寫入資料目錄資源指向的基礎 Amazon S3 位置的能力。

Lake Formation 使用自己的許可模型和 IAM 許可模型的組合,控制對 Data Catalog 資源和基礎資料的存取:

  • 若要請求成功存取 Data Catalog 資源或基礎資料,則請求必須通過 IAM 和 Lake Formation 的許可權檢查。

  • IAM 許可權可控制對 Lake Formation 和 AWS Glue API 的存取,而 Lake Formation 許可權可控制對 Data Catalog 資源、Amazon S3 位置和基礎資料的存取。

Lake Formation 許可權僅適用於授予其獲授權的區域,且主體必須由資料湖管理員或其他具有必要權限的主體的授權,才能授予 Lake Formation 許可。

注意

如果您是執行資料表儲存貯體整合的使用者,您已擁有資料表的 Lake Formation 許可。如果您是將存取資料表的唯一主體,您可以略過此步驟。您只需將資料表的 Lake Formation 許可權授予其他 IAM 主體。這可讓其他主體在執行查詢時存取資料表。如需更多詳細資訊,請參閱 授予資料表或資料庫的 Lake Formation 許可

授予資料表或資料庫的 Lake Formation 許可

您可以對資料表儲存貯體中的資料表或資料庫授予主體 Lake Formation 許可,方式是透過 Lake Formation 主控台或 AWS CLI。

注意

當您將 Data Catalog 資源的 Lake Formation 許可權授予外部帳戶,或直接授予另一個帳戶中的 IAM 主體時,Lake Formation 會使用 AWS Resource Access Manager (AWS RAM) 服務以共享資源。如果承授者帳戶與授予者帳戶位於相同的組織中,則承授者可立即使用共享資源。如果承授者帳戶不在同一個組織中,AWS RAM 會向承授者帳戶傳送邀請,請其接受或拒絕資源授權。然後,若要提供共享資源,承授者帳戶中的資料湖管理員必須使用 AWS RAM 主控台或 AWS CLI 以接受邀請。如需有關跨帳戶資料共享的詳細資訊,請參閱《AWS Lake Formation 開發人員指南》中的 Lake Formation 中的跨帳戶資料共享

Console
  1. https://console.aws.amazon.com/lakeformation/ 開啟 AWS Lake Formation 主控台,並以資料湖管理員身分登入。如需如何建立資料湖管理員的詳細資訊,請參閱《AWS Lake Formation 開發人員指南》中的建立資料湖管理員

  2. 在導覽窗格中,選擇資料許可,然後選擇授予

  3. 授予許可頁面的主體下,執行下列其中一項操作:

    • 針對 Amazon Athena 或 Amazon Redshift,選擇 IAM 使用者和角色,然後選取您用於查詢的 IAM 主體。

    • 針對 Amazon Data Firehose,選擇 IAM 使用者和角色,然後選取您已建立的服務角色以讓其串流至資料表。

    • 針對 Quick Suite,選擇 SAML 使用者和群組,然後輸入 Quick Suite 管理員使用者的 Amazon Resource Name (ARN)。

    • 對於 AWS Glue Iceberg REST 端點存取權,選擇 IAM 使用者和角色,然後選取您為用戶端建立的 IAM 角色。如需詳細資訊,請參閱為您的用戶端建立 IAM 角色

  4. LF-標籤或型錄資源下,選擇已命名的的資料型錄資源

  5. 對於目錄,選擇您在整合資料表儲存貯體時建立的子目錄,例如 account-id:s3tablescatalog/amzn-s3-demo-bucket

  6. 針對資料庫,選擇您建立的 S3 資料表儲存貯體命名空間。

  7. (選用) 針對資料表選擇您在資料表儲存貯體中建立的 S3 資料表。

    注意

    如果您要在 Athena 查詢編輯器中建立新資料表,請勿選取資料表。

  8. 執行以下任意一項:

    • 如果您在上一個步驟中指定了資料表,請針對資料表許可選擇超級

    • 如果您未在上一個步驟中指定資料表,請前往資料庫許可。對於跨帳戶資料共享,您無法選擇超級來授予其他主體資料庫的所有權限。反之,請選擇更精細的許可權,例如描述

  9. 選擇 Grant (授予)。

CLI
  1. 請確定您正以資料湖管理員身分執行下列 AWS CLI 命令。如需詳細資訊,請參閱《AWS Lake Formation 開發人員指南》中的建立資料湖管理員者

  2. 執行下列命令,將 S3 資料表儲存貯體中資料表的 Lake Formation 許可授予 IAM 主體,以存取資料表。若要使用此範例,請以您自己的資訊取代 user input placeholders

    aws lakeformation grant-permissions \ --region us-east-1 \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "user or role ARN, for example, arn:aws:iam::account-id:role/example-role" }, "Resource": { "Table": { "CatalogId": "account-id:s3tablescatalog/amzn-s3-demo-bucket", "DatabaseName": "S3 table bucket namespace, for example, test_namespace", "Name": "S3 table bucket table name, for example test_table" } }, "Permissions": [ "ALL" ] }'