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