AWS Quicksight - Menyematkan Dasbor
Anda juga dapat menyematkan dasbor Quicksight Anda ke dalam aplikasi / halaman web eksternal atau dapat mengontrol akses pengguna menggunakan layanan AWS Cognito. Untuk melakukan kontrol pengguna, Anda dapat membuat kumpulan pengguna dan kumpulan identitas di Cognito dan menetapkan kebijakan dasbor Sematkan ke kumpulan identitas.
AWS Cognito adalah layanan IAM yang memungkinkan administrator membuat dan mengelola pengguna sementara untuk memberikan akses ke aplikasi. Dengan penggunaan kumpulan identitas, Anda dapat mengelola izin pada kumpulan pengguna ini.
Mari kita lihat bagaimana kita dapat menghasilkan URL dasbor aman dan melakukan kontrol pengguna -
Langkah 1 - Membuat kumpulan pengguna dan pengguna
Buat kumpulan pengguna di AWS Cognito dan buat pengguna. Pergi keAmazon Cognito → Manage User Pools → Create a User Pool.
Langkah 2 - Membuat kumpulan identitas
Saat kumpulan pengguna dibuat, langkah selanjutnya adalah membuat kumpulan identitas. Pergi kehttps://console.aws.amazon.com/cognito/home?region=us-east-1
Klik "Buat Kumpulan Identitas Baru".
Masukkan nama yang sesuai dari pangkalan identitas. Buka bagian Penyedia Autentikasi dan pilih opsi "Penyamaran".
Langkah 3 - Membuat peran Cognito
Masukkan ID Kumpulan Pengguna (ID kumpulan Pengguna Anda) dan ID Klien Aplikasi (buka Klien Aplikasi di kumpulan pengguna dan salin ID).
Selanjutnya adalah mengklik 'Buat Pangkalan' dan klik 'Izinkan' untuk membuat peran pangkalan identitas di IAM. Ini akan membuat 2 peran Cognito.
Langkah 4 - Menetapkan Kebijakan Kustom
Langkah selanjutnya adalah menetapkan kebijakan khusus untuk peran identitas yang dibuat pada langkah di atas -
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "quicksight:RegisterUser",
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "quicksight:GetDashboardEmbedUrl",
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "sts:AssumeRole",
"Resource": "*",
"Effect": "Allow"
}
]
}
Anda dapat melewati dasbor Amazon Resource Name (ARN) di bawah quicksight: GetDashboardEmbedUrl ” alih-alih“ * ”untuk membatasi pengguna hanya untuk mengakses satu dasbor.
Langkah 5 - Masuk ke aplikasi Cognito
Langkah selanjutnya adalah login ke aplikasi Cognito dengan kredensial pengguna di kumpulan pengguna. Saat pengguna masuk ke aplikasi, Cognito menghasilkan 3 token -
- IDToken
- AccessToken
- Segarkan Token
Untuk membuat pengguna IAM sementara, kredensial seperti yang ditunjukkan di bawah ini -
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
}
});
Untuk membuat kredensial IAM sementara, Anda perlu memanggil metode peran sts.assume dengan parameter di bawah ini -
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);
})
}
Langkah 6 - Mendaftarkan pengguna di Quicksight
Langkah selanjutnya adalah mendaftarkan pengguna di Quicksight menggunakan "quicksight.registerUser" untuk kredensial yang dibuat di langkah 3 dengan parameter di bawah ini -
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”);
}
})
Langkah 7 - Memperbarui file Konfigurasi AWS
Berikutnya adalah memperbarui konfigurasi AWS untuk pengguna yang dibuat di langkah 5.
AWS.config.update({
accessKeyId: AccessToken,
secretAccessKey: SecretAccessKey ,
sessionToken: SessionToken,
"region": Region
});
Langkah 8 - Membuat URL sematan untuk dasbor Quicksight
Dengan kredensial yang dibuat pada langkah 5, panggil quicksight.getDashboardEmbedUrl dengan parameter di bawah ini untuk menghasilkan 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);
}
});
Anda harus memanggil "QuickSightEmbedding.embedDashboard" dari aplikasi Anda menggunakan URL yang dibuat di atas.
Seperti Amazon Quicksight, dasbor tertanam juga mendukung fitur-fitur berikut -
- Opsi lihat perincian
- Tindakan kustom (link ke tab baru)
- Filter di layar
- Unduh ke CSV
- Menyortir pada visual
- Laporan email keikutsertaan
- Setel ulang dasbor ke opsi default
- Urungkan / ulangi tindakan di dasbor