本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本教學課程 step-by-step 說明如何 AWS 帳戶 在使用 管理多個時,使用 Lake Formation 快速輕鬆地共用資料集 AWS Organizations。您可以定義精細的許可,以控制對敏感資料的存取。
下列程序也會顯示帳戶 A 的資料湖管理員如何為帳戶 B 提供精細存取,以及帳戶 B 中的使用者如何擔任資料管理員,為其帳戶中的其他使用者授予精細存取共用資料表。每個帳戶中的資料管理員可以獨立將存取權委派給自己的使用者,為每個團隊或業務單位 (LOB) 提供自主權。
使用案例假設您正在使用 AWS Organizations 來管理您的 AWS 帳戶。一個組織單位 (OU1) 中帳戶 A 的使用者授予 中帳戶 B 使用者的存取權OU2。您可以在不使用 Organizations 時使用相同的方法,例如只有幾個帳戶時。下圖說明資料湖中資料集的精細存取控制。資料湖可在帳戶 A 中使用。帳戶 A 的資料湖管理員為帳戶 B 提供精細的存取。圖表也顯示帳戶 B 的使用者提供帳戶 A 資料湖資料表的資料欄層級存取給帳戶 B 中的其他使用者。
目標對象
本教學課程適用於資料管理員、資料工程師和資料分析師。下表列出本教學課程中使用的角色:
角色 | 描述 |
---|---|
IAM 管理員 | 具有 AWS 受管政策的使用者:AdministratorAccess 。 |
Data lake 管理員 |
具有 AWS 受管政策的使用者: |
資料分析 | 具有 AWS 受管政策的使用者:AmazonAthenaFullAccess 已連接。 |
必要條件
開始本教學課程之前,您必須擁有 AWS 帳戶 可用於以具有正確許可的管理使用者身分登入的 。如需詳細資訊,請參閱完成初始 AWS 組態任務。
教學課程假設您熟悉 IAM。如需 的相關資訊IAM,請參閱 IAM 使用者指南 。
您需要下列資源才能進行本教學課程:
-
兩個組織單位:
OU1 – 包含帳戶 A
OU2 – 包含帳戶 B
帳戶 A 中的 Amazon S3 資料湖位置 (儲存貯體)。
帳戶 A 中的資料湖管理員使用者。您可以使用 Lake Formation 主控台 (https://console.aws.amazon.com/lakeformation/
) 或 Lake Formation PutDataLakeSettings
的操作來建立資料湖管理員API。帳戶 A 中設定的 Lake Formation,以及在帳戶 A 中向 Lake Formation 註冊的 Amazon S3 資料湖位置。
帳戶 B 中的兩名使用者具有下列IAM受管政策:
testuser1 – 已
AWSLakeFormationDataAdmin
連接 AWS 受管政策。testuser2 – 已
AmazonAthenaFullAccess
連接 AWS 受管政策。
帳戶 B Lake Formation 資料庫中的資料庫 testdb。
步驟 1:提供對另一個帳戶的精細存取
了解帳戶 A 的資料湖管理員如何為帳戶 B 提供精細的存取。
授予對另一個帳戶的精細存取權
在帳戶 A https://console.aws.amazon.com/connect/
中以資料湖管理員身分登入 AWS Management Console 。 開啟 Lake Formation 主控台 (https://console.aws.amazon.com/lakeformation/
),然後選擇開始使用 。 在導覽窗格中,選擇資料庫 。
選擇 Create database (建立資料庫)。
在資料庫詳細資訊區段中,選取資料庫 。
對於名稱 ,輸入名稱 (在本教學課程中,我們使用
sampledb01
)。請確定未選取此資料庫中的新資料表僅使用IAM存取控制。離開此未選取允許我們控制 Lake Formation 的存取。
選擇建立資料庫。
在資料庫頁面上,選擇您的資料庫
sampledb01
。在動作功能表中,選擇授予 。
在授予許可區段中,選取外部帳戶 。
針對 AWS 帳戶 ID 或 AWS 組織 ID,在 中輸入帳戶 B 的帳戶 IDOU2。
對於表 ,選擇您希望帳戶 B 能夠存取的資料表 (在此文章中,我們使用資料表
acc_a_area
)。或者,您可以授予對資料表中資料欄的存取權,而我們在此文章中執行此作業。針對包含資料欄 ̧ 選擇您希望帳戶 B 能夠存取的資料欄 (針對此文章,我們授予輸入、名稱和識別符的許可)。
對於資料欄 ,選擇包含資料欄 。
針對資料表許可 ,選取選取 。
針對許可許可 ,選取選取 。需要准許許可,因此帳戶 B 中的管理員使用者可以將許可授予帳戶 B 中的其他使用者。
選擇 Grant (授予)。
在導覽窗格中,選擇 Tables (資料表)。
您可以在具有存取的 AWS 帳戶 和 AWS 組織中看到一個作用中連線。
建立資源連結
Amazon Athena 等整合服務無法直接跨帳戶存取資料庫或資料表。因此,您需要建立資源連結,以便 Athena 可以存取您帳戶中的資源連結到其他帳戶中的資料庫和資料表。建立資料表 (acc_a_area
) 的資源連結,讓帳戶 B 使用者可以使用 Athena 查詢其資料。
在帳戶 B https://console.aws.amazon.com/connect/
中以 登入 AWS 主控台 testuser1
。在 Lake Formation 主控台 (https://console.aws.amazon.com/lakeformation/
) 的導覽窗格中,選擇資料表 。您應該會看到帳戶 A 提供存取權的資料表。 選擇
acc_a_area
資料表。在動作功能表中,選擇建立資源連結 。
針對資源連結名稱 ,輸入名稱 (本教學課程為
acc_a_area_rl
)。針對資料庫 ,選擇您的資料庫 (
testdb
)。選擇 Create (建立)。
在導覽窗格中,選擇 Tables (資料表)。
選擇
acc_b_area_rl
資料表。在動作功能表中,選擇檢視資料 。
系統會將您重新導向至 Athena 主控台,其中您應該會看到資料庫和資料表。
您現在可以在資料表上執行查詢,以查看從帳戶 B 為測試使用者 1 提供存取權的欄值。
步驟 2:為相同帳戶中的使用者提供精細的存取
本節顯示 帳戶 B (testuser1
) 中的使用者作為資料管理員,如何為相同帳戶中的另一個使用者 (testuser2
) 提供對共用資料表 中資料欄名稱的精細存取aac_b_area_rl
。
將精細存取權授予相同帳戶中的使用者
在帳戶 B https://console.aws.amazon.com/connect/
中以 登入 AWS 主控台 testuser1
。在 Lake Formation 主控台的導覽窗格中,選擇資料表 。
您可以透過資料表的資源連結授予許可。若要這樣做,請在資料表頁面上,選取資源連結
acc_b_area_rl
,然後在動作功能表中,選擇目標 上的授予。在授予許可區段中,選取我的帳戶 。
針對IAM使用者和角色 ̧ 選擇使用者
testuser2
。針對資料欄 ,選擇資料欄名稱。
針對資料表許可 ,選取選取 。
選擇 Grant (授予)。
當您建立資源連結時,只有您可以檢視和存取它。若要允許帳戶中的其他使用者存取資源連結,您需要授予資源連結本身的許可。您需要授予 DESCRIBE 或 DROP 許可。在資料表頁面 上,再次選取您的資料表,然後在動作功能表中選擇授予 。
在授予許可區段中,選取我的帳戶 。
針對IAM使用者和角色 ,選取使用者
testuser2
。針對資源連結許可 ̧ 選取描述 。
選擇 Grant (授予)。
以 登入帳戶 B 中的 AWS 主控台
testuser2
。在 Athena 主控台 (https://console.aws.amazon.com/athena/
) 上,您應該會看到資料庫和資料表 acc_b_area_rl
。您現在可以在資料表上執行查詢,以查看testuser2
可存取的資料欄值。