Overview
Connect your AWS account to give TierZero read and (optional) write access to your cloud infrastructure. TierZero uses a cross-account IAM role to query CloudWatch metrics and logs, inspect resource configurations, and correlate infrastructure state with incidents without storing long-lived credentials.Prerequisites
- Administrative access to your AWS account
- Permission to create IAM roles and attach policies
Setup Instructions
Step 1: Navigate to Integration Settings
- Log into your TierZero dashboard
- Go to Settings → Integrations
- Click Connect next to AWS
- Click View Instructions to see a setup guide with values specific to your organization (Account ID, External ID)
Step 2: Create an IAM Role
Create a new IAM role in your AWS account that TierZero can assume via cross-account access.- In the AWS Console, go to IAM → Roles → Create role
- Select Custom trust policy and paste the trust policy below (replacing the placeholder values with the ones from the TierZero setup wizard):
Step 3: Attach Permissions
TierZero needs read-only access across your AWS services. Because AWS limits each role to 10 managed policy attachments, we recommend using the Terraform setup below for full coverage. If you prefer to attach managed policies manually, attach the following core set (up to the 10-policy limit):- Name the role (e.g.,
TierZeroAccess) and click Create role
Step 4: Provide the Role ARN
- Copy the IAM Role ARN from your AWS console
- Paste it into the TierZero setup wizard
- Click Connect
Terraform Setup
If you manage infrastructure as code, use the following Terraform configuration to create the cross-account IAM role with comprehensive read-only access. This approach uses inline policies to consolidate permissions from 18+ AWS managed policies, avoiding the 10-policy attachment limit.Replace the
external_id variable value with the External ID shown in your TierZero setup wizard.role_arn into the TierZero setup wizard.
Inline Policy Summary
The Terraform configuration above creates 1 managed policy attachment + 5 inline policies:Kubernetes (EKS)
If your team uses Amazon EKS, you can grant TierZero access to your Kubernetes clusters for inspecting workloads, pods, and cluster state during investigations. TheAmazonEKSMCPReadOnlyAccess policy is already included in both the managed policy list and the Terraform configuration above.
Create an EKS Access Entry
Grant the IAM role access to your EKS cluster:- In the AWS Console, go to EKS → Clusters → your cluster → Access
- Click Create access entry
- Select the TierZero IAM role as the principal
- Assign the AmazonEKSViewPolicy access policy with Cluster scope
- Click Create
Allow TierZero’s IP Addresses (If Required)
If your EKS cluster’s API server endpoint restricts access by IP, you need to add TierZero’s outbound IP addresses to the allowlist:- In the AWS Console, go to EKS → Clusters → your cluster → Networking
- Under API server endpoint access, click Manage
- Add TierZero’s outbound IP addresses (available in your TierZero dashboard under Settings → Integrations → AWS)
What TierZero Accesses
- CloudWatch Logs & Metrics: Query log groups, log streams, metrics, alarms, and X-Ray traces
- Compute: EC2 instances, Lambda functions, ECS services, ELB, Auto Scaling groups
- Storage & Databases: S3 buckets, RDS instances, DynamoDB tables, EBS volumes, EFS file systems, ElastiCache clusters
- Networking: VPCs, subnets, security groups, Route53 DNS, CloudFront distributions
- EKS clusters: Kubernetes workloads, pods, and cluster state (if configured)
- IAM metadata: Roles, policies, and trust relationships
- Billing data: Cost and usage, budgets, invoices
Security
- TierZero uses cross-account IAM role assumption, so no long-lived credentials are stored
- An External ID is required to prevent confused deputy attacks
- The default policies are read-only; write access is opt-in based on your needs
- Revoke access at any time by deleting the IAM role or updating its trust policy
- All API calls are logged in AWS CloudTrail
Troubleshooting
”Access Denied” Errors
- Verify the IAM role’s trust policy allows TierZero’s account (
851725519002) to assume it - Check that the External ID matches the value shown in the TierZero setup wizard
- Ensure all required policies are attached to the role (check both managed and inline policies)
EKS Cluster Not Accessible
- Confirm the EKS access entry exists for the TierZero IAM role
- Verify the AmazonEKSViewPolicy is assigned with Cluster scope
- If using IP restrictions, ensure TierZero’s outbound IPs are allowlisted
Missing Data
- Verify the IAM role has the specific policy for the data type you expect (e.g.,
monitoring-observability-readonlyfor CloudWatch logs) - Check that the role ARN entered in TierZero matches the role in your AWS account
- If using the managed policy approach, note that some services (DynamoDB, ElastiCache, EBS/EFS, etc.) require the Terraform setup for coverage