- 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
- 對視覺化進行排序
- 電子郵件報告選擇加入
- 將儀表盤重置為預設選項
- 撤消/重做儀表盤上的操作