Sustainability for AWS
Overview
AWS publishes your estimated carbon emissions and your estimated water withdrawals through the AWS Sustainability service. To show them in OneLens, add four read-only permissions to the IAM role you already created when you connected AWS.
There is nothing to deploy into your workloads and no new role to create. The four permissions return aggregate environmental estimates only, and grant no access to your resources, your data or your configuration.
Where to add the permissions
Option 1: Deploy the CloudFormation template
The template creates one managed policy and attaches it to your existing OneLens role. It does not modify the role itself, and it creates nothing else.
Find your OneLens role name
In the account you are configuring, go to IAM > Roles and copy the name of the role you created when connecting AWS to OneLens. It begins with OneLens-.
Use the role name, not the ARN.
Create the stack
Open the CloudFormation console, select Create stack > With new resources (standard), choose Upload a template file, and select the file you downloaded above.
IAM is a global service, so the region you choose does not matter.
Enter the role name
Give the stack a name, for example onelens-sustainability, and paste your role name into the OneLens IAM role name parameter.
Acknowledge and submit
On the review screen, tick I acknowledge that AWS CloudFormation might create IAM resources with custom names, then select Submit.
The stack finishes in under a minute. The Outputs tab shows the policy ARN and the role it was attached to.
Option 2: Add the policy by hand
If you would rather not run a stack, add this as an inline policy on the same role. The AWS Sustainability service does not support resource-level restrictions, so Resource must be *.
Open the OneLens role
Go to IAM > Roles and open the role you created when connecting AWS to OneLens.
Create the policy
Select Add permissions > Create inline policy, switch to the JSON tab, and paste the policy above.
Name and save
Name the policy OneLensSustainabilityPolicy and select Create policy.
Confirm the permissions are live
You can verify the grant yourself from the AWS CLI, in the account that holds the role:
A successful call returns emission values per service. AccessDeniedException means the policy has not taken effect yet or was added to a different role.
What to send back to OneLens
Nothing. OneLens already has the role it assumes in this account, so the new permissions are picked up automatically.
The one thing worth telling us is which account you configured, if it is not the management account you originally connected. That tells us whether to expect consolidated figures or a single account's.
What you get in OneLens
Granularity
Monthly, with quarterly and annual rollups
Annual
History
From January 2022
From 2023
Unit
Metric tons of CO2 equivalent (MTCO2e)
Cubic metres (m3)
Breakdown by
Usage account, AWS Region, service
Usage account, AWS Region, service
Published
By the 21st of the following month
In Q2, for the previous calendar year
Carbon is reported under both the location-based and the market-based method, with scope 1, scope 2 and scope 3 available separately under each.
Good to know
Emissions from global services, such as Amazon CloudFront, are reported under the
Globalregion rather than a named Region.The finest breakdown AWS offers is account, Region and service. Per-resource carbon is not published, so emissions cannot be attributed to an individual EC2 instance or bucket. OneLens allocates to your cost centres using the account key.
AWS recalculates history when its methodology changes. When a new methodology version is released, AWS restates earlier months so that comparisons over time stay consistent. A figure you recorded previously can therefore move without your usage having changed.
Accounts that join or leave an organization carry their emissions with the organization they were part of at the time, for the period they were linked.
Last updated

