如何對當我嘗試在 S3 儲存貯體上儲存 Athena 查詢結果時的「無效 S3 位置」錯誤進行疑難排解?

1 分的閱讀內容
0

我的 Amazon Athena 查詢無法在指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體上儲存結果。

簡短描述

Amazon Athena 會自動將每個查詢的查詢結果和中繼資料資訊存放到您可以在 Amazon S3 中指定的查詢結果位置。但是,在下列一或多個情況下,您會收到錯誤「無效的 S3 位置」或「不是有效的 S3 位置」:

  • 您未指定 Amazon S3 查詢結果位置。
  • 您指定的 S3 查詢結果位置不正確。
  • 您指定的 S3 查詢結果在不同的區域。
  • AWS Identity and Access Management (IAM) 使用者沒有設定或檢視查詢結果位置的必要權限。

解決方案

要解決這些錯誤,選擇下列一或多個解決方法:

指定查詢結果位置

執行查詢前,必須指定 Amazon S3 中的查詢結果位置。或您必須使用指定儲存貯體且其組態會覆寫用戶端設定的工作群組。執行下列動作,確認您已在 S3 指定查詢結果位置:

  1. 開啟 Athena 主控台
  2. 從導覽列選擇設定
  3. 確認查詢結果位置指向查詢結果儲存貯體。

如果未指定查詢結果位置,則可以使用 Athena 主控台更新。您也可以在工作群組組態中指定結果位置。如需詳細資訊,請參閱使用工作群組指定查詢結果位置

確認 S3 路徑正確無誤

確認 Athena 主控台指定的查詢結果位置指向正確的 S3 路徑。此外,務必在 S3 路徑的尾端加上斜線 (/) (範例:s3://doc_example_bucket/doc_example_folder/)。

確認 S3 位置在相同區域

確認用於儲存查詢結果的 S3 位置與執行查詢的區域相同。

確認 IAM 使用者有足夠的權限存取查詢結果檔案

確認 IAM 使用者有存取和檢視查詢輸出檔案所需的權限。IAM 使用者/角色需要執行下列動作的權限:

**注意:**對查詢結果位置的 GetObject 動作具有權限的 IAM 主體可以從 S3 擷取查詢結果。即使拒絕 IAM 主體對 GetQueryResults 動作的權限,也是如此。要限制使用者或角色的存取權限,請確保拒絕對 Athena 查詢結果位置的 S3 權限。


相關資訊

使用查詢結果、輸出檔案和查詢歷程記錄

如何對 Amazon S3 的 403 存取被拒錯誤進行疑難排解?

我在 Amazon Athena 中執行查詢時為什麼收到「存取被拒」錯誤?

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