AWS Integration — Full Implementation Cycle Plan
Why this plan exists
We already have solid AWS research, but it is split across multiple docs and PRs:
- PR #56 — AWS connector coverage research
- PR #127 — AWS integration comprehensive research and plan
- PR #129 — AWS competitive analysis enrichment
Those docs are good enough to start implementation, but they do not yet give us one execution plan that ties together:
- connector delivery in
sv0-connectors - platform/data-model work in
sv0-platform - architecture + setup docs in
sv0-documentation - demo-lab/customer onboarding implications
This document is the execution bridge.
Source docs reviewed
Existing implementation-relevant research
- AWS Connector — Research & Implementation Plan
- AWS Integration Strategy for SecurityV0
- AWS NHI Workload Identity Surface
- AWS Integration Competitive Analysis
Existing decisions already made
Recent PRs this plan builds on
- PR #56 —
research: AWS connector coverage — identity graph, ECR chain, authority paths - PR #127 —
docs: AWS integration comprehensive research and plan - PR #129 —
docs: enrich AWS competitive analysis with Veza platform architecture
What the research already tells us
Main product call
SecurityV0 should treat AWS primarily as a workload identity + authority path system, not as a generic CSPM inventory project.
That means the first shipped AWS wedge should optimize for:
- runtime identities
- cross-account trust
- execution evidence
- sensitive data reachability
- cross-system story (GitHub / ServiceNow / Entra / Bedrock)
Main architecture call
The best baseline pattern is:
- AWS Organizations-aware by default
- delegated admin / security account for centralized reads where possible
- spoke read-only roles only where central services are insufficient
- CloudTrail as execution evidence source
- Config Aggregator / Organizations / Identity Center / Access Analyzer / Security Hub as high-leverage central control planes
Main competitive call
The competitive research is pretty clear:
- most vendors use the same multi-account trust pattern
- our differentiator is execution-centric graphing, not generic AWS inventory
- we should copy the good boring parts (cross-account onboarding, centralized readers, org trail ingestion)
- we should avoid boiling the ocean in v1
Recommendation
Do not start with a new round of AWS research.
The existing research is sufficient to move into implementation planning and phased execution.
What we need now is:
- one agreed implementation sequence
- explicit repo-by-repo deliverables
- a Phase 1 scope cut that is small enough to ship
- a follow-on sequence for Bedrock, containers, and richer cross-system paths
Automation requirement: no clickops
AWS work for SecurityV0 must be 100% automation-first.
That means:
- no AWS console-driven setup as the intended primary path
- customer onboarding must be reproducible via Terraform and/or CloudFormation / StackSets
- demo-lab environments must be reproducible via code
- validation and teardown must also be scripted
- any unavoidable manual bootstrap step must be treated as an exception, minimized, and documented explicitly
Applies to all AWS workstreams
This requirement applies to:
- customer onboarding
- org-mode deployment
- selected-account deployment
- single-account deployment
- demo environment provisioning
- seeded-risk / demo scenario creation
- teardown / cleanup
Required deliverables for implementation
Any AWS implementation PR series should include, where applicable:
- CloudFormation / StackSets templates for org-mode rollout
- Terraform modules or equivalent IaC for reusable deployment patterns
- scripted demo environment creation
- scripted teardown
- parameterized configuration for tenant/customer-specific values
Console verification can exist as a troubleshooting or audit aid, but console-click setup is not an acceptable primary workflow.
Recommended delivery shape
Phase 1 — Ship the first real AWS wedge
Goal
Make AWS appear in SecurityV0 as a first-class source of:
- workload identities
- cross-account trust chains
- sensitive resource reachability
- execution evidence
Phase 1 scope
Connector scope (sv0-connectors)
Ship one AWS connector package that supports:
- Organizations account discovery
- per-account role assumption
- IAM roles
- IAM managed + inline policies
- Lambda
- Step Functions
- EventBridge rules
- Bedrock agents / aliases / action groups / knowledge bases / flows
- Secrets Manager
- SSM Parameter Store / SecureString
- S3 buckets
- DynamoDB tables
- CloudTrail evidence ingestion for core identity events
- minimal Access Analyzer ingestion
Platform scope (sv0-platform)
Ship the minimum platform changes required to materialize AWS paths correctly:
- add
permission_setsupport per ADR-014 - support AWS account-scoped
source_systemsemantics per ADR-015 - materializer traversal for:
HAS_PERMISSION_SETRUNS_ASASSUMESTRIGGERED_BY
- authority path explanation support for AWS caveat: conditions not evaluated
- entity/finding UI support for AWS badges and account context
Documentation scope (sv0-documentation)
Ship customer/operator docs for:
- AWS onboarding modes (single account / selected accounts / org mode)
- required IAM role templates
- ExternalId setup
- security-account / delegated-admin architecture
- caveats: conditions not evaluated, Config delay, CloudTrail coverage limits
- explicit automation-first setup guidance covering Terraform and/or CloudFormation / StackSets as the required primary path
Explicit non-goals for Phase 1
Do not block Phase 1 on:
- ECS / EKS deep coverage
- full KMS policy reasoning
- full SCP effective evaluation
- all AWS services
- perfect IAM condition evaluation
- deep ECS / EKS coverage
Phase 2 — Bedrock + container identity expansion
Goal
Expand from serverless-first AWS coverage into the modern workload identity surfaces buyers actually care about.
Scope
Connector additions
- Bedrock agents / aliases / action groups / knowledge bases / flows
- ECS task definitions / services / task roles / execution roles
- ECR repositories and repository policies
- GitHub OIDC trust pattern capture
- EKS IRSA / Pod Identity discovery where practical
Platform additions
- supply-chain-to-runtime path rendering
- richer
egress_categorysupport for Bedrock and AI-linked flows - policy/resource visualization for ECR injection and CI/CD-to-runtime chains
Documentation additions
- Bedrock integration guide
- ECS/ECR pathing examples
- GitHub OIDC to AWS trust narrative
- cross-cloud story: GitHub → AWS → data / ServiceNow
Phase 3 — Enterprise hardening and full operations story
Goal
Make AWS integration enterprise-ready for larger, multi-account environments.
Scope
- IAM Identity Center correlation
- richer Access Analyzer and Security Hub ingestion
- Config Aggregator-backed resource inventory enrichment
- selected SCP interpretation
- KMS / resource-policy depth where it materially changes path accuracy
- demo-lab live AWS scenario updates
- ServiceNow <-> AWS operational workflows
Repo-by-repo implementation plan
1. sv0-connectors
1.1 Create connector package
Create a new connector package/module for AWS with:
- boto3 session bootstrap
- AssumeRole per target account
- account iteration and retry boundaries
- normalized emitters that match existing connector contracts
1.2 Phase 1 collectors
Implement collectors in this order:
- Organizations / account inventory
- IAM roles + trust policies
- IAM policies (managed + inline)
- Lambda
- Step Functions
- EventBridge
- Secrets Manager
- S3 / DynamoDB
- CloudTrail evidence
- Access Analyzer findings
1.3 Connector-side output contract
Emit:
- entities
- relationships
- execution evidence
- provenance / caveat metadata
Required metadata from day one:
account_idaccount_namewhen knownorganization_idwhen knownou_idwhen knownou_pathwhen knownaccount_purposewhen knownis_management_accountis_delegated_adminregionsource_system=aws_{service}:{account_id}conditions_not_evaluated=truewhere appropriate
1.4 Connector test plan
Need fixtures for:
- single-account role assumption
- multi-account trust chain
- Lambda → role → S3 path
- Step Functions → Lambda chain
- resource-based policy cross-account path
- CloudTrail AssumeRole evidence mapping
2. sv0-platform
2.1 Data model / enums / schemas
Implement the model changes already implied by ADR-014 and ADR-015:
permission_setnode/entity typeHAS_PERMISSION_SETSUBJECT_TOfor permission boundaries / SCPs- prefix-aware filtering for AWS
source_system - the underlying API/index support for
source_systemprefix queries (or an equivalentsource_system_prefixfield), as called out by ADR-015
2.2 Materializer changes
Extend path materialization to understand:
- IAM trust edges
- policy-document-based grants
- cross-account account transitions
- trigger edges such as
TRIGGERED_BY - invocation edges such as
INVOKES - workload → runtime role → permission_set → permission → resource
2.3 Evidence ingestion
Add ingestion and UI surfacing for:
sts:AssumeRoleAssumeRoleWithWebIdentity- high-value Lambda / Step Functions execution evidence
- CloudTrail-linked timestamps and lineage
2.4 UI work
Need at least:
- AWS account-aware source badges
- entity detail support for AWS subtypes
- explanation caveat for IAM condition non-evaluation
- finding copy for cross-account and dormant-but-powerful runtime roles
3. sv0-documentation
3.1 Architecture docs to add/update
After Phase 1 coding begins, update:
docs/architecture/05-connectors.mddocs/architecture/10-access-paths.mddocs/architecture/01-data-model.md- setup / onboarding docs for AWS connector
3.2 Operator docs to add
We should expect to need:
docs/integrations/aws/index.mddocs/integrations/aws/authentication.mddocs/integrations/aws/permissions.mddocs/integrations/aws/onboarding-modes.mddocs/integrations/aws/known-caveats.md- org-mode onboarding templates (CloudFormation / StackSets baseline) for delegated-admin + spoke-role rollout
- reusable Terraform modules where they provide a better operator workflow than raw templates
3.3 Demo-lab docs
Update the demo-lab plan to move the AWS scenario from “blocked until connector ships” to a real execution plan with:
- org-mode demo account topology
- serverless + Bedrock sample workloads
- one cross-account trust misconfiguration
- one orphaned runtime role
- one GitHub OIDC deployment path
Decision: what should be first PRs?
Recommended PR sequence
PR A — platform prerequisites
Repo: sv0-platform
Ship the smallest platform-enabling changes first:
permission_setsupportHAS_PERMISSION_SET/SUBJECT_TOsource_systemprefix filtering or equivalent support- path materializer prep for AWS entities
Why first: the connector should not get too far ahead of the platform model.
PR B — connector skeleton + IAM/Lambda wedge
Repo: sv0-connectors
Ship:
- AWS connector scaffolding
- account iteration + AssumeRole
- IAM role/policy ingestion
- Lambda ingestion
- S3 / Secrets / DynamoDB basics
- first path fixtures
Why second: this gets the smallest end-to-end AWS story live.
PR C — CloudTrail evidence + cross-account findings
Repos: sv0-connectors, sv0-platform
Ship:
- CloudTrail evidence mapping
- cross-account path visibility
- findings that use evidence + structural reachability together
Why third: this is where SecurityV0 becomes differentiated, not just inventory-capable.
PR D — docs + onboarding package
Repo: sv0-documentation
Ship customer-facing docs once the actual connector shape is real.
PR E — Bedrock / Step Functions / EventBridge expansion
Repos: sv0-connectors, sv0-platform, docs as needed
Proposed work breakdown by sprint
Sprint 1 — prerequisites
sv0-platform: permission_set + path model prepsv0-connectors: AWS connector skeleton, auth/session/bootstrap- docs: onboarding draft skeleton
Sprint 2 — first working wedge
- IAM roles + policies
- Lambda
- S3 / DynamoDB / Secrets
- first end-to-end path materialization
Sprint 3 — evidence + trust chains
- CloudTrail
- cross-account AssumeRole paths
- first AWS-specific findings
Sprint 4 — orchestration and AI surface
- Step Functions
- EventBridge
- Bedrock agent/action-group support
Sprint 5 — expansion + demo lab
- ECS / ECR
- GitHub OIDC
- demo-lab AWS scenario
- docs hardening
Risks and blockers
1. Platform model drift
The biggest implementation risk is not AWS API complexity. It is connector output diverging from platform semantics.
Mitigation: do PR A first.
2. IAM conditions false positives
If we present structural reachability as fully effective reachability, we will overstate risk.
Mitigation: explicit caveat in API + UI + docs for Phase 1.
3. Multi-account onboarding complexity
Customers will want org mode; many will only be able to start with selected accounts.
Mitigation: document 3 onboarding modes from day one.
4. Over-scoping AWS services
Trying to cover ECS, EKS, Bedrock, IAM Identity Center, Config, Security Hub, and every resource policy in the first implementation cycle will slow shipping dramatically.
Mitigation: keep Phase 1 to IAM + Lambda + trust + evidence + sensitive stores.
Success criteria
This implementation cycle is successful when SecurityV0 can show, for a real AWS environment:
- a Lambda or Step Functions workload
- the IAM role it runs as
- the policy documents that grant access
- the destination data resources it can reach
- whether it crosses account boundaries
- at least one CloudTrail-backed proof that the path was exercised
- ownership/account context that makes the result actionable
If we can do that well, we have a credible AWS wedge.
Bottom line
The existing AWS research is good enough. We do not need another discovery phase before coding.
The right next move is:
- platform prerequisite PR in
sv0-platform - connector wedge PR in
sv0-connectors - then evidence + docs hardening
All AWS rollout and demo work under that sequence must follow the automation-first rule above: no clickops, reproducible IaC, scripted validation, scripted teardown.
This document should be treated as the working execution plan for that sequence.