We are currently working on a QuickSight dashboard integration and would like assistance regarding enabling Amazon QuickSight Q capabilities. Below are the details of our current implementation:
We have our data stored in a PostgreSQL database, which is imported into QuickSight with a daily refresh schedule to ensure up-to-date insights. To secure the data, we have applied Row Level Security (RLS) to the dashboard by leveraging a specific column that determines user access levels based on their roles or associated organizations. This dashboard is embedded into our React website using the following steps:
-
Authenticate Users Using Amazon Cognito: We authenticate users via Cognito and retrieve their Cognito Identity ID using the
GetIdCommand
. Once the Identity ID is retrieved, we generate an OpenID token with theGetOpenIdTokenCommand
. -
Assume an IAM Role for Temporary Credentials: Using the OpenID token, we call the
AssumeRoleWithWebIdentityCommand
to assume an IAM role. This step provides temporary AWS credentials (Access Key, Secret Key, and Session Token), which allow us to perform QuickSight operations securely. -
Register Users in QuickSight: If a user is not already registered, we use the
RegisterUserCommand
to register them dynamically in QuickSight. Each user is assigned the Reader role, enabling them to view the dashboard. -
Retrieve the User’s QuickSight Username: Once the user is registered, we use the
ListUsersCommand
to fetch all registered users in QuickSight and identify the username associated with the user’s email address. -
Store User Information in PostgreSQL: We store user information, such as their QuickSight username and associated company (determined from their email domain), in PostgreSQL. This information is used to enforce RLS by mapping the user’s username to their organization or role.
-
Generate the Dashboard Embed URL: Finally, we use the
GetDashboardEmbedUrlCommand
to generate a secure, user-specific embed URL. This URL is tied to the user’s session and permissions, ensuring that only authorized users can access the embedded dashboard.
Help Needed:
Now, we want to enable Amazon QuickSight Q capabilities for our implementation. Specifically, we would like to integrate the natural language querying feature into our existing QuickSight dashboards.
We are seeking guidance on:
- The prerequisites for enabling Q capabilities in our QuickSight setup.
- Any additional configuration required for the datasets, dashboards, or permissions to support Q.
- Steps to incorporate and test Q capabilities effectively.
- Best practices for embedding dashboards with Q features enabled in a website.
Any detailed instructions or references to documentation that could help us enable and utilize QuickSight Q capabilities would be greatly appreciated.