- 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 SDK
- 开发人员责任
- 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" } ] }
您可以将仪表盘 Amazon 资源名称 (ARN) 传递到 quicksight:GetDashboardEmbedUrl” 中,而不是“*”,以限制用户仅访问一个仪表盘。
步骤 5 - 登录到 Cognito 应用程序
下一步是使用用户池中的用户凭据登录到 Cognito 应用程序。当用户登录到应用程序时,Cognito 将生成 3 个令牌 -
- IDToken
- AccessToken
- RefreshToken
要创建临时 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 中注册用户
下一步是使用步骤 3 中生成的凭据,使用“quicksight.registerUser”在 Quicksight 中注册用户,并使用以下参数 -
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
- 对可视化进行排序
- 电子邮件报告选择加入
- 将仪表盘重置为默认选项
- 撤消/重做仪表盘上的操作