從 AWS CloudTrail 來源建立資料湖 - AWS Lake Formation

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

從 AWS CloudTrail 來源建立資料湖

本教學課程會引導您完成在 Lake Formation 主控台上執行的動作,以從 AWS CloudTrail 來源建立和載入您的第一個資料湖。

建立資料湖的高階步驟
  1. 將 Amazon Simple Storage Service (Amazon S3) 路徑註冊為資料湖。

  2. 授予 Lake Formation 許可,以寫入資料目錄和資料湖中的 Amazon S3 位置。

  3. 建立資料庫以組織 Data Catalog 中的中繼資料資料表。

  4. 使用藍圖建立工作流程。執行工作流程從資料來源擷取資料。

  5. 設定 Lake Formation 許可,以允許其他人管理資料目錄和資料湖中的資料。

  6. 設定 Amazon Athena 來查詢您匯入 Amazon S3 資料湖的資料。

  7. 對於某些資料存放區類型,請設定 Amazon Redshift Spectrum 來查詢您匯入 Amazon S3 資料湖的資料。

目標對象

下表列出本教學課程中用於建立資料湖的角色。

目標對象
角色 描述
IAM 管理員 具有 AWS 受管政策:AdministratorAccess。可以建立IAM角色和 Amazon S3 儲存貯體。
Data lake 管理員 可以存取資料目錄、建立資料庫,以及將 Lake Formation 許可授予其他使用者的使用者。IAM 許可少於IAM管理員,但足以管理資料湖。
資料分析 可針對資料湖執行查詢的使用者。僅具有足夠的許可來執行查詢。
工作流程角色 具有執行工作流程所需IAM政策的角色。如需詳細資訊,請參閱(選用) 建立工作流程IAM的角色

必要條件

開始之前:

  • 確保您已完成 中的任務設定 AWS Lake Formation

  • 了解 CloudTrail 日誌的位置。

  • Athena 要求資料分析師角色建立 Amazon S3 儲存貯體,以便在使用 Athena 之前儲存查詢結果。

假設熟悉 AWS Identity and Access Management (IAM)。如需 的相關資訊IAM,請參閱 IAM 使用者指南

步驟 1:建立資料分析師使用者

此使用者具有查詢資料湖的最小許可集。

  1. 開啟位於 IAM 的 https://console.aws.amazon.com/iam 主控台。使用 AdministratorAccess AWS 受管政策,以您在 中建立的管理員使用者建立具有管理存取權的使用者或使用者身分登入。

  2. datalake_user 使用下列設定建立名為 的使用者:

    • 啟用 AWS Management Console 存取。

    • 設定密碼,不需要重設密碼。

    • 連接 AmazonAthenaFullAccess AWS 受管政策。

    • 連接下列內嵌政策。將政策命名為 DatalakeUserBasic

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }

步驟 2:將讀取 AWS CloudTrail 日誌的許可新增至工作流程角色

  1. 將下列內嵌政策連接至角色 LakeFormationWorkflowRole。政策會授予讀取 AWS CloudTrail 日誌的許可。將政策命名為 DatalakeGetCloudTrail

    若要建立 LakeFormationWorkflowRole 角色,請參閱(選用) 建立工作流程IAM的角色

    重要

    Replace (取代) <your-s3-cloudtrail-bucket> CloudTrail 資料所在的 Amazon S3 位置。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": ["arn:aws:s3:::<your-s3-cloudtrail-bucket>/*"] } ] }
  2. 確認有三個政策連接到角色。

步驟 3:為資料湖建立 Amazon S3 儲存貯體

建立要作為資料湖根位置的 Amazon S3 儲存貯體。

  1. 在 開啟 Amazon S3 主控台,https://console.aws.amazon.com/s3/並以您在 中建立的管理員使用者身分登入建立具有管理存取權的使用者

  2. 選擇建立儲存貯體 ,然後瀏覽精靈以建立名為 的儲存貯體<yourName>-datalake-cloudtrail,其中 <yourName> 是您的名字縮寫和姓氏。例如:jdoe-datalake-cloudtrail

    如需建立 Amazon S3 儲存貯體的詳細資訊,請參閱建立儲存貯體

步驟 4:註冊 Amazon S3 路徑

將 Amazon S3 路徑註冊為資料湖的根位置。

  1. 在 開啟 Lake Formation 主控台https://console.aws.amazon.com/lakeformation/。以資料湖管理員身分登入。

  2. 在導覽窗格中的註冊和擷取 下,選擇 Data lake 位置

  3. 選擇註冊位置,然後瀏覽

  4. 選取您先前建立的<yourName>-datalake-cloudtrail儲存貯體,接受預設IAM角色 AWSServiceRoleForLakeFormationDataAccess,然後選擇註冊位置

    如需註冊位置的詳細資訊,請參閱 將 Amazon S3 位置新增至您的資料湖

步驟 5:授予資料位置許可

主體必須在資料湖位置上具有資料位置許可,才能建立指向該位置的資料目錄資料表或資料庫。您必須授予工作流程IAM角色的資料位置許可,工作流程才能寫入資料擷取目的地。

  1. 在導覽窗格中的許可 下,選擇資料位置

  2. 選擇授予 ,然後在授予許可對話方塊中進行下列選擇:

    1. 針對IAM使用者和角色 ,選擇 LakeFormationWorkflowRole

    2. 針對儲存位置 ,選擇您的<yourName>-datalake-cloudtrail儲存貯體。

  3. 選擇 Grant (授予)。

如需資料位置許可的詳細資訊,請參閱 Underlying data access control

步驟 6:在 Data Catalog 中建立資料庫

Lake Formation Data Catalog 中的中繼資料資料表會儲存在資料庫中。

  1. 在導覽窗格中的資料目錄 下,選擇資料庫

  2. 選擇建立資料庫 ,然後在資料庫詳細資訊 下,輸入名稱 lakeformation_cloudtrail

  3. 將其他欄位保留空白,然後選擇建立資料庫

步驟 7:授予資料許可

您必須授予許可,才能在 Data Catalog 中建立中繼資料資料表。由於工作流程將使用角色 執行LakeFormationWorkflowRole,因此您必須將這些許可授予角色。

  1. 在 Lake Formation 主控台的導覽窗格中的資料目錄 下,選擇資料庫

  2. 選擇lakeformation_cloudtrail資料庫,然後從動作下拉式清單中選擇標題許可下的授予

  3. 授予資料許可對話方塊中,進行下列選擇:

    1. 主體 下,針對IAM使用者和角色 ,選擇 LakeFormationWorkflowRole

    2. LF 標籤或目錄資源 下,選擇具名資料目錄資源

    3. 對於資料庫 ,您應該會看到lakeformation_cloudtrail資料庫已新增。

    4. 資料庫許可 下,選取建立資料表 修改 捨棄 ,並在選取時清除 Super

    您的授予資料許可對話方塊現在應該看起來像此螢幕擷取畫面。

    授予資料許可對話方塊會顯示文字中所述的選項。對話方塊分為 3 個區段,垂直排列:主體、LF 標籤或目錄資源,以及資料庫許可。
  4. 選擇 Grant (授予)。

如需授予 Lake Formation 許可的詳細資訊,請參閱 管理 Lake Formation 許可

步驟 8:使用藍圖建立工作流程

為了讀取 CloudTrail 日誌、了解其結構、在 Data Catalog 中建立適當的資料表,我們需要設定包含 的工作流程 AWS Glue 爬蟲程式、任務、觸發條件和工作流程。Lake Formation 的藍圖簡化了此程序。

工作流程會產生任務、爬蟲程式和觸發程序,以探索資料並擷取資料到資料湖中。您可以根據其中一個預先定義的 Lake Formation 藍圖建立工作流程。

  1. 在 Lake Formation 主控台的導覽窗格中,選擇藍圖 ,然後選擇使用藍圖

  2. 使用藍圖頁面上的藍圖類型 下,選擇 AWS CloudTrail

  3. 匯入來源 下,選擇 CloudTrail 來源和開始日期。

  4. 匯入目標 下,指定下列參數:

    目標資料庫 lakeformation_cloudtrail
    目標儲存位置 s3://<yourName>-datalake-cloudtrail
    資料格式 Parquet
  5. 針對匯入頻率,選擇隨需執行

  6. 匯入選項 下,指定下列參數:

    工作流程名稱 lakeformationcloudtrailtest
    IAM 角色 LakeFormationWorkflowRole
    資料表字首 cloudtrailtest
    注意

    必須是小寫。

  7. 選擇建立 ,然後等待主控台報告工作流程已成功建立。

    提示

    您是否收到下列錯誤訊息?

    User: arn:aws:iam::<account-id>:user/<datalake_administrator_user> is not authorized to perform: iam:PassRole on resource:arn:aws:iam::<account-id>:role/LakeFormationWorkflowRole...

    如果是,請檢查是否已取代 <account-id> 在具有有效 AWS 帳戶號碼的資料湖管理員使用者的內嵌政策中。

步驟 9:執行工作流程

由於您指定工作流程為 run-on-demand,因此您必須手動啟動工作流程。

  • 藍圖頁面上,選取工作流程 lakeformationcloudtrailtest,然後在動作功能表中選擇開始

    當工作流程執行時,您可以在上次執行狀態欄中檢視其進度。偶爾選擇重新整理按鈕。

    狀態會從 RUNNING探索 匯入 、 到 COMPLETED

    當工作流程完成時:

    • Data Catalog 將具有新的中繼資料資料表。

    • 您的 CloudTrail 日誌將擷取到資料湖中。

    如果工作流程失敗,請執行下列動作:

    1. 選取工作流程,然後在動作功能表中,選擇檢視圖形

      工作流程會在 中開啟 AWS Glue 主控台。

    2. 確認已選取工作流程,然後選擇 History (歷史記錄) 標籤。

    3. 歷史記錄 下,選取最近的執行,然後選擇檢視執行詳細資訊

    4. 在動態 (執行時間) 圖形中選取失敗的任務或爬蟲程式,然後檢閱錯誤訊息。失敗的節點為紅色或黃色。

步驟 10:SELECT授予資料表

您必須授予新 Data Catalog 資料表的SELECT許可,資料分析師才能查詢資料表指向的資料。

注意

工作流程會自動將所建立資料表的SELECT許可授予執行該資料表的使用者。由於資料湖管理員執行此工作流程,您必須SELECT授予資料分析師。

  1. 在 Lake Formation 主控台的導覽窗格中的資料目錄 下,選擇資料庫

  2. 選擇lakeformation_cloudtrail資料庫,然後從動作下拉式清單中,在標題許可下選擇授予

  3. 授予資料許可對話方塊中,進行下列選擇:

    1. 主體 下,針對IAM使用者和角色 ,選擇 datalake_user

    2. LF 標籤或目錄資源 下,選擇具名資料目錄資源

    3. 對於資料庫 ,應已選取lakeformation_cloudtrail資料庫。

    4. 針對資料表 ,選擇 cloudtrailtest-cloudtrail

    5. 資料表和資料欄許可 下,選擇選取

  4. 選擇 Grant (授予)。

下一個步驟會以資料分析師身分執行。

步驟 11:使用 查詢資料湖 Amazon Athena

使用 Amazon Athena 主控台查詢 CloudTrail 資料湖中的資料。

  1. 開啟位於 的 Athena 主控台,https://console.aws.amazon.com/athena/並以資料分析師使用者 身分登入datalake_user

  2. 如有必要,請選擇開始使用以繼續前往 Athena 查詢編輯器。

  3. 對於 Data source (資料來源),請選擇 AwsDataCatalog

  4. 針對 Database (資料庫),輸入 lakeformation_cloudtrail

    資料表清單會填入 。

  5. 在資料表 旁的溢位選單 (水平排列 3 個點) 上cloudtrailtest-cloudtrail,選擇預覽資料表 ,然後選擇執行

    查詢會執行並顯示 10 列資料。

    如果您之前未使用 Athena,您必須先在 Athena 主控台中設定 Amazon S3 位置,以儲存查詢結果。datalake_user 必須有必要的許可,才能存取您選擇的 Amazon S3 儲存貯體。

注意

現在您已完成教學課程,請將資料許可和資料位置許可授予組織中的主體。