Connect AWS and Azure with read-only access
Deploy one IAM role per AWS account, or a StackSet across your whole Organization. On Azure, a tenant admin grants consent once. There are no agents to install and no access keys to rotate.
- 1Choose AWS Organization
This option deploys CloudLensReadOnlyRole with a StackSet. The panel lists what the role can do, and write actions read None.
- 2Discovery finds 14 accounts
Under lumora-management, CloudLens lists the Production, Staging and Sandbox OUs. All 14 accounts are selected for enrollment.
- 3The StackSet rolls out
Stack instances succeed OU by OU with 0 failed. The toast reports 11 of 14 accounts connected and 3 still deploying.
- 4prod-core is validated
CloudLens assumes the role with an external ID, finds the CUR 2.0 export and confirms Cost Explorer access.
Connecting a new tool to production is a risk decision
What can go wrong during onboarding, and how a read-only role keeps that risk small.
Access keys leak
What usually happens: A tool asks for an access key. It gets pasted into a form, stored somewhere, and nobody rotates it for a year.
How CloudLens resolves it: CloudLens assumes a role you created in your own account. There is no long-lived key to store, leak or rotate.
ResolvedWrite access is a standing risk
What usually happens: A tool that can change resources is one compromised session away from changing them.
How CloudLens resolves it: The role only has read permissions. Applying a change is a separate, opt-in path with approval, a dry run and rollback.
ResolvedAccounts get left out
What usually happens: Onboarding accounts one by one takes weeks, and the account nobody got to is the one with the surprise bill.
How CloudLens resolves it: Connect the Organization once. CloudLens discovers member accounts and enrolls the ones you select in bulk.
ResolvedEnroll every account in your Organization
- CloudFormation template
- StackSet for many accounts
- Organization discovery
- Bulk enrollment
- Role validation
- 1See what gets created
Before anything deploys, the panel shows the IAM role, its read-only permissions, trust through an external ID, and no write actions.
- 2Enroll by OU
Selecting Production, Staging and Sandbox targets 14 member accounts. Accounts added to those OUs later are enrolled automatically.
- 3Watch deployment and checks
StackSet progress fills per OU while prod-core passes the role, CUR 2.0 and Cost Explorer checks. No write permissions are requested.
One admin consent, reader roles only
- One admin consent for the tenant
- Service principal, then pick subscriptions
- Bicep, Terraform or Bash
- Cost Management Reader
- Storage Blob Data Reader
- 1Tenant admin grants consent
Sign in with Microsoft lists three permissions: sign-in and profile, resource inventory as Reader, and cost data. The admin accepts.
- 2Choose subscriptions
The lumoraretail.onmicrosoft.com tenant connects and the cloudlens-reader service principal is created. Then lumora-prod, lumora-data and lumora-dev are selected.
- 3Assign reader roles as code
The Bicep command and the Terraform module grant Cost Management Reader and Storage Blob Data Reader on those subscriptions.
- 4Set up the cost export
Create new export is chosen. CloudLens confirms the storage account is reachable, role assignments are verified and a daily export is scheduled.
Fourteen AWS accounts and one Azure tenant
Lumora Retail runs most of its workloads on AWS under one Organization, plus two Azure subscriptions for the loyalty platform. This is how the whole estate was connected in a day.
Lumora Retail is a fictional company. The people, names and numbers are sample data.
Chooses the Organization option
Deploys the StackSet
Selects accounts and validates
Connects Azure
Checks what CloudLens can see
Connect read-only in about 15 minutes
What CloudLens reads, and nothing more
The bill
AWS CUR 2.0 and Azure Cost Management exports, amortized, with Savings Plans and Reserved Instances accounted for.
The estate
Resource inventory and configuration, read through describe and list APIs and Azure Resource Graph.
Identity and network
IAM policies, security groups and routes. These are the connections attack paths are built from.
What we can't see
If a permission is missing, CloudLens names the checks that can't run. An empty list is never presented as a clean account.
- Choose a single account or your Organization
- Deploy the CloudFormation template or StackSet
- Discover and select member accounts
- Provision member roles and validate them
- Grant admin consent
- Select the subscriptions to connect
- Assign reader roles with Bicep, Terraform or Bash
- Create, reuse or skip a Cost Management export
- Connect the AWS account that runs EKS
- Add a CloudLens access entry to the cluster
- Workloads appear in the security graph
- CIS Kubernetes checks start scoring
Connection FAQ
No. Seeing your cloud only needs read access. Applying a change is a separate, opt-in flow through Savings Proposals, with approval, a dry run and rollback.
Use the StackSet option. CloudLens discovers the Organization, provisions the member role in each account you select and validates them in bulk.
Yes. You can reuse an existing export, create a new one, or skip exports and add one later.
Ready to see CloudLens in action?
Connect a read-only AWS role or Azure service principal. We'll walk you through your bill, your security graph and the first things worth fixing.
