我在 QuickSight 中將 Athena 作為資料來源使用時,如何解決「存取遭拒」錯誤?
我嘗試在 Amazon QuickSight 帳戶中將 Amazon Athena 作為資料來源使用時,遇到「存取遭拒」錯誤。
簡短說明
以下是您在 Amazon QuickSight 中將 Amazon Athena 作為資料來源使用時,遇到 存取遭拒錯誤的常見原因:
- 您的 QuickSight 帳戶沒有存取 Amazon Simple Storage Service (Amazon S3) 儲存貯體的所需許可。
- 您的資料檔案已使用 AWS Key Management Service (KMS) 金鑰加密。
- 您不必擁有指派給您的必要 AWS Identity and Access Management (IAM) 許可政策。
- Amazon S3 儲存貯體不存在。或者,用於查詢資料的 IAM 角色並沒有所需的 S3 許可。
- (使用 AWS Organizations 的 QuickSight 帳戶) 您沒有指派給您的必要服務控制政策 (SCP)。
- (使用 Lake Formation 的 Athena 帳戶) 您的 QuickSight 使用者或群組沒有 AWS Lake Formation 許可。
注意: 在開始疑難排解之前,請確定您可以存取 Athena 中的資料。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱AWS CLI 錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
您的 QuickSight 帳戶沒有存取 Amazon S3 儲存貯體的所需許可
您會收到類似下列內容的錯誤:
"An error has been thrown from AWS Athena client.Permission denied on S3 path:sourceErrorMessage: s3:/example bucket/object name"
若要取得 S3 儲存貯體的許可,請完成下列步驟:
- 開啟 Amazon QuickSight 主控台。
- 選擇管理 QuickSight。
- 選擇安全和許可。
- 在 QuickSight 存取 AWS 服務下方,選擇管理。
- 從 AWS Services 清單,選取 Amazon S3。
- 選擇選取 S3 儲存貯體,然後選取 S3 儲存貯體。
- 選擇Athena 工作群組的寫入許可,然後選擇完成。
- 選擇儲存。
您的資料檔案已使用 AWS KMS 金鑰加密
如果您的資料檔案已使用 AWS KMS 金鑰加密,Amazon S3 會拒絕您存取資料。若要解決此問題,請使用 AWS CLI 或 AWS KMS 主控台授予 AWS KMS 金鑰的 QuickSight 服務角色存取權。
使用 AWS CLI
請完成下列步驟:
-
使用 IAM 主控台找到 QuickSight 服務角色 ARN。
-
使用 Amazon S3 主控台尋找 AWS KMS 金鑰 ARN。
-
前往包含資料檔案的儲存貯體。
-
選擇概觀索引標籤,然後找到 KMS 金鑰 ID。
-
將 QuickSight 服務角色 ARN 新增到 KMS 金鑰政策。
-
執行 AWS CLI create-grant 命令:
aws kms create-grant --key-id aws_kms_key_arn --grantee-principal quicksight_role_arn --operations Decrypt
**注意:**用 AWS KMS 金鑰的 ARN 取代 aws_kms_key_arn,並用 QuickSight 服務角色的 ARN 取代 quicksight_role_arn。
使用 AWS KMS 主控台
若要將 QuickSight 服務角色新增到 AWS KMS 金鑰政策,請變更金鑰政策。然後,將下列許可新增到金鑰政策:
{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::aws-account-id:role/service-role/aws-quicksight-service-role-v0", "arn:aws:iam::aws-account-id:role/service-role/aws-quicksight-s3-consumers-role-v0" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*" }
注意: 在上述政策中,請確定在主體區段中,新增 QuickSight 服務角色的 ARN。
您不必擁有指派給您的必 IAM 許可政策
若要查看哪些政策已指派給您,並驗證政策是否限制您存取,請完成下列步驟:
- 開啟 Amazon QuickSight 主控台。
- 選擇管理 QuickSight。
- 選擇安全和許可。
- 選擇 IAM 政策指派。
- 檢查是否有 Athena 存取權的任何 IAM 政策指派。
- 請驗證此政策並未限制您存取 S3 或 Athena。
如果政策限制您存取 S3 或 Athena,則請您的 QuickSight 管理員變更政策。如果您是管理員,請關閉 IAM 政策指派,並編輯政策以包括 S3 和 Athena 許可。如需詳細資訊,請參閱透過 IAM 設定 AWS 服務的精細存取權。
S3 儲存貯體不存在。或者,用於查詢資料的 IAM 角色並沒有所需的 S3 許可
如果您收到下列錯誤:
「無法驗證/建立輸出儲存貯體。」
若要解決上述錯誤,請參閱如何解決 Amazon Athena 中的「無法驗證/建立輸出儲存貯體」錯誤?
如果儲存主體不存在,請新增有效的 S3 儲存貯體。前往 Amazon QuickSight 主控台,從 AWS Services 清單選取 Amazon S3。然後,選取用於查詢結果位置的 S3 儲存貯體。
您沒有指派給您 (Organizations) 的必要 SCP
請 Organizations 管理員檢查您的 SCP 設定,以驗證指派給您的許可。如果您是 Organizations 管理員,請參閱建立、更新和刪除服務控制政策。
您的 QuickSight 使用者或群組沒有 Lake Formation 許可
如果是使用 Lake Formation 的 Athena 帳戶,您可能會收到下列錯誤:
"An error has been thrown from the AWS Athena client.Insufficient permissions to execute the query.Insufficient Lake Formation permission(s)."
若要授予 QuickSight 的 Lake Formation 許可,您必須是 Lake Formation 管理員。
請完成下列步驟:
-
找到 QuickSight 使用者或群組的 ARN。
-
執行下列其中一個 AWS CLI 命令:
aws quicksight describe-user --user-name user_name --aws-account-id account_id --namespace default
-or-
aws quicksight describe-group --group-name group_name --aws-account-id account_id --namespace default
**注意:**在上述命令中,請將 user_name 取代為您的使用者名稱、將 group_name 取代為您的群組名稱,以及將 account_id 取代為您的帳戶 ID。
-
選擇資料表。
-
選擇動作,然後選擇許可。
-
從主體清單,選擇授予。
-
在 SAML 和 Amazon QuickSight 使用者和群組下方,輸入 QuickSight 使用者或群組 ARN。例如,arn:aws:quicksight:region:accountId:user/namespace/username。
-
選取正確的資料來源,然後選擇全部資料表。資料表許可為選取和描述。
-
選擇授予。
授予許可後,請返回 QuickSight 主控台,嘗試再次建立資料集。
相關資訊
搭配 Amazon QuickSight 使用 Athena 時許可不足

相關內容
- 已提問 2 年前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前