We are currently working on a Quick Sight dashboard integration and would like assistance regarding enabling Amazon Quick Sight Q capabilities. Below are the details of our current implementation:
We have our data stored in a PostgreSQL database, which is imported into Quick Sight 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
AssumeRoleWithWebIdentityCommandto assume an IAM role. This step provides temporary AWS credentials (Access Key, Secret Key, and Session Token), which allow us to perform Quick Sight operations securely. -
Register Users in Quick Sight: If a user is not already registered, we use the
RegisterUserCommandto register them dynamically in Quick Sight. Each user is assigned the Reader role, enabling them to view the dashboard. -
Retrieve the User’s Quick Sight Username: Once the user is registered, we use the
ListUsersCommandto fetch all registered users in Quick Sight and identify the username associated with the user’s email address. -
Store User Information in PostgreSQL: We store user information, such as their Quick Sight 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
GetDashboardEmbedUrlCommandto 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 Quick Sight Q capabilities for our implementation. Specifically, we would like to integrate the natural language querying feature into our existing Quick Sight dashboards.
We are seeking guidance on:
- The prerequisites for enabling Q capabilities in our Quick Sight 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 Quick Sight Q capabilities would be greatly appreciated.