You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Provision a disposable Azure validation environment and prove the complete OpenShield observe-reason-plan-approve-act-verify workflow. This is PR 5 of 5 and depends on #311-#314. It is the production-execution readiness gate, not a feature-expansion PR.
Safety boundary
Use a dedicated non-production tenant/subscription or an explicitly isolated disposable subscription.
Never target shared or production resources.
Apply restrictive budget, region, naming, tagging, TTL, and resource-group boundaries.
OpenShield execution remains disabled by default before and after tests unless a documented environment-specific flag is deliberately enabled.
Human approval remains mandatory; the test harness must not forge or bypass it.
Infrastructure scope
Create version-controlled Terraform or Bicep for the minimum reviewed scenario:
Dedicated resource group with ownership and automatic-expiry tags.
A deliberately misconfigured but non-sensitive entry-point workload/public exposure suitable for the reviewed template.
System- or user-assigned managed identity.
Narrow test RBAC relationship connecting the identity to a disposable Key Vault target.
Empty Key Vault containing no real secrets.
Storage account(s) needed for the initially allowlisted reversible remediation controls.
Log/diagnostic destination required for audit evidence.
Separate scanner and remediation identities.
Custom least-privilege remediation role containing only the exact actions required by allowlisted playbooks.
Do not create real customer data, broadly privileged identities, Owner/User Access Administrator assignments, public secrets, or reusable credentials.
Test orchestration
Provide documented, repeatable stages:
Preflight validates subscription allowlist, tenant, identity, budget/TTL tags, feature flags, and clean test state.
Provision isolated resources.
Seed the reviewed misconfiguration and relationship evidence.
Run OpenShield scan and assert complete rule/collector outcomes.
Assert finding lifecycle and evidence-backed attack path.
Create typed proposal and validate canonical plan/hash/approval packet.
Pause for a real authenticated human approval of the displayed hash.
Revalidate and execute through the remediation worker.
Independently read Azure state, rescan, refresh relationships, and recalculate path.
Assert VERIFIED and immutable before/after audit evidence.
Destroy disposable resources and verify cleanup.
The workflow may automate every stage except the actual human approval decision.
Required negative and recovery scenarios
Rejection: no execution occurs.
Expired approval: execution is blocked.
Azure state changed after approval: approval is invalidated and fresh approval is required.
Duplicate and concurrent approval: one execution maximum.
Insufficient scanner permission: no false resolution/path.
Insufficient remediation permission: accurate EXECUTION_FAILED, no privilege expansion.
Command timeout/cancellation.
Worker termination after claim and after Azure mutation.
Exit code zero or successful SDK response while postcondition remains false.
Finding removed but attack path remains, and path removed but finding remains: both yield VERIFICATION_FAILED.
Kill switch activated before claim and during queued work.
Redaction fixtures containing synthetic secrets.
Cleanup retry after partial infrastructure deletion.
Measurable acceptance criteria
Infrastructure deploy and destroy succeed from a clean environment twice consecutively.
All created resources stay inside the allowlisted subscription/resource group and carry expiry/owner tags.
Scanner and remediation identities are different; automated permission diff proves the remediation role contains only reviewed actions.
Happy path reaches VERIFIED with matching plan hash and immutable before/after evidence.
Human approval is demonstrably the only manual workflow decision.
Every required negative scenario reaches the documented safe state with zero unauthorised or duplicate mutations.
No real secrets or tenant identifiers enter fixtures, logs, screenshots, or committed artifacts.
Resource cleanup leaves no billable test resources, role assignments, locks, or credentials.
Test report records timings, retries, attack-path false results, execution success, independent verification result, and cleanup result.
CI-equivalent tests and IaC security/lint/plan checks pass.
Production enablement decision
Attach a signed readiness report containing:
Tested commit and registry versions.
Azure environment and evidence timestamps with sensitive identifiers redacted.
Results for every happy, negative, crash, replay, and cleanup scenario.
Least-privilege review.
Observed false-positive/false-negative notes.
Alert, kill-switch, incident-response, retention/redaction, rollback/recovery, and operator runbook evidence.
Explicit list of playbooks approved for staged enablement.
Passing this issue permits only staged enablement of the specifically tested playbooks:
Objective
Provision a disposable Azure validation environment and prove the complete OpenShield observe-reason-plan-approve-act-verify workflow. This is PR 5 of 5 and depends on #311-#314. It is the production-execution readiness gate, not a feature-expansion PR.
Safety boundary
Infrastructure scope
Create version-controlled Terraform or Bicep for the minimum reviewed scenario:
Do not create real customer data, broadly privileged identities, Owner/User Access Administrator assignments, public secrets, or reusable credentials.
Test orchestration
Provide documented, repeatable stages:
VERIFIEDand immutable before/after audit evidence.The workflow may automate every stage except the actual human approval decision.
Required negative and recovery scenarios
EXECUTION_FAILED, no privilege expansion.VERIFICATION_FAILED.Measurable acceptance criteria
VERIFIEDwith matching plan hash and immutable before/after evidence.Production enablement decision
Attach a signed readiness report containing:
Passing this issue permits only staged enablement of the specifically tested playbooks:
proposal-only -> disposable Azure -> non-critical production subscription -> wider rolloutFailure keeps
AUTOMATION_EXECUTION_ENABLED=falseand creates follow-up issues; it must not be waived silently.Dependencies
Requires #311, #312, #313, and #314 merged in sequence with execution disabled.
Mandatory safety and automation checklist
Environment guardrails
Identity and permissions
End-to-end happy path
VERIFIEDwith immutable before/after evidence.Mandatory negative scenarios
VERIFICATION_FAILED.VERIFICATION_FAILED.Cleanup and repeatability
Production-readiness evidence
Final exit gate