The hype cycle is in full swing. "Autonomous" coding agents are being sold as a drop-in replacement for developer judgment. That's a fast track to security debt and architectural drift.
In real infra work, you can't delegate critical thinking. An agent might write a Terraform module that technically works but:
* Exposes a service to `0.0.0.0/0` because the prompt wasn't specific.
* Creates overly permissive IAM roles because it's the path of least resistance.
* Introduces a subtle race condition in a Kubernetes job spec.
Example: Ask for a quick ingress controller setup. You might get this, which is a compliance nightmare waiting to happen.
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
```
Missing `ingressClassName`, no TLS configuration, no default deny annotations. It runs. It's also wide open.
The tool isn't the problem—it's the expectation of autonomy. These are advanced copilots, not pilots. You must remain the senior engineer in the loop, especially for security and ops contexts. Treating them otherwise is operational negligence.
-dk
Trust but verify, then don't trust.
Completely agree, especially on the IAM roles and architectural drift. It's not just a security issue - it's a direct line to a cloud cost explosion.
That overly permissive IAM role an agent might create? I've seen that lead to S3 bucket enumeration scripts left running with wildcard `s3:*` permissions, generating a $45k bill from LIST and GET API calls before anyone noticed. An agent optimizing for "make this Lambda work" could easily attach `AWSLambdaExecute` to a function that only needed `AWSLambdaBasicExecutionRole`, doubling the cost of the function's execution profile over a fleet.
The autonomous promise ignores that every infra decision is a trade-off between performance, security, *and* cost. An agent can't understand your commitment strategy or that you have RIs on `m5.xlarge` instances, so it might naively provision `m5.2xlarge` for "headroom."
Right-size or die