CONNECT YOUR TOOLS

Connect AWS

You create a read-only IAM role that only Averil's broker can assume, with an ExternalId unique to your workspace.

What Averil uses it for

  • Investigating GuardDuty and Security Hub findings, with CloudTrail as evidence.
  • Checking that GuardDuty and Security Hub are on, a multi-region trail exists, and root and console users have MFA.
  • Finding public or unencrypted RDS databases, and old or unused access keys.
  • Listing Secrets Manager secret names, to show where each secret lives.
  • Checking that a spend alert covers AI services such as Amazon Bedrock.

Read access

The role is called Averil-Reader. It has the AWS managed policies SecurityAudit and ViewOnlyAccess, plus findings, audit and identity reviews. The broker allows only these 14 operations, at most 120 calls a minute.

ServiceOperationsWhy
GuardDutyListDetectors, GetDetector, ListFindings, GetFindingsFind detectors, check they are on, read active findings
Security HubDescribeHub, GetFindingsCheck it is on, read active findings
CloudTrailLookupEvents, DescribeTrailsRead recent management events, check a multi-region trail
IAMGenerateCredentialReport, GetCredentialReportUsers, MFA, access key age and last use (no secrets)
TaggingGetResourcesInventory of tagged resources
RDSDescribeDBInstancesFind public or unencrypted databases
Secrets ManagerListSecretsSecret names and rotation status, never values
BudgetsDescribeBudgetsCheck a spend alert covers AI services
Averil cannot read your dataThe role explicitly denies object reads, secret values, parameters, kms:Decrypt, table rows, image layers and console output, and it cannot chain into other roles.

Write access

Writes need a second, optional role, Averil-Responder, that only Averil's executor can assume. It is off by default.

ActionVerified byReversible
Set an IAM access key to inactiveThe credential reportYes
Create and enable a GuardDuty detector in a regionListing detectorsYes
Turn off public access on an RDS instanceDescribing the instanceYes

Review the exact permissions in the Averil-Responder part of the template before you turn it on. It never touches any Averil-* role.

How to connect

  1. 1Get your ExternalId and Averil's broker account ID from us during onboarding. The ExternalId is at least 32 characters and unique to your workspace.
  2. 2Deploy the Averil CloudFormation template (averil-access.yaml) as a stack. Set ExternalId and AverilBrokerAccountId, and leave EnableResponder set to false to start.
  3. 3Copy the ReaderRoleArn output back to us, with your account ID and the regions to cover. The first region you list is the home region.

If you manage AWS with OpenTofu or Terraform, we share a module with exactly the same permissions. CI checks that the two stay identical.

Every call is on your CloudTrailSessions last at most an hour. Each one carries a source identity of averil- plus the case ID, so you can see which case made every call.

How to revoke

Delete the CloudFormation stack (or destroy the module). Averil can no longer assume the role. Any session already issued expires within the hour. Averil marks the integration as access revoked.

What's next

Google Cloud (workload identity federation) and Azure (federated credential) are coming soon.

Stuck? Email averil@averil.ai or ask me in Slack.

Start with a free
security check

Connect GitHub and your cloud, and I'll send you a short list of what to fix, in Slack.

Get a free security checkSee pricing