WAF-AGN-060 – Multi-Agent Orchestration
Beschreibung
Many agents must be coordinated. Agent orchestration MUST use coordinator/manager patterns or mesh architectures. Event-based communication MUST be configured for agent messaging. Failure recovery and agent health monitoring MUST be in place.
Begründung
| Risiko | Beschreibung |
|---|---|
Risk |
Uncoordinated agents create race conditions, deadlocks, or duplicate critical operations. |
Risk |
Missing orchestration governance allows agent swarms to bypass approval boundaries. |
Anforderungen
-
Many agents must be coordinated.
-
Agent orchestration MUST use coordinator/manager patterns or mesh architectures.
-
Event-based communication MUST be configured for agent messaging.
-
Failure recovery and agent health monitoring MUST be in place.
Implementierungsleitfaden
-
Document the requirement in a version-controlled policy or standard.
-
Assign ownership and establish a review cadence (e.g., quarterly).
-
Implement the required configuration as code in Terraform or equivalent IaC.
Reifegrade
| Level | Name | Kriterien |
|---|---|---|
L1 |
Ad hoc – control not consistently applied |
* Manual evidence exists for some workloads, but coverage is unknown. |
L2 |
Standardised – policy defined and communicated |
* A version-controlled policy, ADR, or standard describes the requirement. |
L3 |
Integrated – automated validation in CI/CD |
* Terraform checks run automatically on pull requests and report results. |
L4 |
Auditable – metrics and exceptions tracked |
* Control coverage, failures, and approved exceptions are reported quarterly. |
L5 |
Optimised – continuous improvement based on data |
* Control effectiveness is measured and iteratively improved. |
Checks
waf-agn-060.tf.aws.coordinator-agent-configured
Engine: terraform | Provider: aws | Automated: Ja
Multi-agent systems must have coordinator/manager configured
Multi-agent AWS Bedrock systems must have a coordinator agent that manages worker agents. The coordinator must route tasks, aggregate results, and handle failures.
Scope: resource — aws_bedrockagent, aws_lambda_function, aws_sfn_state_machine
Assertions:
* agent_name not empty — Coordinator agent must be configured for multi-agent systems.
Remediation: Design a coordinator agent pattern where one agent orchestrates multiple specialized agents. Use AWS Step Functions or Lambda to manage the coordination flow. Define clear task delegation and result aggregation.
# Coordinator agent manages worker agents
resource "aws_bedrockagent" "coordinator" {
agent_name = "agent-coordinator"
# Manages multiple worker agents
}
resource "aws_bedrockagent" "worker_analysis" {
agent_name = "analysis-worker"
# Works under coordinator direction
}
resource "aws_bedrockagent" "worker_research" {
agent_name = "research-worker"
# Works under coordinator direction
}
# Coordination via Step Functions or Lambda
resource "aws_lambda_function" "agent_coordinator" {
function_name = "agent-coordinator-function"
# Coordinates agent communication
}
# No coordinator defined
# WAF-AGN-060 Violation
waf-agn-060.tf.aws.event-based-communication
Engine: terraform | Provider: aws | Automated: Ja
Agent communication must use event-based messaging
Agents must communicate via event-based channels (SNS, SQS, EventBridge) rather than direct HTTP calls. This ensures decoupling, resilience, and auditability of agent interactions.
Scope: resource — aws_sns_topic, aws_sqs_queue, aws_bedrockagent
Assertions:
* name not empty — Event-based communication (SNS/SQS/EventBridge) must be configured.
Remediation: Configure SNS topics, SQS queues, and EventBridge rules for agent communication. Agents publish messages to channels and subscribe to relevant events. Avoid direct agent-to-agent HTTP endpoints.
resource "aws_sns_topic" "agent_events" {
name = "agent-events"
}
resource "aws_sqs_queue" "agent_queue" {
name = "agent-messages"
}
resource "aws_sns_topic_subscription" "agent_subscription" {
topic_arn = aws_sns_topic.agent_events.arn
protocol = "sqs"
endpoint = aws_sqs_queue.agent_queue.arn
}
resource "aws_bedrockagent" "event_agent" {
agent_name = "event-based-agent"
# Listens to SNS/SQS for events
}
resource "aws_bedrockagent" "direct-agent" {
agent_name = "direct-rpc-agent"
# Direct HTTP calls to other agents
# WAF-AGN-060 Violation
}
waf-agn-060.tf.aws.failure-recovery-configured
Engine: terraform | Provider: aws | Automated: Ja
Multi-agent systems must have failure recovery configured
Multi-agent systems must have automated failure recovery. Failed agents must be restarted, messages requeued, and alerts raised. Dead letter queues must be configured for failed messages.
Scope: resource — aws_sqs_queue, aws_cloudwatch_metric_alarm
Assertions:
* name not empty — Failure recovery (dead letter queue, alarms) must be configured.
Remediation: Configure CloudWatch Alarms for agent health monitoring. Set up Lambda retry policies and dead letter queues for failed message processing. Implement agent health checks with automatic restart.
resource "aws_sqs_queue" "dead_letter_queue" {
name = "agent-dead-letter"
}
resource "aws_sqs_queue" "main_queue" {
name = "agent-messages"
redrive_policy = jsonencode({
deadLetterTargetArn = aws_sqs_queue.dead_letter_queue.arn
maxReceiveCount = 3
})
}
resource "aws_cloudwatch_metric_alarm" "agent_health" {
alarm_name = "agent-health-alarm"
comparison_operator = "LessThanThreshold"
evaluation_periods = 3
metric_name = "Invocations"
namespace = "AWS/Lambda"
period = 300
statistic = "Sum"
threshold = 1
alarm_description = "Agent failure detected"
}
resource "aws_sqs_queue" "no_redrive" {
name = "messages-no-recovery"
# No dead letter queue configured
# WAF-AGN-060 Violation
}
waf-agn-060.tf.azurerm.event-grid-coordination
Engine: terraform | Provider: azurerm | Automated: Ja
Azure Event Grid must be configured for agent coordination
Azure Event Grid topics and subscriptions must be configured for event-based communication between agents, enabling decoupled coordination.
Scope: resource — azurerm_eventgrid_topic, azurerm_eventgrid_event_subscription
Assertions:
* name not empty — Event Grid topic must be configured for agent coordination.
* scope not empty — Event Grid subscription must route agent events.
Remediation: Deploy azurerm_eventgrid_topic and azurerm_eventgrid_event_subscription to route agent events between coordinator and worker agents.
resource "azurerm_eventgrid_topic" "agent_events" {
name = "agent-events"
location = azurerm_resource_group.main.location
resource_group_name = azurerm_resource_group.main.name
}
resource "azurerm_eventgrid_event_subscription" "agent_subscription" {
name = "agent-worker-subscription"
scope = azurerm_eventgrid_topic.agent_events.id
webhook_endpoint {
url = "https://agent-worker.example.com/events"
}
}
resource "azurerm_cognitive_deployment" "agent" {
name = "standalone-agent"
# No Event Grid coordination configured
# WAF-AGN-060 Violation
}
waf-agn-060.tf.google.eventarc-coordination
Engine: terraform | Provider: google | Automated: Ja
GCP Eventarc triggers must be configured for agent coordination
GCP Eventarc triggers must route agent events to Cloud Run services or Cloud Functions for event-based coordination between agents.
Scope: resource — google_eventarc_trigger
Assertions:
* matching_criteria attribute exists — Eventarc trigger must define matching criteria for agent events.
* destination attribute exists — Eventarc trigger must route events to an agent service destination.
Remediation: Configure google_eventarc_trigger resources to subscribe to relevant events and route them to agent services.
resource "google_eventarc_trigger" "agent_event" {
name = "agent-coordination-trigger"
location = "europe-west3"
matching_criteria {
attribute = "type"
value = "google.cloud.pubsub.topic.v1.messagePublished"
}
destination {
cloud_run_service {
service = google_cloud_run_service.agent_worker.name
region = "europe-west3"
}
}
}
resource "google_cloud_run_service" "agent_worker" {
name = "agent-worker"
# No Eventarc trigger for event-based coordination
# WAF-AGN-060 Violation
}
waf-agn-060.tf.stackit.agentic-coordination-defined
Engine: terraform | Provider: stackit | Automated: Ja
Many agents must be coordinated for stackit
Many agents must be coordinated must be documented in IaC via a agentic-coordination-defined tag/label on stackit_project. This validates the control is tracked as code.
Scope: resource — stackit_project
Assertions:
* labels key exists — stackit_project is missing the agentic-coordination-defined tag/label.
Remediation: Add a agentic-coordination-defined tag/label to the stackit_project resource to show the stackit implementation of WAF-AGN-060 is tracked in IaC.
resource "stackit_project" "example" {
labels = {
agentic-coordination-defined = "true"
}
}
resource "stackit_project" "example" {
# Missing agentic-coordination-defined labels
}
waf-agn-060.tf.ovh.agentic-coordination-defined
Engine: terraform | Provider: ovh | Automated: Ja
Many agents must be coordinated for ovh
Many agents must be coordinated must be documented in IaC via a agentic-coordination-defined tag/label on ovh_cloud_project. This validates the control is tracked as code.
Scope: resource — ovh_cloud_project
Assertions:
* tags key exists — ovh_cloud_project is missing the agentic-coordination-defined tag/label.
Remediation: Add a agentic-coordination-defined tag/label to the ovh_cloud_project resource to show the ovh implementation of WAF-AGN-060 is tracked in IaC.
resource "ovh_cloud_project" "example" {
tags = {
agentic-coordination-defined = "true"
}
}
resource "ovh_cloud_project" "example" {
# Missing agentic-coordination-defined tags
}
waf-agn-060.tf.hcloud.agentic-coordination-defined
Engine: terraform | Provider: hcloud | Automated: Ja
Many agents must be coordinated for hcloud
Many agents must be coordinated must be documented in IaC via a agentic-coordination-defined tag/label on hcloud_server. This validates the control is tracked as code.
Scope: resource — hcloud_server
Assertions:
* labels key exists — hcloud_server is missing the agentic-coordination-defined tag/label.
Remediation: Add a agentic-coordination-defined tag/label to the hcloud_server resource to show the hcloud implementation of WAF-AGN-060 is tracked in IaC.
resource "hcloud_server" "example" {
labels = {
agentic-coordination-defined = "true"
}
}
resource "hcloud_server" "example" {
# Missing agentic-coordination-defined labels
}
Evidenz
| Art | Erforderlich | Beschreibung |
|---|---|---|
|
Erforderlich |
Terraform configuration implementing the control. |
|
Erforderlich |
Policy, ADR, or standard documenting the requirement. |
|
Optional |
Cloud console or API output confirming runtime state. |
Verwandte Controls
-
WAF-PERF-040 == Regulatorisches Mapping
| Framework | Controls |
|---|---|
ISO 27001:2022 |
* A.8.1 – Information security roles and responsibilities * A.8.2 – Privileged access rights |
ISO 27017 |
* CLD.9.5 – Segregation in virtual computing environments |
CIS Controls v8 |
* CIS 13 – Content Filtering |
SOC 2 Type II |
* CC4.1 – Monitoring activities * CC7.1 – Infrastructure and software monitoring |
NIST SP 800-53 |
* AU-2 – Event logging * AU-6 – Audit review and analysis |
NIST CSF 2.0 |
* DE.CM – Continuous monitoring * DE.DP – Data protection |
GDPR |
* Art. 32 – Security of processing * Art. 5(1)(f) – Integrity and confidentiality |
PCI DSS v4.0 |
* Req 10 – Monitor and detect threats |
CSA STAR |
* CCM Logging and Monitoring |
BSI C5:2020 |
* OPS-01 – Operational monitoring |
TISAX |
* Information security – Monitoring and logging |
ANSSI SecNumCloud |
* Domain – Logging and monitoring |
BIO |
* BIO – Logboekhouding en monitoring |
ENS High |
* op.exp.6 – Gestión de cambios |
UK NCSC CAF |
* A4 – Policy and assurance |
FedRAMP |
* AU-2, AU-6 (Moderate baseline) |
CMMC 2.0 |
* AU.L2-3.8.1 – Flow audit logs to central log management |
IT-Grundschutz |
* ORP.1 – Organisation |
IRAP |
* ISM – Logging and monitoring |
CCCS PBMM |
* AU-2, AU-6 – Logging and audit |
MAS TRM |
* Ch.9 – Change management |
ISMAP |
* Monitoring and logging controls |
FISC |
* Technical measures – Logging and monitoring |