Hello,
We’re using StartDashboardSnapshotJob with AnonymousUsers to generate PDF reports and store them in S3. A Lambda acts as the QuickSight client. The job starts successfully but consistently fails at the S3 write step.
Environment:
-
QuickSight Enterprise
-
S3 bucket (same account, same region)
Error from DescribeDashboardSnapshotJobResult:
{
"ErrorType": "S3_DESTINATION_ACCESS_DENIED",
"ErrorMessage": "You do not have access to the specified S3 destination"
}
What we’ve tried:
-
Bucket policy granting
quicksight.amazonaws.comfull write access — with and withoutaws:SourceAccountcondition -
Bucket policy explicitly granting
arn:aws:iam::<account>:role/service-role/aws-quicksight-service-role-v0 -
aws-quicksight-service-role-v0hasAWSQuickSightS3Policyan inlines3:*policy — no permission boundary, no explicit denies -
Bucket is checked in Manage account → AWS resources → S3 allowlist
-
SSE-S3 encryption (no KMS), no VPC connections, no SCPs or RCPs at org level
Everything looks correct but the error persists. We noticed aws-quicksight-service-role-v0 was last used 3 months ago, suggesting snapshot jobs don’t use it — yet the service principal in the bucket policy also doesn’t work.
What principal does StartDashboardSnapshotJob actually use when writing to S3, and is there any additional configuration required specifically for snapshot jobs with AnonymousUsers? Or do you have any other idea?
BTW - we are using AWS Identity center users - not native QuickSight users.
Thanks