我的 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 指定查詢結果位置:
- 開啟 Athena 主控台。
- 從導覽列選擇設定。
- 確認查詢結果位置指向查詢結果儲存貯體。
如果未指定查詢結果位置,則可以使用 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 中執行查詢時為什麼收到「存取被拒」錯誤?