步骤 1:设置权限
重要
Amazon QuickSight 推出了用于嵌入分析的新 API:GenerateEmbedUrlForAnonymousUser
和 GenerateEmbedUrlForRegisteredUser
。
您仍然可以使用 GetDashboardEmbedUrl
和 GetSessionEmbedUrl
API 来嵌入控制面板和 QuickSight 控制台,但其不包含最新的嵌入功能。有关最新的嵌入体验,请参阅 将 QuickSight 分析嵌入到您的应用程序中。
在下节中,您可以了解如何设置后端应用程序或 Web 服务器的权限。该任务需要具有 IAM 的管理访问权限。
访问 QuickSight 的每个用户代入一个角色,该角色向其授予 Amazon QuickSight 访问权限和控制台会话权限。要实现该目的,请在您的亚马逊云科技账户中创建一个 IAM 角色。将一个 IAM policy 与该角色相关联,以便为担任该角色的任何用户提供权限。请添加 quicksight:RegisterUser
权限,确保读者能以只读方式访问 QuickSight,并且无法访问其余数据或创建功能。IAM 角色还需要提供检索控制台会话 URL 的权限。为此,请添加 quicksight:GetSessionEmbedUrl
。
以下示例策略提供了可用于 IdentityType=IAM
的这些权限。
{ "Version": "2012-10-17", "Statement": [ { "Action": "quicksight:RegisterUser", "Resource": "*", "Effect": "Allow" }, { "Action": "quicksight:GetSessionEmbedUrl", "Resource": "*", "Effect": "Allow" } ] }
以下示例策略提供了检索控制台会话 URL 的权限。如果您在用户访问嵌入式会话之前创建用户,则可以使用不具有 quicksight:RegisterUser
的策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "quicksight:GetSessionEmbedUrl" ], "Resource": "*" } ] }
如果您使用 QUICKSIGHT
作为您的 identityType
,并提供用户的 Amazon 资源名称(ARN),则还需要在策略中允许 quicksight:GetAuthCode
操作。以下示例策略提供了此权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "quicksight:GetSessionEmbedUrl", "quicksight:GetAuthCode" ], "Resource": "*" } ] }
您应用程序的 IAM 身份必须具有关联的信任策略,才允许访问您刚创建的角色。这意味着,在用户访问您的应用程序时,您的应用程序可以代表用户代入该角色,并在 QuickSight 中预置用户。以下示例显示了一个名为 embedding_quicksight_console_session_role
的角色,该角色将前面的示例策略作为其资源。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::11112222333:role/
embedding_quicksight_console_session_role
" } }
有关 OpenId Connect 或 SAML 身份验证的信任策略的更多信息,请参阅 IAM 用户指南 的以下部分: