Built for the security review you'll put it through.
PosturaNet reads, reasons and proposes. It never changes your cloud. Humans merge every change.
Stays in your environment
- Findings, flow logs and CloudTrail queries
- Terraform code and state (state is never logged)
- Behavior contracts and audit evidence, as files in your repo
- Prompts to your LLM, with secrets redacted first
Reaches PosturaNet (optional)
- A license check: your license id and agent version
- Nothing else, and the check can be turned off
Every AWS call is on a published allowlist.
posturanet init generates the IAM policy from the same allowlist the code enforces, so the two can't drift apart. A test fails the build if any mutating call appears.
// PosturaNetReadOnly (excerpt)
{
"Effect": "Allow",
"Action": [
"securityhub:GetFindings",
"ec2:DescribeSecurityGroups",
"ec2:DescribeNetworkInterfaces",
"logs:StartQuery",
"logs:GetQueryResults",
"cloudtrail:LookupEvents"
],
"Resource": "*"
}How the agent stays safe
Fails closed
Missing context, a failed check, a timeout or unexpected plan scope stops the run. No PR.
The LLM never decides
Rules and diffs come from code and a solver. Model output is schema-checked and never executed.
External text is data
Instructions hidden in findings, comments or logs are ignored and noted in the run record.
One finding, one PR
An idempotency key prevents duplicates, and the number of open PRs is capped.
Honest results
Every PR states the evidence window, confidence, model scope, residual risk and unknowns.
Source-available core
FSL-1.1, Apache 2.0 after two years. Read the code that runs in your CI before you run it.