AWS Quicksight - การฝังแดชบอร์ด
คุณยังสามารถฝังแดชบอร์ด Quicksight ลงในแอปพลิเคชัน / เว็บเพจภายนอกหรือสามารถควบคุมการเข้าถึงของผู้ใช้โดยใช้บริการ AWS Cognito ในการดำเนินการควบคุมผู้ใช้คุณสามารถสร้างพูลผู้ใช้และพูลข้อมูลประจำตัวใน Cognito และกำหนดนโยบายแดชบอร์ดแบบฝังให้กับพูลข้อมูลประจำตัว
AWS Cognito เป็นบริการ IAM ที่ช่วยให้ผู้ดูแลระบบสามารถสร้างและจัดการผู้ใช้ชั่วคราวเพื่อให้เข้าถึงแอปพลิเคชันได้ คุณสามารถจัดการสิทธิ์ในพูลผู้ใช้เหล่านี้ได้ด้วยการใช้พูลข้อมูลประจำตัว
มาดูกันว่าเราจะสร้าง URL แดชบอร์ดที่ปลอดภัยและควบคุมผู้ใช้ได้อย่างไร -
ขั้นตอนที่ 1 - การสร้างกลุ่มผู้ใช้และผู้ใช้
สร้างกลุ่มผู้ใช้ใน AWS Cognito และสร้างผู้ใช้ ไปที่Amazon Cognito → Manage User Pools → Create a User Pool.
ขั้นตอนที่ 2 - การสร้างกลุ่มข้อมูลประจำตัว
เมื่อสร้างพูลผู้ใช้ขั้นตอนต่อไปคือการสร้างพูลเอกลักษณ์ ไปที่https://console.aws.amazon.com/cognito/home?region=us-east-1
คลิกที่ "Create New Identity Pool"
ป้อนชื่อที่เหมาะสมของกลุ่มข้อมูลประจำตัว ไปที่ส่วน Authentication Providers แล้วเลือกตัวเลือก“ Cognito”
ขั้นตอนที่ 3 - การสร้างบทบาท Cognito
ป้อน User Pool ID (User pool ID ของคุณ) และ App Client ID (ไปที่ App Clients ใน user pool และ copy 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 Resource Name (ARN) ภายใต้การตรวจสอบอย่างรวดเร็ว: GetDashboardEmbedUrl”แทน“ *” เพื่อ จำกัด ผู้ใช้ให้เข้าถึงแดชบอร์ดเดียว
ขั้นตอนที่ 5 - เข้าสู่แอปพลิเคชัน Cognito
ขั้นตอนต่อไปคือการล็อกอินเข้าสู่แอปพลิเคชัน Cognito ด้วยข้อมูลรับรองผู้ใช้ในกลุ่มผู้ใช้ เมื่อผู้ใช้ล็อกอินเข้าสู่แอปพลิเคชัน Cognito จะสร้างโทเค็น 3 รายการ -
- IDToken
- AccessToken
- รีเฟรชโทเค็น
ในการสร้างผู้ใช้ 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 สมมติว่า role method ด้วยพารามิเตอร์ด้านล่าง -
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 โดยใช้“ quicksight.registerUser” สำหรับข้อมูลรับรองที่สร้างขึ้นในขั้นตอนที่ 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 Configuration
ถัดไปคือการอัปเดตการกำหนดค่า AWS สำหรับผู้ใช้ที่สร้างขึ้นในขั้นตอนที่ 5
AWS.config.update({
accessKeyId: AccessToken,
secretAccessKey: SecretAccessKey ,
sessionToken: SessionToken,
"region": Region
});
ขั้นตอนที่ 8 - การสร้าง URL แบบฝังสำหรับแดชบอร์ด Quicksight
ด้วยข้อมูลรับรองที่สร้างขึ้นในขั้นตอนที่ 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);
}
});
คุณต้องเรียก“ QuickSightEmbedding.embedDashboard” จากแอปพลิเคชันของคุณโดยใช้ URL ที่สร้างขึ้นด้านบน
เช่นเดียวกับ Amazon Quicksight แดชบอร์ดแบบฝังยังรองรับคุณสมบัติต่อไปนี้ -
- ตัวเลือกเจาะลึก
- การดำเนินการแบบกำหนดเอง (ลิงก์ไปยังแท็บใหม่)
- ตัวกรองบนหน้าจอ
- ดาวน์โหลดเป็น CSV
- การเรียงลำดับบนภาพ
- เลือกใช้รายงานอีเมล
- รีเซ็ตแดชบอร์ดเป็นตัวเลือกค่าเริ่มต้น
- เลิกทำ / ทำซ้ำการกระทำบนแดชบอร์ด