我希望為未註冊的 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 錯誤訊息。
相關資訊
為所有人嵌入 QuickSight 資料儀表板