當我為未註冊的使用者產生嵌入式 QuickSight 儀表板 URL 時,如何解決 QuickSight 中的許可錯誤?

上次更新日期:2022 年 7 月 19 日

我希望為未註冊的 QuickSight 使用者產生嵌入式 Amazon QuickSight 儀表板 URL,以便將儀表板嵌入到 Web 應用程式中。然而,我遇到了許可錯誤。

簡短描述

後端或 Web 伺服器使用的 AWS Identity and Access Management (IAM) 使用者或角色必須擁有許可,才能為未註冊的使用者產生嵌入式 QuickSight 儀表板 URL。如果 IAM 使用者或角色缺乏正確的許可,您將會收到下列錯誤訊息:

IAM 使用者

An error occurred (AccessDeniedException) when calling the GenerateEmbedUrlForAnonymousUser operation: User: arn:aws:iam::XXXXXXXXXXX:user/user1 is not authorized to perform: quicksight:GenerateEmbedUrlForAnonymousUser on resource: arn:aws:quicksight:region:XXXXXXXXXXX:namespace/default because no identity-based policy allows the quicksight:GenerateEmbedUrlForAnonymousUser action

IAM 角色

An error occurred (AccessDeniedException) when calling the GenerateEmbedUrlForAnonymousUser operation: User: arn:aws:sts::XXXXXXXXXXX:user:assumed-role/role-name/policy-name is not authorized to perform: quicksight:GenerateEmbedUrlForAnonymousUser on resource: arn:aws:quicksight:region:XXXXXXXXXXX:user:namespace/default because no identity-based policy allows the quicksight:GenerateEmbedUrlForAnonymousUser action

若要解決這些錯誤,您必須附加具有必要許可的 IAM 政策。

解決方案

將下列 quicksight:GenerateEmbedUrlForAnonymousUser 動作的 IAM 政策連接到用來呼叫 GenerateEmbedUrlForAnonymousUser API 的 IAM 使用者或角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "quicksight:GenerateEmbedUrlForAnonymousUser",
      "Resource": [
        "arn:aws:quicksight:<region>:<AWS Account ID>:namespace/<namespace>",
        "arn:aws:quicksight:<region>:<AWS Account ID>:dashboard/<Dashboard ID>"
      ]
    }
  ]
}

注意: QuickSight 帳戶上的 Session capacity pricing (工作階段容量定價) 必須啟動,才能為未註冊的使用者嵌入 QuickSight 儀表板 URL。如果選項並未啟動,用戶將會收到 UnsupportedPricingPlanException 錯誤訊息。


此文章是否有幫助?


您是否需要帳單或技術支援?