View a markdown version of this page

啟用 Lake Formation 與 Data Catalog 的 S3 Tables 整合 - AWS Lake Formation

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

啟用 Lake Formation 與 Data Catalog 的 S3 Tables 整合

本節說明使用與 整合的 Amazon S3 Tables AWS Lake Formation 授予,將存取控制從 IAM 權限遷移至 IAM 的工作流程 AWS Glue Data Catalog。

重要

啟用 AWS Lake Formation 存取控制會撤銷對 S3 Tables 資源的所有現有 IAM 型存取。完成步驟 1 後,先前透過 IAM 許可存取資料的使用者和角色將立即失去存取權。您必須先在步驟 2 中授予 Lake Formation 許可,使用者才能再次查詢資料。在維護時段規劃此遷移,並與資料團隊協調。

先決條件

對於對 S3 Tables 的讀取/寫入存取,除了 Lake Formation 許可之外,主體還需要 lakeformation:GetDataAccess IAM 許可。有了此許可,Lake Formation 就會授與要求存取資料所需的臨時憑證。

使用 AWS CLI

  1. 步驟 1:使用 IAM 角色向 Lake Formation 註冊儲存貯體

    向 Lake Formation 註冊 S3 Tables 資源。

    注意

    如果您有現有角色,請確保混合存取為 false。

    aws lakeformation register-resource \ --resource-arn "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*" \ --role-arn "arn:aws:iam::AWSAccountID:role/service-role/LFAccessRole" \ --with-federation
  2. 步驟 2:更新 AWS Glue 目錄以啟用 Lake Formation 存取控制

    使用空白 CreateDatabaseDefaultPermissions和 更新目錄 CreateTableDefaultPermissions(設定為 [])。這可確保使用 Lake Formation 授予來管理目錄中的資料庫和資料表,而不是以 IAM 為基礎的預設許可。

    aws glue update-catalog \ --catalog-id "s3tablescatalog" \ --catalog-input '{ "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions": [], "CreateTableDefaultPermissions": [], "AllowFullTableExternalDataAccess": "True" }'
  3. 步驟 3:將 Lake Formation 許可授予您的資料團隊

    將 Lake Formation 許可授予需要存取的委託人 (角色、使用者或群組)。例如,若要授予角色的完整資料表讀取存取權:

    aws lakeformation grant-permissions \ --principal DataLakePrincipalIdentifier=arn:aws:iam::AWSAccountID:role/DataTeamRole \ --resource '{ "Table": { "CatalogId": "AWSAccountID", "DatabaseName": "s3tablescatalog/table-bucket-name/namespace", "TableWildcard": {} } }' \ --permissions "SELECT" "DESCRIBE"

    視需要為每個主體和資源組合重複上述動作。