Overview
Connect your AWS account to Annie for real-time infrastructure mapping, monitoring, and intelligent insights. Annie ingests your AWS resources and relationships to build a knowledge graph of your cloud environment. Annie is read-only: it usesDescribe* / List* / Get* actions only, takes no write actions, and cannot modify your infrastructure. See the IAM permissions reference for exactly what is read.
Setup
The recommended path is a least-privilege managed policy attached to an assume role. For an IAM user instead, see Alternative: IAM user.Open the integration
Go to the Anyshift integrations page and navigate to the AWS section.
Create the IAM policy
Create the least-privilege managed policy Annie uses. The same policy is reused by the assume role and the IAM user options.To restrict which S3 buckets Annie can introspect, see Restrict S3 to specific buckets before applying.
Create the IAM role
Create an assume role that trusts the Annie account (Using AWS Console
211125758836) and attach the annie-readonly policy.Using Terraform (recommended)- Navigate to IAM Roles and select Create Role.
- Choose Another AWS account and enter the Account ID:
211125758836. - Add an External ID (Optional: acts as a shared secret).
- Attach the
annie-readonlypolicy created above. - Complete the role creation process.
- Copy the Role ARN for the next step.
Features enabled
Resource Monitoring
Real-time visibility into your cloud infrastructure
Dependency Mapping
Understand your infrastructure dependencies
Reference
IAM permissions reference
IAM permissions reference
The
annie-readonly policy grants only what Annie needs for the resource graph (bucket inventory and per-bucket metadata only: no object reads, no data-plane access):- S3: bucket inventory and per-bucket metadata (location, default encryption, event notifications, access points, multi-region access points). No object content is read for the resource graph.
- Compute, network, identity, monitoring, application, KMS, notifications, and other services:
Describe*/List*/Get*only. - No write actions. No
kms:Decrypt, nosecretsmanager:GetSecretValue(onlysecretsmanager:GetResourcePolicyfor resource policies, not secret material).
Alternative: IAM user
Alternative: IAM user
Use an IAM user instead of an assume role. Reuse the Using AWS Console
annie-readonly policy from the setup steps.Using Terraform (highly recommended)- Go to IAM → Users → Add User
- Enable Programmatic Access
- Attach the
annie-readonlypolicy created in the setup steps. - Save Access Key ID and Secret Access Key
- Enter the Access Key ID and Secret Access Key from the IAM user creation step.
- Provide a descriptive AWS Account Name label (e.g.,
"read_only_user_for_anyshift").

Restrict S3 to specific buckets
Restrict S3 to specific buckets
Use this variant to introspect only certain S3 buckets. Bucket enumeration (The
s3:ListAllMyBuckets, s3:GetBucketLocation) cannot be resource-scoped at the IAM level: every bucket name and region stays visible. Per-bucket metadata (encryption, notifications) is read only for the buckets you list.Keep the data "aws_iam_policy_document" "annie_readonly" block from setup unchanged. Add the blocks below in the same Terraform configuration, and change the policy argument on aws_iam_policy.annie_readonly from data.aws_iam_policy_document.annie_readonly.json to data.aws_iam_policy_document.annie_readonly_bucket_scoped.json.override_policy_documents argument replaces the original AllowS3Metadata statement (matched by sid) and appends the new AllowS3IntrospectionScoped statement.Tradeoff: buckets not listed in AllowS3IntrospectionScoped appear in the Annie graph as bare entries (name + region) without encryption or notification attributes. S3 access points and multi-region access points are not bucket-scopable in IAM and are not introspected in this variant.Terraform state ingestion
Terraform state ingestion
If you store Terraform state in S3 and want Annie to ingest it (drift detection, IaC-to-live mapping), grant the same role/user Attach
s3:GetObject and s3:ListBucket on your tfstate bucket(s) in addition to the policy above. Scope tightly to the buckets that hold state: Annie reads only the keys you tell it to ingest, and only those grants are needed.aws_iam_policy.annie_tfstate_read.arn to the same role or user using the same aws_iam_role_policy_attachment / aws_iam_user_policy_attachment pattern shown above. If your state is encrypted with a customer-managed KMS key, also grant kms:Decrypt on that key’s ARN.Try Annie Today
Start building your infrastructure knowledge graph and unlock intelligent infrastructure management.Create Account
Create your Anyshift account
Request Demo
See Annie’s knowledge graph in action
