azure-container-apps

A review guide for Azure Container Apps and Azure App Service, the managed hosts where containerised .NET APIs can run. It checks how the application is exposed, scaled, monitored and given access to secrets and services.

In plain words
What is it for?
Use it to check ingress protection, secret references, managed identities, scaling limits, health probes, CPU and memory limits, and whether the container runs as root.
Why use it?
It finds security, reliability and cost risks that Kubernetes checks do not cover when the API runs on these managed hosts.

Skill for Claude CodeCodex

Part of the pilot-azure plugin — 15 skills, 3 agents shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/agenticpawan/fullstack-pilot/azure-container-apps
Any agent
npx skills add AgenticPawan/FullStack-Pilot --skill azure-container-apps
Clone the repo
git clone --depth 1 https://github.com/AgenticPawan/FullStack-Pilot

Made for: Claude Code, Codex.

Or install pilot-azure, the plugin that ships this one along with the rest of its 15 skills, 3 agents.

Per session 111 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,605 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00111 $0.01605
Opus 5 $0.00056 $0.00803
Sonnet 5 $0.00022 $0.00321
Haiku 4.5 $0.00011 $0.00161

Measured 2d ago against content hash 2377487bc778, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade B, and why

azure-container-apps scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

Check each container for CPU/memory `resources` and that the image does not run as root
plugins/pilot-azure/skills/azure-container-apps/SKILL.md · 172 lines

How it starts

The opening of the file, as written. The whole thing — 172 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Standard IDs

ID Severity What it checks
ACA-001 P1 External ingress (external: true) with no authentication (Easy Auth / JWT) or IP restriction
ACA-002 P1 Secrets injected as plaintext env value instead of secretRef / Key Vault references
ACA-003 P2 minReplicas: 0 on a latency-sensitive API (cold start), or no maxReplicas cap (unbounded scale/cost)
ACA-004 P2 No liveness/readiness probe on the container — unhealthy revisions still take traffic
ACA-005 P1 No managed identity — registry pulls / backing-service calls use passwords or connection strings
ACA-006 P3 Container has no CPU/memory limits, or runs as root

azure-aks-governance governs the Kubernetes compute target; this skill governs the serverless-container target most .NET APIs in this stack actually deploy to (ACA / App Service). Secret references resolve to azure-keyvault-appconfig; identity ties to azure-security-baseline (ASB-IM-1); scale/probe reliability feeds azure-slo-error-budget.


Check A — External ingress with no auth or IP restriction (ACA-001)

Detection

For any Container App with ingress.external: true, check that access is constrained — either platform authentication (Easy Auth / the app's own JWT validation per dotnet-authentication) or an ipSecurityRestrictions allow-list. An externally-reachable revision with neither is an open endpoint on the public internet.

BAD — external ingress, anonymous, open to the world

ingress: {
  external: true
  targetPort: 8080
  // No ipSecurityRestrictions, no auth in front — the API is publicly reachable by anyone.
}

GOOD — external only behind the edge, or internal with restrictions

ingress: {
  external: true
  targetPort: 8080
  ipSecurityRestrictions: [
    { name: 'front-door-only', ipAddressRange: 'AzureFrontDoor.Backend', action: 'Allow' }
  ]
  // Public traffic must arrive via the edge WAF (azure-edge-waf); direct hits are denied.
}

Read the full file on GitHub · 172 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 172 lines · 111 tokens per session scan B 2377487bc778

Subscribe to this mod's changes

azure-container-apps is a skill published in the GitHub repository AgenticPawan/FullStack-Pilot (2 stars, last pushed 1mo ago), licensed MIT. It adds 111 tokens to every session and 1,605 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

provisioning-library-generation

Generate new Azure.Provisioning. libraries OR regenerate existing ones. Use when introducing a brand-new provisioning library, adding new resource types, enum values, or API versions.

Azure/azure-sdk-for-net · 40 tokens

azure-resource-manager-postgresql-dotnet

Azure PostgreSQL Flexible Server SDK for .NET. Database management for PostgreSQL Flexible Server deployments. Use for creating servers, databases, firewall rules, configurations, backups, and high availability. Triggers: "PostgreSQL", "PostgreSqlFlexibleServer", "PostgreSQL Flexible Server", "Azure Database for…

microsoft/skills · 97 tokens

azure-resource-manager-durabletask-dotnet

Azure Resource Manager SDK for Durable Task Scheduler in .NET. Use for MANAGEMENT PLANE operations: creating/managing Durable Task Schedulers, Task Hubs, and retention policies via Azure Resource Manager. Triggers: "Durable Task Scheduler", "create scheduler", "task hub", "DurableTaskSchedulerResource", "provision…

microsoft/skills · 84 tokens

azure-resource-manager-mysql-dotnet

Azure MySQL Flexible Server SDK for .NET. Database management for MySQL Flexible Server deployments. Use for creating servers, databases, firewall rules, configurations, backups, and high availability. Triggers: "MySQL", "MySqlFlexibleServer", "MySQL Flexible Server", "Azure Database for MySQL", "MySQL database…

microsoft/skills · 87 tokens

azure-security-keyvault-keys-dotnet

Azure Key Vault Keys SDK for .NET. Client library for managing cryptographic keys in Azure Key Vault and Managed HSM. Use for key creation, rotation, encryption, decryption, signing, and verification. Triggers: "Key Vault keys", "KeyClient", "CryptographyClient", "RSA key", "EC key", "encrypt decrypt .NET", "key…

microsoft/skills · 90 tokens

azure-eventhub-dotnet

Azure Event Hubs SDK for .NET. Use for high-throughput event streaming: sending events (EventHubProducerClient, EventHubBufferedProducerClient), receiving events (EventProcessorClient with checkpointing), partition management, and real-time data ingestion. Triggers: "Event Hubs", "event streaming"…

microsoft/skills · 94 tokens