AWS Global Infrastructure and Sustainability Blog
Integrate AWS carbon and water data into your ESG reporting
Companies face increasing pressure to measure and reduce their environmental footprint. They measure and report their greenhouse gas (GHG) emissions under the Greenhouse Gas Protocol across three scopes: Scope 1 (direct emissions), Scope 2 (indirect emissions from purchased energy), and Scope 3 (supply chain emissions). AWS is an upstream supplier of its customers. Emissions associated with use of AWS cloud services would generally be part of a customer’s scope 3, category 1 (Purchased goods and services). Environmental sustainability reporting is evolving beyond carbon with water usage emerging as a critical metric alongside traditional decarbonization goals. This blog post explains how to integrate carbon and water data associated with your AWS usage into your Environmental, Social and Governance (ESG) platforms. You’ll learn how to retrieve, analyze, and report on this data – whether through simple manual processes or custom automated integrations.
Retrieving carbon and water data
AWS provides three ways for customers to retrieve environmental data:
- The AWS Sustainability service provides console visualizations as the easiest way to understand your environmental impact from using AWS services without coding or configuration. It offers reports for carbon emissions at monthly and annual granularity, and water withdrawals at annual granularity.
- The AWS Sustainability service also provides API access enabling you to programmatically retrieve carbon and water data using AWS SDKs for Python, JavaScript, Java, Go, and other supported languages.
- Carbon emissions Data Exports allow you to configure automated deliveries of your carbon emissions data to Amazon S3. Data Exports deliver CSV or Parquet files as soon as new data is available, so your data pipelines can process it. Read more in our post about exporting and visualizing carbon emissions data with Carbon emissions Data Exports.
1. Manual ingestion of reports from the AWS Sustainability Console
The most straightforward approach to retrieve and ingest data into an ESG platform involves downloading carbon emissions and water withdrawals reports from the AWS Sustainability console, then manually uploading them into your ESG platform.
The Reports section of the Sustainability console offers preset and custom reports. Preset reports are available in monthly or annual formats. They provide the fastest path to downloading your data. Custom reports give you more control, letting you define the exact time range and select only the data columns relevant to your reporting needs.
- Go to AWS Sustainability in the AWS Management Console
- Choose Reports
- Choose Download custom report
- Choose Report type: Carbon emissions or Water allocation
- Choose the Columns you want to export, like service, region, and GHG scopes. Note that if you want to drill down into the carbon per usage account under a given payer account, you can create a Data Export (as explained later) or use the AWS Sustainability API.
- Choose Download
- Upload the file into your ESG platform’s data ingestion interface

Custom reports in the AWS Sustainability console
An example of manual ingestion of sustainability reports is Greenly. Greenly allows you to manually upload AWS carbon data via a CSV import. This gives you a starting point for carbon accounting without technical integration work.
The manual export of carbon emissions data provides a simple and fast start to evaluate the impact and potential of ESG reporting. When you decide to go from ad-hoc or annual reporting to regular monthly reporting, you should look for an automated integration as described in the next sections.
2. Native connectors in 3rd party tools
Your ESG platform may offer a pre-built AWS connector that automatically imports AWS carbon and water data. The concrete steps depend on the tool you use. Typically, you can follow these steps:
- Provide access, typically using one of the following:
- an AWS Identity and Access Management (IAM) user
- an IAM role that trusts the tool’s AWS account
- Grant least privileges, depending on the API used to access the data:
"Action": [
"sustainability:GetEstimatedCarbonEmissions",
"sustainability:GetEstimatedCarbonEmissionsDimensionValues",
"sustainability:GetEstimatedWaterAllocation",
"sustainability:GetEstimatedWaterAllocationDimensionValues"
]
b. To read Carbon emissions Data Exports on Amazon S3, the 3rd party tool requires at least read access to the objects in S3.
3. Configure the ESG reporting tool to automatically pull carbon and water data on a scheduled basis for dashboards, reports, and analytics.
An example of a native connector is the Sweep sustainability intelligence platform. It provides a native AWS connector that you can authorize and enable. Once configured, carbon emissions data flows automatically into Sweep, consolidated alongside other emission sources.
If your ESG reporting tool has a native connector for the AWS Sustainability API or Carbon Emissions Data Exports, that is the fastest path to automation. If it does not, or if you need more control over the data delivery, the following section walks you through building a custom solution.
3. Custom integrations
This section focuses on Carbon emissions Data Exports, which deliver data monthly as soon as new data is available. The automated delivery enables you to keep your ESG platform up to date without ongoing manual effort. AWS Data Exports deliver carbon emissions data to Amazon S3. S3 data events allow you to trigger an event driven pipeline as soon as new data becomes available without implementing polling. Use Data Exports if you plan to retain a copy of the data in an S3 bucket.
The following shows an example architecture to trigger a custom pipeline when Data Exports deliver new data.

Example of a data pipeline from Data Exports to a Custom API
In this architecture, AWS Data Exports deliver carbon emissions reports to an Amazon S3 bucket. The pipeline is event-driven:
- When Data Exports deliver carbon emissions data to the S3 bucket, it stores the data for each month in a separate partition with an S3 object prefix like
carbon_model_version=v3.0.0/usage_period=2026-02/. - EventBridge receives the data event notification as the S3 bucket has EventBridge integration enabled. An EventBridge rule filters for new or updated objects matching the
*-Manifest.jsonsuffix in a data partition. The filtering of manifest files ensures that the downstream processing is just triggered once per partition. - The matching event triggers an AWS Step Functions workflow that orchestrates the processing logic for this delivery.
- The Step Functions workflow first invoke a ParseManifest Lambda function, which extracts partition metadata (carbon model version and usage period) from the manifest object key.
- A second DataProcessor Lambda function registers the new partition in AWS Glue. The Glue data catalog defines the partitioned table schema.
- The same DataProcessor function uses the AWS SDK for pandas to query the emissions data through Amazon Athena. Athena reads the underlying data files from the S3 bucket. It queries your data in Amazon S3 with standard SQL. It also supports table-joins with other data you want to include in your reports.
- Finally, the DataProcessor function posts the processed results to a custom REST API.
The business logic should account for new Calculation methodology versions. If the model version differs from previously ingested data for the same usage period, it indicates a methodology update. Read details about new model versions in the AWS Sustainability console release notes. Consider alerting stakeholders (e.g. via Amazon SNS) so they can review the revised figures before updating the ESG platform.
On failure, the Step Functions workflow publishes error alerts to an Amazon SNS topic before transitioning to a failed state.
If you want to process data from multiple AWS Organizations, you must centralize your carbon emissions files in a centralized bucket and process the files from that bucket. Use the Cloud Intelligence Dashboards Data Exports templates to deploy Data Exports and replication rules to payer accounts and a single data collection account.
Water allocation data is currently available only through the AWS Sustainability Console and API (as covered in Sections 1 and 2). If you want to include water withdrawals data, integrate a call to the API in the Step Functions workflow.
From data to decisions
The AWS Sustainability service and Data Exports provide access to granular carbon emissions and water withdrawals data. Start by leveraging the AWS Sustainability console, and manual reports to quickly evaluate your workloads’ environmental impact. Then, automate processing of data in stakeholder dashboards using native connectors or a custom data pipeline. Collect feedback, iterate on your reporting, and use the insights to drive strategic sustainability decisions across application owners, and customers to improve your environmental impact.