WAF-AGN-010 – Agent Identity & Authentication
Beschreibung
Every agent must be identifiable, authenticatable, and traceable. Agents MUST have unique, stable IDs. Authentication via token or certificate is mandatory for all agent communications. All agent interactions MUST be logged in an audit trail for security and compliance.
Begründung
| Risiko | Beschreibung |
|---|---|
Risk |
Non-identifiable agents cannot be traced or held accountable for their actions. |
Risk |
Missing agent authentication enables identity spoofing and non-attributable changes. |
Anforderungen
-
Every agent must be identifiable, authenticatable, and traceable.
-
Agents MUST have unique, stable IDs.
-
All agent interactions MUST be logged in an audit trail for security and compliance.
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-010.tf.aws.bedrock-agent-id-defined
Engine: terraform | Provider: aws | Automated: Ja
AWS Bedrock agents must have unique identifiers and authentication
AWS Bedrock agents must have a unique, stable agent_id and authentication via IAM roles or API keys. All agent interactions must be logged via CloudWatch.
Scope: resource — aws_bedrockagent
Assertions:
* agent_name not empty — Agent must have a unique name/identifier.
* agent_resources attribute exists — Agent must have resources configured.
Remediation: Define an aws_bedrockagent resource with a unique agent_id and associate it with an IAM role for authentication. Enable CloudWatch logging for agent interactions.
resource "aws_bedrockagent" "customer_support_agent" {
agent_name = "customer-support-agent"
description = "Agent for customer support inquiries"
agent_resources = [{
model_arn = aws_bedrock_foundation_model.claude.arn
}]
# Unique agent_id automatically assigned
# Authentication via IAM role
}
resource "aws_cloudwatch_log_group" "agent_logs" {
name = "/aws/bedrock/customer-support-agent"
}
# No agent defined – unauthenticated agent access
# WAF-AGN-010 Violation
# Agents without IDs and authentication are not permitted
waf-agn-010.tf.google.vertex-agent-id-defined
Engine: terraform | Provider: google | Automated: Ja
Google Vertex AI agents must have unique identifiers and authentication
Google Vertex AI agents must have unique agent_id and authentication via IAM service accounts. All interactions must be logged via Cloud Logging.
Scope: resource — google_vertex_ai_agent
Assertions:
* display_name not empty — Agent must have a display name/identifier.
Remediation: Define a vertex_ai_agent resource with unique identifier and service account authentication. Configure Cloud Logging for agent interactions.
resource "google_vertex_ai_agent" "fraud_detection" {
display_name = "fraud-detection-agent"
description = "Agent for fraud detection"
# Unique agent_id automatically assigned
# Authentication via service account
}
resource "google_logging_project_sink" "agent_logs" {
name = "agent-logs"
destination = "storage.googleapis.com/agent-logs-bucket"
filter = "resource.type=vertex_ai_agent"
}
# No agent defined – unauthenticated access
# WAF-AGN-010 Violation
waf-agn-010.tf.azurerm.ai-agent-id-defined
Engine: terraform | Provider: azurerm | Automated: Ja
Azure AI agents must have unique identifiers and authentication
Azure AI agents must have unique agent_id and authentication via Azure AD or Managed Identity. All interactions must be logged via Application Insights.
Scope: resource — azurerm_cognitive_deployment
Assertions:
* name not empty — Agent must have a unique name/identifier.
Remediation: Define an azure_ai_agent resource with unique identifier and Managed Identity authentication. Configure Application Insights for logging.
resource "azurerm_cognitive_deployment" "agent" {
name = "customer-service-agent"
cognitive_account_id = azurerm_cognitive_account.main.id
model_name = "gpt-4"
format = "OpenAI"
# Authentication via Managed Identity
}
resource "azurerm_application_insights" "agent_ai" {
name = "agent-insights"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
workspace_id = azurerm_log_analytics_workspace.main.id
}
# No agent defined – unauthenticated access
# WAF-AGN-010 Violation
waf-agn-010.config.multi.identity-access
Engine: config | Provider: multi | Automated: Ja
Agent interactions must be logged in audit trail
A version-controlled policy document must exist at docs/agentic/waf-agn-010-identity-access.md and document the cross-provider implementation of this control. The checker validates that the file exists and contains a normative requirement statement (MUST/SHALL/required/mandatory).
Scope: file — docs/agentic/waf-agn-010-identity-access.md
Assertions:
* content matches pattern (?i)MUST|SHALL|required|mandatory|enforced|documented — Policy file docs/agentic/waf-agn-010-identity-access.md must contain a normative requirement statement.
Remediation: Create or update docs/agentic/waf-agn-010-identity-access.md. State the requirement, how it is implemented for cross-provider, the review cadence, and the owner.
docs/agentic/waf-agn-010-identity-access.md:
- The cross-provider implementation of WAF-AGN-010 is documented.
- Implementation status and owner are recorded.
- Review cadence is defined (e.g. quarterly).
# `docs/agentic/waf-agn-010-identity-access.md` is missing or does not contain a normative requirement.
# WAF-AGN-010 violation: cross-provider control is not documented
waf-agn-010.tf.stackit.agentic-audit-logged
Engine: terraform | Provider: stackit | Automated: Ja
Every agent must be identifiable, authenticatable, and traceable for stackit
Every agent must be identifiable, authenticatable, and traceable must be documented in IaC via a agentic-audit-logged 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-audit-logged tag/label.
Remediation: Add a agentic-audit-logged tag/label to the stackit_project resource to show the stackit implementation of WAF-AGN-010 is tracked in IaC.
resource "stackit_project" "example" {
labels = {
agentic-audit-logged = "true"
}
}
resource "stackit_project" "example" {
# Missing agentic-audit-logged labels
}
waf-agn-010.tf.ovh.agentic-audit-logged
Engine: terraform | Provider: ovh | Automated: Ja
Every agent must be identifiable, authenticatable, and traceable for ovh
Every agent must be identifiable, authenticatable, and traceable must be documented in IaC via a agentic-audit-logged 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-audit-logged tag/label.
Remediation: Add a agentic-audit-logged tag/label to the ovh_cloud_project resource to show the ovh implementation of WAF-AGN-010 is tracked in IaC.
resource "ovh_cloud_project" "example" {
tags = {
agentic-audit-logged = "true"
}
}
resource "ovh_cloud_project" "example" {
# Missing agentic-audit-logged tags
}
waf-agn-010.tf.hcloud.agentic-audit-logged
Engine: terraform | Provider: hcloud | Automated: Ja
Every agent must be identifiable, authenticatable, and traceable for hcloud
Every agent must be identifiable, authenticatable, and traceable must be documented in IaC via a agentic-audit-logged 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-audit-logged tag/label.
Remediation: Add a agentic-audit-logged tag/label to the hcloud_server resource to show the hcloud implementation of WAF-AGN-010 is tracked in IaC.
resource "hcloud_server" "example" {
labels = {
agentic-audit-logged = "true"
}
}
resource "hcloud_server" "example" {
# Missing agentic-audit-logged 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-SEC-120 == Regulatorisches Mapping
| Framework | Controls |
|---|---|
ISO 27001:2022 |
* A.8.2 – Privileged access rights * A.8.5 – Secure authentication * A.5.17 – Authentication information |
ISO 27017 |
* CLD.9.5 – Segregation in virtual computing environments |
CIS Controls v8 |
* CIS 5 – Account Management * CIS 6 – Access Control Management |
SOC 2 Type II |
* CC6.1 – Logical and physical access controls * CC6.2 – Provisioning and removal of access |
NIST SP 800-53 |
* AC-2 – Account Management * IA-2 – Identification and Authentication |
NIST CSF 2.0 |
* PR.AA-01 – Identities and credentials are managed * PR.AA-03 – Users, services and hardware are authenticated |
GDPR |
* Art. 32 – Security of processing * Art. 5(1)(f) – Integrity and confidentiality |
PCI DSS v4.0 |
* Req 7 – Restrict access by business need to know * Req 8 – Identify and authenticate access |
CSA STAR |
* CCM IAM-01 – Identity and Access Management Policy * CCM IAM-02 – Strong Password Policy and Procedures |
BSI C5:2020 |
* IDM-01 – Identity and access management policy * IDM-02 – Authentication of users |
TISAX |
* Information security – Identity and access management requirements |
ANSSI SecNumCloud |
* Domain – Identity and access management |
BIO |
* BIO – Logische toegangsbeveiliging (logical access control) |
ENS High |
* op.acc.5 – Mecanismo de autenticación * op.acc.7 – Gestión de privilegios |
UK NCSC CAF |
* B2 – Identity and access control |
FedRAMP |
* AC-2, IA-2 (Moderate/High baseline) |
CMMC 2.0 |
* AC.L2-3.1.1 – Limit system access to authorized users * IA.L2-3.5.3 – Multifactor authentication |
IT-Grundschutz |
* ORP.4 – Identitäts- und Berechtigungsmanagement |
IRAP |
* ISM – Identification and authentication |
CCCS PBMM |
* AC-2, IA-2 – Account and authenticator management |
MAS TRM |
* Ch.6 – Access control |
ISMAP |
* Identity and access management controls |
FISC |
* Technical measures – User authentication and access control |
EUCS (ENISA) |
* IAM-01 – Identity and access management * IAM-02 – Authentication controls |