AWS Quicksight - Tableau de bord d'intégration

Vous pouvez également intégrer vos tableaux de bord Quicksight dans des applications / pages Web externes ou contrôler l'accès des utilisateurs à l'aide du service AWS Cognito. Pour effectuer le contrôle des utilisateurs, vous pouvez créer un pool d'utilisateurs et un pool d'identités dans Cognito et attribuer des stratégies de tableau de bord incorporé au pool d'identités.

AWS Cognito est un service IAM qui permet aux administrateurs de créer et de gérer des utilisateurs temporaires pour fournir l'accès aux applications. Avec l'utilisation du pool d'identités, vous pouvez gérer les autorisations sur ces pools d'utilisateurs.

Voyons comment nous pouvons générer une URL de tableau de bord sécurisée et effectuer un contrôle utilisateur -

Étape 1 - Création de groupes d'utilisateurs et d'utilisateurs

Créez un pool d'utilisateurs dans AWS Cognito et créez des utilisateurs. Aller àAmazon Cognito → Manage User Pools → Create a User Pool.

Étape 2 - Création d'un pool d'identités

Lorsque le pool d'utilisateurs est créé, l'étape suivante consiste à créer un pool d'identités. Aller àhttps://console.aws.amazon.com/cognito/home?region=us-east-1

Cliquez sur «Create New Identity Pool».

Entrez le nom approprié d'un pool d'identités. Accédez à la section Fournisseurs d'authentification et sélectionnez l'option «Cognito».

Étape 3 - Création de rôles Cognito

Entrez l'ID du pool d'utilisateurs (votre ID de pool d'utilisateurs) et l'ID du client d'application (accédez à Clients d'application dans le pool d'utilisateurs et copiez l'ID).

Ensuite, cliquez sur «Créer un pool», puis sur «Autoriser» pour créer des rôles du pool d'identités dans IAM. Cela créera 2 rôles Cognito.

Étape 4 - Attribution d'une stratégie personnalisée

L'étape suivante consiste à attribuer une stratégie personnalisée aux rôles d'identité créés à l'étape ci-dessus -

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Action": "quicksight:RegisterUser",
         "Resource": "*",
         "Effect": "Allow"
      },
      {
         "Action": "quicksight:GetDashboardEmbedUrl",
         "Resource": "*",
         "Effect": "Allow"
      },
      {
         "Action": "sts:AssumeRole",
         "Resource": "*",
         "Effect": "Allow"
      }
   ]
}

Vous pouvez passer le tableau de bord Amazon Resource Name (ARN) sous Quicksight: GetDashboardEmbedUrl » au lieu de« * »pour restreindre l'utilisateur à accéder à un seul tableau de bord.

Étape 5 - Connexion à l'application Cognito

L'étape suivante consiste à vous connecter à l'application Cognito avec les informations d'identification de l'utilisateur dans le groupe d'utilisateurs. Lorsque l'utilisateur se connecte à l'application, Cognito génère 3 jetons -

  • IDToken
  • AccessToken
  • Actualiser le jeton

Pour créer un utilisateur IAM temporaire, les informations d'identification sont indiquées ci-dessous:

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
   }
});

Pour générer des informations d'identification IAM temporaires, vous devez appeler la méthode de rôle sts.assume avec les paramètres ci-dessous:

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);
   })
}

Étape 6 - Enregistrement de l'utilisateur dans Quicksight

L'étape suivante consiste à enregistrer l'utilisateur dans Quicksight en utilisant «quicksight.registerUser» pour les informations d'identification générées à l'étape 3 avec les paramètres ci-dessous -

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”);
   }
})

Étape 7 - Mise à jour du fichier de configuration AWS

La prochaine étape consiste à mettre à jour la configuration AWS pour l'utilisateur générée à l'étape 5.

AWS.config.update({
   accessKeyId: AccessToken,
   secretAccessKey: SecretAccessKey ,
   sessionToken: SessionToken,
   "region": Region
});

Étape 8 - Génération de l'URL d'intégration pour le tableau de bord Quicksight

Une fois les informations d'identification créées à l'étape 5, appelez quicksight.getDashboardEmbedUrl avec les paramètres ci-dessous pour générer l'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);
   }
});

Vous devez appeler «QuickSightEmbedding.embedDashboard» depuis votre application en utilisant l'URL générée ci-dessus.

Comme Amazon Quicksight, le tableau de bord intégré prend également en charge les fonctionnalités suivantes:

  • Option d'exploration
  • Actions personnalisées (lien vers un nouvel onglet)
  • Filtres à l'écran
  • Télécharger en CSV
  • Tri sur les visuels
  • Activation du rapport par e-mail
  • Réinitialiser le tableau de bord aux paramètres par défaut
  • Annuler / rétablir des actions sur le tableau de bord