ZapStack does not have permissions to access the contents of your data stored in S3 buckets, database records, or volumes.We only have permissions to view resource metadata and configurations.
Data processing and storage
ZapStack is the only processor of customer AWS data. There are no sub-processors. ZapStack does not persist any personally identifiable information (e.g. names, email addresses, IP addresses) that your applications or AWS writes to CloudTrail, CloudWatch, or any other AWS service. The only AWS data from customer environments that ZapStack persists is resource metadata (e.g. instance ID, instance type, etc) and metric data (e.g. resource utilization) - this data enables us to provide our service.Setup
ZapStack uses two CloudFormation templates to set up read-only access to your AWS environment. These templates are deployed automatically when you connect your AWS account through the ZapStack dashboard.How the templates work together
Management account deployment
You deploy
v1.yaml to your AWS Organizations management account. This creates an IAM role, sets up Cost and Usage Reports (CUR), and creates a StackSet.Automatic member account deployment
The StackSet automatically deploys
v1-member.yaml to all existing and future member accounts in your Organization.Management account template (v1.yaml)
This template is deployed to your AWS Organizations management account. It creates:- An S3 bucket for Cost and Usage Reports (CUR)
- CUR configuration with hourly billing reports
- IAM role (
ZapStackCrossAccountRole) with read-only permissions - StackSet to auto-deploy member account roles
- Lambda function to retrieve Organization root ID
- SNS notification to alert ZapStack when setup completes
Member account template (v1-member.yaml)
This template is automatically deployed to all member accounts via the StackSet created byv1.yaml. You do not need to deploy this manually.
It creates:
- IAM role (
ZapStackCrossAccountRole) with read-only permissions - SNS notification to alert ZapStack when the account is onboarded
Member accounts do not have CUR or billing API access — all billing data is centralized in the management account.
IAM permissions summary
Both templates use the AWS managed policyViewOnlyAccess plus additional inline policies for complete resource coverage.
| Permission category | Management account | Member accounts | Purpose |
|---|---|---|---|
| ViewOnlyAccess | Yes | Yes | Broad read-only access to AWS services |
| Billing & Cost Explorer | Yes | Yes | Read cost data and budgets |
| CUR bucket access | Yes | No | Read Cost and Usage Reports |
| CloudWatch metrics | Yes | Yes | Resource utilization analysis |
| S3 multipart uploads | Yes | Yes | Detect abandoned uploads |
| StackSet management | Yes | No | Deploy member account roles |
| Extended resource inventory | Yes | Yes | 100+ additional read-only permissions |
Security features
- ExternalId protection: Prevents confused deputy attacks by requiring a unique tenant ID
- Read-only access: No permissions to modify, create, or delete resources
- No data access: Cannot read contents of S3 objects, databases, or volumes
- Revocable: Delete the CloudFormation stack to immediately revoke access