DataZone Governed Lakehouse
This starter kit deploys an enterprise-ready Governed Data Lakehouse using MDAA's DataZone integration, featuring fine-grained access control and data governance capabilities.
Use Cases
- Enterprise data governance and compliance with fine-grained access control
- Multi-team data lake environments with data producer and consumer separation
- Structured data analytics and reporting via Athena
- Data product development and consumption via DataZone portal
- Organizations requiring column and row-level security on data lake resources
Capabilities
- DataZone domain for data product management, discovery, and subscription
- Fine-grained access control via Lake Formation (database and table-level permissions)
- KMS-encrypted three-zone S3 data lake (raw, transformed, curated)
- Glue Data Catalog with encrypted metadata and automated schema discovery
- IAM roles with separation of duties (data-admin, data-engineer, data-users, glue-etl)
- Multiple DataOps projects for producer and consumer teams
Architecture

Deployment
Prerequisites and Predeployment
- Authenticate to your target AWS account and region. Ensure the authenticated role has permissions to deploy resources via CDK.
- Bootstrap CDK in your target account and region. Deploy in a region supported by DataZone.
Additional info: PREDEPLOYMENT
Configure MDAA
-
Address all TODOs in
mdaa.yaml, specifically:- Set
organizationto a globally unique name (used in S3 bucket names and all resource prefixes)
- Set
-
Address all TODOs in module configs, specifically:
- CDK Nag suppressions in
common/governance/roles.yaml. Uncomment each suppression only after reviewing the associated permissions and confirming they are acceptable for your environment.
- CDK Nag suppressions in
Deploy MDAA
Run the following from the starter kit directory (containing mdaa.yaml):
-
Optionally, run
npx @aws-mdaa/cli lsto understand what stacks will be deployed. -
Optionally, run
npx @aws-mdaa/cli synthand review the produced templates. -
Run
npx @aws-mdaa/cli deployto deploy all modules.
Additional info: DEPLOYMENT
Next Steps
See USAGE for post-deployment instructions.
Modules Deployed
| Module | Purpose |
|---|---|
@aws-mdaa/roles |
IAM roles and policies (data-admin, data-engineer, data-users, glue-etl) |
@aws-mdaa/glue-catalog |
Glue Catalog KMS encryption (account-level) |
@aws-mdaa/lakeformation-settings |
Lake Formation governance settings (account-level) |
@aws-mdaa/audit |
Encrypted S3 bucket and KMS key for CloudTrail audit log storage |
@aws-mdaa/audit-trail |
CloudTrail trail for S3 data event auditing |
@aws-mdaa/datazone |
DataZone domain for data product management |
@aws-mdaa/datalake |
KMS keys, S3 buckets, and bucket policies |
@aws-mdaa/dataops-project |
Glue databases with Lake Formation access control (x3) |
@aws-mdaa/dataops-crawler |
Glue crawlers for schema discovery |
Troubleshooting
-
Access Denied when accessing data: Ensure you're using the correct IAM role (data-admin for write, data-user for read). Verify Lake Formation permissions are configured and data was uploaded with KMS encryption.
-
DataZone domain not accessible: Verify the DataZone domain is in "Available" state and that you deployed in a supported region.
-
Glue crawler failures: Verify S3 bucket permissions and KMS key access. Check that the crawler role has necessary permissions. Monitor CloudWatch logs for details.