使用 LF-TBAC 方法授予資料湖許可 - AWS Lake Formation

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

使用 LF-TBAC 方法授予資料湖許可

您可以將 DESCRIBEASSOCIATE Lake Formation 的 LF-Tags 許可授予委託人,讓他們可以檢視 LF-Tags,並將其指派給 Data Catalog 資源 (資料庫、資料表、檢視和資料欄)。將 LF-Tags 指派給 Data Catalog 資源時,您可以使用 Lake Formation 標籤型存取控制 (LF-TBAC) 方法來保護這些資源。如需詳細資訊,請參閱基於 Lake Formation 標籤的訪問控制

一開始,只有資料湖管理員可以授予這些許可。如果資料湖管理員透過授予選項授予這些許可,其他主體可以授予這些許可。DESCRIBEASSOCIATE許可會在 中說明Lake Formation 標籤型存取控制最佳實務和考量事項

您可以將 LF-Tag 上的 DESCRIBEASSOCIATE許可授予外部 AWS 帳戶。然後,該帳戶中的資料湖管理員可以將這些許可授予帳戶中的其他主體。外部帳戶中資料湖管理員授予ASSOCIATE許可的主體接著可以將 LF 標籤指派給您與其帳戶共用的資料目錄資源。

授予外部帳戶時,您必須包含授予選項。

您可以使用 AWS Lake Formation 主控台、 API或 AWS Command Line Interface () 授予 LF 標籤的許可AWS CLI。

授予 Data Catalog 許可

使用 Lake Formation 主控台或 AWS CLI ,使用 Lake Formation 標籤型存取控制 (LF-TBAC) 方法,授予資料目錄資料庫、資料表、檢視和資料欄的 Lake Formation 許可。

Console

下列步驟說明如何使用 Lake Formation 標籤型存取控制 (LF-TBAC) 方法和 Lake Formation 主控台上的授予資料湖許可頁面來授予許可。頁面分為下列區段:

  • 主體 – AWS 帳戶 要授予許可的使用者、角色和 。

  • LF 標籤或目錄資源 – 授予許可的資料庫、資料表或資源連結。

  • 許可 – Lake Formation 授予許可。

  1. 開啟授予資料湖許可頁面。

    在 開啟 AWS Lake Formation 主控台https://console.aws.amazon.com/lakeformation/,並以資料湖管理員或已透過 LF-TBAC 授予資料目錄資源 Lake Formation 許可的使用者身分登入,並使用授予選項。

    在導覽窗格中的許可 下,選擇 Data lake 許可 。然後選擇授予

  2. 指定主體。

    主體區段中,選擇主體類型,然後指定要授予許可的主體。

    主體區段包含四個以下列文字命名的動態磚。每個動態磚都包含選項按鈕和文字。已選取 IAM Identity Center 動態磚,且使用者和群組下拉式清單位於動態磚下方。
    IAM 使用者和角色

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

    IAM 身分中心

    從使用者和群組清單中選擇一或多個使用者或 。

    SAML 使用者和群組

    對於 SAML 和 Amazon QuickSight 使用者和群組 ,輸入透過 聯合的使用者或群組的一或多個 Amazon Resource Names (ARNs)SAML,或ARNs輸入 Amazon QuickSight 使用者或群組的一或多個 Amazon Resource Names ()。在每個 之後按 EnterARN。

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

    注意

    Amazon QuickSight Enterprise Edition 僅 QuickSight 支援與 Amazon 的 Lake Formation 整合。

    外部帳戶

    針對 AWS 帳戶、 AWS organization IAM主體,輸入一或多個有效的 AWS 帳戶 IDs、 organization IDs、 IDsorganization unit 或 ARN IAM使用者或角色。在每個 ID 之後按 Enter

    組織 ID 包含「o-」,後面加上 10 到 32 個小寫字母或數字。

    組織單位 ID 以「ou-」開頭,後面接著 4 到 32 個小寫字母或數字 (包含 OU 的根 ID)。此字串後面接著第二個「-」破折號和 8 到 32 個額外的小寫字母或數字。

  3. 指定 LF 標籤。

    確定已選擇 LF-Tags 相符的資源選項。選擇新增 LF 標籤

    1. 選擇 LF-Tag 金鑰和值。

      如果您選擇多個值,則您要使用OR運算子建立 LF-Tag 表達式。這表示,如果任何 LF-Tag 值符合指派給 Data Catalog 資源的 LF-Tag,則會授予資源的許可。

      LF 標籤或目錄資源區段包含兩個水平排列的圖磚,其中每個圖磚都包含選項按鈕和描述性文字。這些選項是 LF-Tags (建議) 和具名資料型錄資源相符的資源。已選取與 LF 標籤相符的資源。圖磚下方是水平排列的金鑰欄位和值欄位。金鑰欄位包含「模組」,值欄位是下拉式清單,包含三個項目:訂單、銷售和客戶。每個項目都有相關聯的核取方塊。已選取客戶的核取方塊。這兩個欄位的右側是移除按鈕。底部是新增 LF 標籤按鈕,表示您可以新增包含金鑰和值欄位和移除按鈕的另一列。
    2. (選用) 再次選擇新增 LF 標籤以指定另一個 LF 標籤。

      如果您指定多個 LF-Tag,則您要使用AND運算子建立 LF-Tag 表達式。只有在 LF-Tag 運算式中為每個 LF-Tag 指派相符的 LF-Tag 時,才會授予 Data Catalog 資源的主體許可。

  4. 指定許可。

    指定您希望授予主體比對 Data Catalog 資源的許可。比對資源是指派的 LF-Tags 資源,其符合授予委託人的其中一個 LF-Tag 表達式。

    您可以指定在相符的資料庫、相符的資料表和相符的檢視上授予 的許可。

    顯示頁面的兩個區段。資料庫許可區段包含資料庫許可和可授予許可的核取方塊。在資料庫區段下方,資料表許可區段會顯示資料表許可和可授予許可的核取方塊。

    資料庫許可 下,選取要授予相符資料庫之主體的資料庫許可。

    資料表許可 下,選取資料表或檢視許可,以在比對資料表和檢視上授予委託人。

    您也可以從資料表Drop許可中選擇 DescribeSelect和 許可,以套用至檢視。

  5. 選擇 Grant (授予)。

AWS CLI

您可以使用 AWS Command Line Interface (AWS CLI) 和 Lake Formation 標籤型存取控制 (LF-TBAC) 方法,授予 Data Catalog 資料庫、資料表和資料欄的 Lake Formation 許可。

使用 AWS CLI 和 LF TBAC方法授予資料湖許可
  • 使用 grant-permissions 命令。

    下列範例會將 LF-Tag 表達式 "module=*" (LF-Tag 金鑰 的所有值module) 授予使用者 datalake_user1。該使用者將擁有所有相符資料庫的CREATE_TABLE許可,這些資料庫已使用索引鍵 指定 LF-Tagmodule,且具有任何值。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "LFTagPolicy": {"CatalogId":"111122223333","ResourceType":"DATABASE","Expression":[{"TagKey":"module","TagValues":["*"]}]}}'

    下一個範例會將 LF-Tag 表達式 "(level=director) AND (region=west OR region=south)" 授予使用者 datalake_user1。該使用者將擁有 SELECT、 和 DROP許可ALTER,並在相符的資料表上包含授予選項 — 已同時指派 level=director和 (region=west 或 ) 的資料表region=south

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" "ALTER" "DROP" --permissions-with-grant-option "SELECT" "ALTER" "DROP" --resource '{ "LFTagPolicy": {"CatalogId":"111122223333","ResourceType":"TABLE","Expression": [{"TagKey": "level","TagValues": ["director"]},{"TagKey": "region","TagValues": ["west", "south"]}]}}'

    下一個範例會將 LF-Tag 表達式 "module=orders" 授予 AWS 帳戶 1234-5678-9012。然後,該帳戶中的資料湖管理員可以將「module=orders」表達式授予其帳戶中的主體。然後,這些委託人將擁有與帳戶 1111-2222-3333 擁有的資料庫相符的CREATE_TABLE許可,並使用具名資源方法或 LF-TBAC 方法與帳戶 1234-5678-9012 共用。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=123456789012 --permissions "CREATE_TABLE" --permissions-with-grant-option "CREATE_TABLE" --resource '{ "LFTagPolicy": {"CatalogId":"111122223333","ResourceType":"DATABASE","Expression":[{"TagKey":"module","TagValues":["orders"]}]}}'