TL;DR
Amazon QuickSight has arguably the cleanest native embed path of any BI vendor: an IAM role, a GenerateEmbedUrlForRegisteredUser or GenerateEmbedUrlForAnonymousUser API call, and a signed URL you drop into an iframe. Pricing is usage-aligned — $0.30 per 30-minute reader session, capped at $5 per user per month — which is why AWS-native SaaS teams often land on QuickSight for embedded analytics.
What you still build yourself: per-tenant branding, session-tag identity forwarding per viewer, token lifecycle management, audit logs, multi-vendor support if you add Tableau or Power BI later. The embed primitive is clean; the distribution layer on top isn’t free.
Embedportal is the distribution layer. You keep using QuickSight for authoring, dataset modelling and tag-based RLS definition. Embedportal handles the IAM role assumption, session-tag forwarding, multi-tenant shell, and branded UI. One configuration in Embedportal, one iframe in your app.
If you already run QuickSight and you’re embedding for more than one tenant, Embedportal typically saves 1–3 engineer-months. If you have one dashboard and one tenant, native QuickSight embedding is simple enough on its own.
Outcomes compared
| Outcome | QuickSight (native) | Embedportal (on top of QuickSight) |
|---|---|---|
| QuickSight-native authoring and tag-based RLS | ✓ | ✓ |
| IAM role-based auth to QuickSight | ✓ | ✓ |
| Production-grade multi-tenant distribution | DIY | ✓ |
| Customer-owned branding and domain | DIY | ✓ |
| Compliance-ready audit trail | DIY | ✓ |
| Viewer-side authentication (SSO, 2FA) | DIY | ✓ |
| Vendor-neutral — add Tableau, Power BI, Metabase | — | ✓ |
| Time from decision to first tenant live | months | minutes |
Setup effort
QuickSight native. AWS gives you the IAM role model and the GenerateEmbedUrl API. Taking that to a multi-tenant SaaS release requires work in four distinct areas: viewer identity and session-tag forwarding for RLS, branded portal shell, compliance and audit, and token lifecycle plus cross-region routing. Teams typically budget 1–3 engineer-months for a first customer-facing release. None of that work is QuickSight-specific — you’d redo it if you later added a second BI vendor.
Embedportal. Follow the four-step QuickSight setup — deploy one CloudFormation stack that creates the role with the correct External ID, copy the Role ARN from the stack outputs, paste it into Embedportal. Under 15 minutes, and multi-tenant distribution, branding, audit and SSO all work on day one.
Multi-tenant scale
QuickSight embedding scales cleanly because session pricing is per-viewer-session rather than per-capacity. Two tenants with 100 viewers each cost the same as one tenant with 200 viewers. Your AWS bill tracks usage, not architecture.
The hard part is identity forwarding. QuickSight’s anonymous embed flow takes session tags directly in the generate_embed_url_for_anonymous_user call; the registered flow requires every viewer to be a QuickSight user, which doesn’t scale for customer-facing SaaS. Most teams converge on anonymous + session tags for multi-tenant.
Embedportal treats session-tag forwarding as a first-class feature. One IAM role serves unlimited tenants; each tenant’s viewers get their own tag set applied to the embed URL. You don’t provision QuickSight users per customer.
Row-level security
QuickSight ships with a powerful RLS primitive: tag-based row-level security on datasets. You configure the dataset to filter on specific tag keys (organization_id, region, etc.) and then pass those tags as session attributes on the embed URL. QuickSight filters rows at query time.
What QuickSight Embedded native doesn’t give you is the tag-definition surface on the viewer side. You decide what attributes to pass, how to derive them from your user profile, how to default them, how to override them per dashboard — and write that yourself.
Embedportal exposes a rule-definition UI on top of QuickSight’s primitive. Declare attributes like organization_id, region, role, and Embedportal forwards them as session tags with per-dashboard overrides. The QuickSight side is unchanged — tag-based RLS on the dataset as usual. See the RLS guide for the full setup.
White-label branding
QuickSight’s embedded dashboards accept parameters to hide some UI and you can style the iframe with CSS. That’s the limit. To deliver a genuinely white-labeled portal — per-tenant logo, palette, custom domain, themed dashboard list — you build the whole shell yourself.
Embedportal ships the shell. Each tenant gets their own logo, palette, custom domain, and themed portal UI. The QuickSight iframe drops into that shell and your customers see their brand, not Amazon’s.
Multi-vendor future
QuickSight is elegant inside AWS and awkward outside it. Teams that started on QuickSight and now have customers on Azure or GCP — or analysts that want Tableau authoring — face a rebuild of the embedding layer if they want to add a second BI tool.
Embedportal’s point is vendor neutrality. Swap QuickSight for Power BI or Metabase by changing the dashboard’s integration source — no change in your product’s frontend, no change for your customers. Optionality has a price, but so does a rebuild.
Pricing
QuickSight native. Session pricing: $0.30 per 30-minute reader session, $5/user/month cap. Authors: $24/user/month. If your SaaS has 1,000 active viewers averaging 2 sessions per week, you land around $2,400/month in QuickSight + maybe $50 for authors. No capacity to buy. See the 2026 embedded-analytics pricing breakdown for the full comparison.
Embedportal. Flat pricing independent of your QuickSight session count. $249/month Starter (one BI integration), $499/month Professional (unlimited integrations, branding, SSO, audit, SLA), custom Enterprise. See full pricing.
Break-even is small: if your QuickSight embedding project would take even one month of one engineer, Embedportal’s annual fee is comfortably cheaper. The real savings compound once you want to ship multi-tenant RLS, branded portals and audit logs — all of which add weeks of engineering on native QuickSight.
When to pick which
Pick native QuickSight embedding if
- You’re a one-product, one-tenant deployment and the embed is genuinely internal.
- You have a dedicated AWS / Data platform team already maintaining QuickSight and multi-tenant embed is just another workload.
- You don’t plan to ever offer any other BI tool to customers and you’re comfortable with the AWS lock-in.
Pick Embedportal if
- You have two or more customer tenants embedding the same QuickSight dashboards, or you plan to.
- You need per-tenant branding, white-label, or custom-domain portals.
- You don’t want to manage IAM trust policies, External-ID rotation, and session-tag forwarding code yourself.
- You might add Tableau, Power BI, or Metabase content in the next 24 months.
- You need SOC 2 audit evidence for embedded access without building the audit trail yourself.
Switching from native QuickSight embedding
If you’ve already built a QuickSight embedded integration and want to move to Embedportal, the QuickSight side stays identical — same dashboards, same datasets, same tag-based RLS. On the Embedportal side you deploy the CloudFormation stack that creates a new IAM role with your Embedportal organization ID pinned as the External ID, paste the Role ARN, and map your viewer attributes to the session-tag model. Typical switchover is under an hour on the AWS side and under a day on the frontend.
Your existing RLS tags, datasets and dashboards all embed through Embedportal without modification.
11. FAQ
Is Embedportal a replacement for QuickSight?
No. Embedportal sits on top of QuickSight — you keep using QuickSight to author dashboards, define datasets and configure RLS, and Embedportal embeds them into your SaaS with multi-tenant branding and unified attribute forwarding. Your QuickSight account stays exactly as it is.
Does Embedportal access my AWS account directly?
Embedportal assumes only the IAM role you create, which grants a narrow set of QuickSight embed permissions with your Embedportal organization ID as the External ID. It cannot access any other AWS service, and cross-account confused-deputy attacks are prevented by the External ID pin.
How does QuickSight session pricing interact with Embedportal?
QuickSight session pricing ($0.30 per 30-minute reader session, capped at $5 per user per month) is billed directly by AWS — Embedportal doesn't change it. Embedportal's fee is flat and separate. For bursty multi-tenant workloads, session pricing usually comes out cheaper than per-user capacity, which is why QuickSight + Embedportal is a popular pairing for AWS-native SaaS.
Can we use QuickSight's tag-based RLS?
Yes. Configure tag-based RLS on your QuickSight dataset with keys like organization_id and region, and Embedportal forwards the viewer's matching attributes as session tags on every embed request. QuickSight applies the filter at query time.
Does this work cross-region?
Yes. Embedportal detects the QuickSight region from the Role ARN and routes embed requests to the correct regional endpoint. Your IAM role is global but the assumed session is regional — typical for AWS.
Can we switch from native QuickSight embedding to Embedportal without rebuilding dashboards?
Yes. Embedportal points at your existing QuickSight dashboards via Dashboard ID. No migration, no rebuild. Typical switchover is under 30 minutes on the AWS side (one CloudFormation deploy) and under a day for the frontend.
Is my data sent to Embedportal?
No. Dashboards render directly from QuickSight into the viewer's browser via AWS-signed embed URLs. Embedportal generates the signed URL — it does not proxy the data payload, which stays in your AWS account.
Ready to embed?
Start on Professional with a 14-day free trial — no credit card, unlimited dashboards and users.