AWS Quicksight: dashboard di incorporamento

Puoi anche incorporare i tuoi dashboard Quicksight in applicazioni / pagine web esterne o puoi controllare l'accesso degli utenti utilizzando il servizio AWS Cognito. Per eseguire il controllo utente, è possibile creare pool di utenti e pool di identità in Cognito e assegnare criteri del dashboard di incorporamento al pool di identità.

AWS Cognito è un servizio IAM che consente agli amministratori di creare e gestire utenti temporanei per fornire l'accesso alle applicazioni. Con l'uso del pool di identità, puoi gestire le autorizzazioni su questi pool di utenti.

Vediamo come possiamo generare un URL del dashboard sicuro ed eseguire il controllo utente -

Passaggio 1: creazione di pool di utenti e utenti

Crea pool di utenti in AWS Cognito e crea utenti. Vai aAmazon Cognito → Manage User Pools → Create a User Pool.

Passaggio 2: creazione di un pool di identità

Quando viene creato il pool di utenti, il passaggio successivo consiste nel creare un pool di identità. Vai ahttps://console.aws.amazon.com/cognito/home?region=us-east-1

Fare clic su "Crea nuovo pool di identità".

Immettere il nome appropriato di un pool di identità. Vai alla sezione Provider di autenticazione e seleziona l'opzione "Cognito".

Passaggio 3: creazione dei ruoli Cognito

Immettere l'ID del pool di utenti (l'ID del pool di utenti) e l'ID del client dell'app (andare su Client delle app nel pool di utenti e copiare l'ID).

Successivamente, fare clic su "Crea pool" e quindi su "Consenti" per creare i ruoli del pool di identità in IAM. Creerà 2 ruoli Cognito.

Passaggio 4: assegnazione di criteri personalizzati

Il passaggio successivo consiste nell'assegnare criteri personalizzati ai ruoli di identità creati nel passaggio precedente:

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

Puoi passare il dashboard Amazon Resource Name (ARN) sotto quicksight: GetDashboardEmbedUrl " invece di" * "per limitare l'accesso dell'utente a un solo dashboard.

Passaggio 5: accesso all'applicazione Cognito

Il passaggio successivo consiste nell'accedere all'applicazione Cognito con le credenziali utente nel pool di utenti. Quando l'utente accede all'applicazione, Cognito genera 3 token:

  • IDToken
  • AccessToken
  • Aggiorna token

Per creare un utente IAM temporaneo, le credenziali sono le seguenti:

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

Per generare credenziali IAM temporanee, è necessario chiamare il metodo del ruolo sts.assume con i parametri seguenti:

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

Passaggio 6: registrazione dell'utente in Quicksight

Il passaggio successivo è registrare l'utente in Quicksight utilizzando "quicksight.registerUser" per le credenziali generate nel passaggio 3 con i parametri seguenti:

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

Passaggio 7: aggiornamento del file di configurazione AWS

Successivamente è necessario aggiornare la configurazione AWS per l'utente generata nel passaggio 5.

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

Passaggio 8: generazione dell'URL di incorporamento per il dashboard Quicksight

Con le credenziali create nel passaggio 5, chiama quicksight.getDashboardEmbedUrl con i parametri seguenti per generare 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);
   }
});

Devi chiamare "QuickSightEmbedding.embedDashboard" dalla tua applicazione utilizzando l'URL generato sopra.

Come Amazon Quicksight, la dashboard incorporata supporta anche le seguenti funzionalità:

  • Opzione di drill-down
  • Azioni personalizzate (collegamento a una nuova scheda)
  • Filtri sullo schermo
  • Scarica in CSV
  • Ordinamento sugli elementi visivi
  • Attivazione rapporto tramite posta elettronica
  • Ripristina la dashboard sull'opzione predefinita
  • Annulla / ripristina azioni sulla dashboard