本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用 Lake Formation 與 S3 Tables 與 Data Catalog 整合
本節說明使用與 整合的 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:使用 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:更新 AWS Glue 目錄以啟用 Lake Formation 存取控制
使用空白
CreateDatabaseDefaultPermissions和CreateTableDefaultPermissions(設定為[]) 更新目錄,並將OverwriteChildResourcePermissionsWithDefault設定為Accept。這會移除所有現有子資源的 IAM 型存取,並允許使用 Lake Formation 授予來管理目錄及其物件。aws glue update-catalog \ --catalog-id "s3tablescatalog" \ --catalog-input '{ "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions": [], "CreateTableDefaultPermissions": [], "OverwriteChildResourcePermissionsWithDefault": "Accept", "AllowFullTableExternalDataAccess": "True" }' -
步驟 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"視需要為每個委託人和資源組合重複此步驟。