AWS
AWS is the most involved setup, because you create the access grant yourself: a cross-account IAM role that Governax can assume. Nothing is connected until that role exists.
Before you start#
You need permission to create IAM roles in the AWS account you want recorded, and CloudTrail should be enabled. Governax reads CloudTrail event history, which is on by default and retains 90 days.
The Governax connect screen shows three things you will need. Take them from there rather than from this page, because the External ID is specific to your entity:
Creating the IAM role#
Open IAM, then Roles, then Create role
Choose AWS account as the trusted entity type, then Another AWS account.
Enter the Governax account id and require an External ID
Tick the option to require an External ID and paste the one from the Governax connect screen. Alternatively paste the complete trust policy that screen provides, which looks like this:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<governax-account-id>:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "gvx-<your-entity-external-id>" } } }] }Attach the SecurityAudit policy
arn:aws:iam::aws:policy/SecurityAuditThis is an AWS-managed, read-only policy. Governax cannot change anything in your account with it.
Name the role and create it
Then copy the role ARN.
About the External ID#
The External ID is generated by Governax, not chosen by you, and it is derived from your entity so that it exists before the connection does. It is AWS's standard protection against the confused deputy problem: without the condition, anyone who learned the Governax account id could ask Governax to assume a role in an account they do not own.
Connecting#
Paste the role ARN and connect. Governax runs two checks and both must pass:
A role that can be assumed without the External ID is rejected, even though it would technically work. That is deliberate: a misconfigured trust policy is a security problem in your account, and connecting anyway would hide it.
How polling works#
IAM, STS and root sign-in are global services recorded in one region, but S3, GuardDuty, Config, KMS and EC2 events are recorded where they happen. Governax discovers which regions your account has enabled and polls them, each tracking its own position, so activity outside your primary region is not missed.
Read-only API calls are excluded at the source. Every event the ledger records is a change, and including reads would bury them.
Events captured#
How failed calls are treated#
Most failed API calls are dropped, because a change that did not take effect is not a governance event. Three classes are kept:
Disconnecting#
Reconnecting later keeps the previous poll position, so a reconnect does not re-import everything.
Troubleshooting#
General connector behaviour is covered in Connecting a tool.