AWS Quicksight: panel de incrustación
También puede incrustar sus paneles de Quicksight en aplicaciones / páginas web externas o puede controlar el acceso de los usuarios mediante el servicio AWS Cognito. Para realizar el control de usuarios, puede crear un grupo de usuarios y un grupo de identidades en Cognito y asignar políticas de panel de control Embed al grupo de identidades.
AWS Cognito es un servicio de IAM que permite a los administradores crear y administrar usuarios temporales para proporcionar acceso a las aplicaciones. Con el uso del grupo de identidades, puede administrar los permisos en estos grupos de usuarios.
Veamos cómo podemos generar una URL de panel segura y realizar el control del usuario:
Paso 1: creación de grupos de usuarios y usuarios
Cree un grupo de usuarios en AWS Cognito y cree usuarios. IrAmazon Cognito → Manage User Pools → Create a User Pool.
Paso 2: creación de un grupo de identidades
Cuando se crea el grupo de usuarios, el siguiente paso es crear un grupo de identidades. Irhttps://console.aws.amazon.com/cognito/home?region=us-east-1
Haga clic en "Crear nuevo grupo de identidades".
Ingrese el nombre apropiado de un grupo de identidades. Vaya a la sección Proveedores de autenticación y seleccione la opción "Cognito".
Paso 3: creación de roles de Cognito
Ingrese el ID del grupo de usuarios (su ID del grupo de usuarios) y el ID del cliente de la aplicación (vaya a Clientes de la aplicación en el grupo de usuarios y copie el ID).
Lo siguiente es hacer clic en 'Crear grupo' y hacer clic en 'Permitir' para crear roles del grupo de identidades en IAM. Creará 2 roles de Cognito.
Paso 4: asignación de una política personalizada
El siguiente paso es asignar una política personalizada a los roles de identidad creados en el paso anterior:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "quicksight:RegisterUser",
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "quicksight:GetDashboardEmbedUrl",
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "sts:AssumeRole",
"Resource": "*",
"Effect": "Allow"
}
]
}
Puede pasar el nombre de recurso de Amazon (ARN) del panel de control en vista rápida: GetDashboardEmbedUrl ”en lugar de“ * ”para restringir el acceso del usuario a un solo panel.
Paso 5: Iniciar sesión en la aplicación Cognito
El siguiente paso es iniciar sesión en la aplicación Cognito con credenciales de usuario en el grupo de usuarios. Cuando el usuario inicia sesión en la aplicación, Cognito genera 3 tokens:
- IDToken
- AccessToken
- Actualizar Token
Para crear un usuario de IAM temporal, las credenciales son las que se muestran a continuación:
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
}
});
Para generar credenciales de IAM temporales, debe llamar al método sts.assume role con los siguientes parámetros:
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);
})
}
Paso 6: registrar al usuario en Quicksight
El siguiente paso es registrar al usuario en Quicksight usando "quicksight.registerUser" para las credenciales generadas en el paso 3 con los siguientes parámetros:
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”);
}
})
Paso 7: actualización del archivo de configuración de AWS
Lo siguiente es actualizar la configuración de AWS para el usuario generada en el paso 5.
AWS.config.update({
accessKeyId: AccessToken,
secretAccessKey: SecretAccessKey ,
sessionToken: SessionToken,
"region": Region
});
Paso 8: generación de la URL de inserción para el panel de Quicksight
Con las credenciales creadas en el paso 5, llame a quicksight.getDashboardEmbedUrl con los siguientes parámetros para generar la 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);
}
});
Debe llamar a "QuickSightEmbedding.embedDashboard" desde su aplicación utilizando la URL generada anteriormente.
Al igual que Amazon Quicksight, el panel integrado también admite las siguientes funciones:
- Opción de desglose
- Acciones personalizadas (enlace a una nueva pestaña)
- Filtros en pantalla
- Descarga a CSV
- Ordenar por imágenes
- Habilitación del informe por correo electrónico
- Restablecer el tablero a la opción predeterminada
- Deshacer / rehacer acciones en el tablero