- AWS Quicksight 教程
- AWS Quicksight - 主页
- AWS Quicksight - 概述
- AWS Quicksight - 登陆页面
- AWS Quicksight - 使用数据源
- AWS Quicksight - 数据源限制
- AWS Quicksight - 编辑数据集
- AWS Quicksight - 创建新分析
- AWS Quicksight - 添加视觉效果
- 使用滤镜来呈现视觉效果
- AWS Quicksight - 见解
- AWS Quicksight - 创建故事
- AWS Quicksight - 使用参数
- AWS Quicksight - 共享分析
- AWS Quicksight - 仪表板
- AWS Quicksight - 管理 Quicksight
- AWS Quicksight - 版本类型
- AWS Quicksight - 管理 IAM 策略
- AWS Quicksight - 嵌入仪表板
- AWS Quicksight - AWS 开发工具包
- 开发者的责任
- AWS Quicksight 有用资源
- AWS Quicksight - 快速指南
- AWS Quicksight - 有用的资源
- AWS Quicksight - 讨论
AWS Quicksight - 嵌入仪表板
您还可以将 Quicksight 仪表板嵌入到外部应用程序/网页中,或者可以使用 AWS Cognito 服务控制用户访问。要执行用户控制,您可以在 Cognito 中创建用户池和身份池,并将嵌入仪表板策略分配给身份池。
AWS Cognito 是一项 IAM 服务,允许管理员创建和管理临时用户以提供对应用程序的访问权限。通过使用身份池,您可以管理这些用户池的权限。
让我们看看如何生成安全的仪表板 URL 并执行用户控制 -
步骤 1 - 创建用户池和用户
在 AWS Cognito 中创建用户池并创建用户。转至Amazon Cognito → 管理用户池 → 创建用户池。
第 2 步 - 创建身份池
创建用户池后,下一步是创建身份池。转到https://console.aws.amazon.com/cognito/home?region=us-east-1
单击“创建新身份池”。
输入身份池的适当名称。转到身份验证提供程序部分并选择“Cognito”选项。
第 3 步 - 创建 Cognito 角色
输入用户池 ID(您的用户池 ID)和应用程序客户端 ID(转到用户池中的应用程序客户端并复制 ID)。
接下来是单击“创建池”,然后单击“允许”在 IAM 中创建身份池的角色。它将创建 2 个 Cognito 角色。
第 4 步 - 分配自定义策略
下一步是将自定义策略分配给在上述步骤中创建的身份角色 -
{ "Version": "2012-10-17", "Statement": [ { "Action": "quicksight:RegisterUser", "Resource": "*", "Effect": "Allow" }, { "Action": "quicksight:GetDashboardEmbedUrl", "Resource": "*", "Effect": "Allow" }, { "Action": "sts:AssumeRole", "Resource": "*", "Effect": "Allow" } ] }
您可以在“quicksight:GetDashboardEmbedUrl”下传递仪表板 Amazon 资源名称 (ARN),而不是“*”,以限制用户只能访问一个仪表板。
第 5 步 - 登录 Cognito 应用程序
下一步是使用用户池中的用户凭据登录 Cognito 应用程序。当用户登录应用程序时,Cognito 会生成 3 个令牌 -
- IDToken
- 访问令牌
- 刷新令牌
要创建临时 IAM 用户,凭据如下所示 -
AWS.config.region = 'us-east-1'; AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId:"Identity pool ID", Logins: { 'cognito-idp.us-east-1.amazonaws.com/UserPoolID': AccessToken } });
为了生成临时 IAM 凭证,您需要使用以下参数调用 sts.assume 角色方法 -
var params = { RoleArn: "Cognito Identity role arn", RoleSessionName: "Session name" }; sts.assumeRole(params, function (err, data) { if (err) console.log( err, err.stack); // an error occurred else { console.log(data); }) }
步骤 6 - 在 Quicksight 中注册用户
下一步是使用“quicksight.registerUser”在 Quicksight 中注册用户,获取步骤 3 中生成的凭据,并使用以下参数 -
var params = { AwsAccountId: “account id”, Email: 'email', IdentityType: 'IAM' , Namespace: 'default', UserRole: ADMIN | AUTHOR | READER | RESTRICTED_AUTHOR | RESTRICTED_READER, IamArn: 'Cognito Identity role arn', SessionName: 'session name given in the assume role creation', }; quicksight.registerUser(params, function (err, data1) { if (err) console.log("err register user”); // an error occurred else { // console.log("Register User1”); } })
第 7 步 - 更新 AWS 配置文件
接下来是更新步骤 5 中生成的用户的 AWS 配置。
AWS.config.update({ accessKeyId: AccessToken, secretAccessKey: SecretAccessKey , sessionToken: SessionToken, "region": Region });
第 8 步 - 为 Quicksight 仪表板生成嵌入 URL
使用步骤 5 中创建的凭据,使用以下参数调用 Quicksight.getDashboardEmbedUrl 以生成 URL。
var params = { AwsAccountId: "Enter AWS account ID", DashboardId: "Enter dashboard Id", IdentityType: "IAM", ResetDisabled: true, SessionLifetimeInMinutes: between 15 to 600 minutes, UndoRedoDisabled: True | False } quicksight.getDashboardEmbedUrl(params,function (err, data) { if (!err) { console.log(data); } else { console.log(err); } });
您必须使用上面生成的 URL 从应用程序调用“QuickSightEmbedding.embedDashboard”。
与 Amazon Quicksight 一样,嵌入式仪表板也支持以下功能 -
- 向下钻取选项
- 自定义操作(链接到新选项卡)
- 屏幕过滤器
- 下载到 CSV
- 按视觉效果排序
- 选择加入电子邮件报告
- 将仪表板重置为默认选项
- 在仪表板上撤消/重做操作