如何對 Athena 中的 Lake Formation 許可問題進行疑難排解?

2 分的閱讀內容
0

由於「Lake Formation 許可不足」或「COLUMN_NOT_FOUND」錯誤,我的 Amazon Athena 查詢失敗。

解決方法

對您收到的錯誤訊息執行以下疑難排解步驟。

錯誤「Amazon_S3_location 上的 Lake Formation 許可不足」

當 AWS Identity and Access Management (IAM) 使用者或角色符合下列條件時,您會收到此錯誤:

  • IAM 使用者或角色沒有來自 Lake Formation 的適當的 Amazon Simple Storage Service (Amazon S3) 資料位置許可。
  • IAM 使用者或角色嘗試在向 AWS Lake Formation 註冊的 Amazon S3 儲存貯體上建立或變更 Data Catalog 資源

若要解決此錯誤,您必須將資料位置許可授予您用來建立資料庫或資料表的 IAM 使用者或角色。將 Athena 與 Lake Formation 搭配使用時,務必從 Lake Formation 向 IAM 使用者或角色授予所需的 S3 許可。此外,請務必授予 IAM 使用者或角色所需的資料存取許可。

資料存取許可允許 IAM 使用者或角色讀取資料並將資料寫入 Amazon S3 位置。但是,Lake Formation 中的資料位置許可允許 IAM 使用者或角色建立和變更 Data Catalog 資源。Data Catalog 資源會指向註冊的 Amazon S3 位置。

確認資料湖位置已向 Lake Formation 註冊

  1. 開啟 AWS Lake Formation 主控台
  2. 在導覽窗格的管理下,選擇資料湖位置
  3. 資料湖位置中,檢查 Data Catalog 資源指向的 S3 路徑已向 Lake Formation 註冊。

從 AWS Lake Formation 主控台授予資料位置許可

  1. 在導覽窗格中,選擇資料位置
  2. 選取授予
  3. 授予許可對話方塊中,選取我的帳戶
  4. 對於 IAM 使用者和角色,選取您要授予許可的 IAM 使用者或角色。
  5. 對於儲存位置,選取您從中收到錯誤的 S3 路徑。
  6. 選擇授予

**注意:**僅當 S3 路徑位於同一帳戶內時,才執行這些步驟。如果 S3 路徑位於不同的帳戶中,請先確保符合所有跨帳户存取權先決條件。然後,遵循授予資料位置許可 (外部帳戶) 中提供的指示進行操作。

如需詳細資訊,請參閱授予資料位置許可 (相同帳戶)

錯誤「database_name 上的 Lake Formation 許可不足」

依照下列步驟向 IAM 使用者或角色授予資料庫的許可。

  1. 開啟 Lake Formation 主控台
  2. 在導覽窗格中,選擇資料庫
  3. 選擇您的資料庫名稱,選擇動作,然後選擇授予
  4. 主體下,選擇 IAM 使用者和角色
  5. 對於 IAM 使用者和角色,選擇您要授予資料庫許可的 IAM 使用者或角色。
  6. LF 標籤或型錄資源下,選擇具名資料型錄資源
  7. 資料庫許可下,選擇**描述。
    注意:**您也可以根據使用案例新增其他許可。
  8. 選擇授予

錯誤「Lake Formation 許可不足: 需要在 database_name 上建立資料表」

依照下列步驟授予資料庫的 IAM 許可。

  1. 開啟 Lake Formation 主控台
  2. 在導覽窗格的許可下,選擇資料湖許可
  3. 選擇授予
  4. 主體下,選擇 IAM 使用者和角色
  5. 對於 IAM 使用者和角色,選擇您要用於 Athena 的 IAM 使用者或角色。
  6. LF 標籤或型錄資源下,選擇具名資料型錄資源
  7. 對於資料庫,選擇您的 IAM 使用者或角色寫入的資料庫。
  8. 資料庫許可下,根據您的使用案例選擇建立資料表描述
    注意: IAM 使用者或角色必須在資料庫上具有描述建立資料表許可,才能建立資料表。
  9. 選擇授予

錯誤「COLUMN_NOT_FOUND:行 1:8: 沒有資料欄的關係中不允許使用 SELECT *」

依照下列步驟檢查資料庫的 DESCRIBE 許可。然後,檢查資料表上的 DESCRIBESELECT 許可。

**注意:**Lake Formation 管理員可以在 Athena 主控台中查看資料庫和資料表,但需要所需的許可才能查詢資料。

使用具名資源方法授予資料庫許可

  1. 開啟 Lake Formation 主控台
  2. 在導覽窗格的許可下,選擇資料湖許可
  3. 選擇授予
  4. 主體下,選擇 IAM 使用者和角色
  5. 對於 IAM 使用者和角色,選擇您要與 Athena 搭配使用的 IAM 使用者或角色。
  6. LF 標籤或型錄資源下,選擇具名資料型錄資源
  7. 對於資料庫,選擇您的資料表的資料庫。
  8. 資料庫許可下,選擇描述
  9. 選擇授予

如需詳細資訊,請參閱使用具名資源方法授予資料庫許可

使用具名資源方法授予資料表許可

  1. 開啟 Lake Formation 主控台
  2. 在導覽窗格的許可下,選擇資料湖許可
  3. 選擇授予
  4. 主體下,選擇 IAM 使用者和角色
  5. 對於 IAM 使用者和角色,選擇您要與 Athena 搭配使用的 IAM 使用者或角色。
  6. LF 標籤或型錄資源下,選擇具名資料型錄資源
  7. 對於資料庫,選擇您的資料庫。
  8. 對於資料表,選擇一個或多個資料表,或所有資料表
  9. 資料表許可下,選擇選取描述以執行 SELECT 查詢,或為您的使用案例選擇資料表許可。
  10. 選擇授予

注意:您也可以透過資料表的資源連結授予對資料表的許可。若要執行此操作,請在資料表頁面上,選擇資源連結,選擇動作,然後選擇授予目標。如需詳細資訊,請參閱 Lake Formation 中的資源連結如何運作

相關資訊

授予資料位置許可

AWS 官方
AWS 官方已更新 1 年前