Capability library / Application package

Microsoft Azure package v1.1.0

Azure Resource Manager pack: read subscriptions, resource groups, resources and subscription cost data, and administer one Azure OpenAI or Foundry account (model deployments, content filters, access-key rotation). Cost Management uses POST with a query body but changes no provider state.

Review state: Reviewed · Distributable: yes, digest matches the release manifest

This page describes AAES Govern’s controls. AAES Operate has private-work permissions, operational reviews and recorded-spend limits; it does not include Govern. About AAES Govern

Before you enable this package

Allow network egress to management.azure.com only. Bind SUBSCRIPTION_ID in every path, and RESOURCE_GROUP, ACCOUNT_NAME, DEPLOYMENT_NAME and RAI_POLICY_NAME in the Azure OpenAI paths, before enabling. Key rotation returns both account keys in its response, so send that response to your secret manager.

Read each action's effects and exclusions below. Before installation, also read the complete package requirements, including credential issuance, scope, expiry, and provider permissions. These are deployment prerequisites, not capabilities this package supplies.

Capabilities (11)

Each capability below is one registered operation. The complete package JSON includes its exact network destination allowlist. The repository stores it at packs/azure.json and embeds a copy in the release binary.

Versions. This package is version 1.1.0. Its capabilities carry their own version numbers: 4 at version 1.0.0, 7 at version 1.1.0, as shown on each capability below.

Risk tiers. R0 is the minimum for reads. R2 is the minimum for write, create, update, execute, and invoke. R3 is the minimum for delete, send, pay, deploy, approve, share, and transfer. Operators can raise these levels. A minimum tier does not measure the operation's business or confidentiality risk.

On supported execution paths routed through AAES Govern, the R3 actions listed below require approval by an authorized person. Bypass paths and observation-only registrations are outside that guarantee. A provider's restoration feature does not remove this approval requirement. A provider-side approval, such as approving a GitLab merge request, is also separate from AAES Govern human approval. The capability matrix shows which execution paths are implemented, restricted to lab use, or refused at startup. Live compatibility must be tested in your environment.

Field guide. Endpoint is the service address and request method. Connector is the adapter that makes the call. Custody describes how the credential is held; the credential reference identifies the value to resolve. Data class sets handling requirements: pii means personal data, financial means financial records, and internal means internal organizational data.

azure.subscriptions.list v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://management.azure.com/subscriptions?api-version=2022-12-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-client-credentials-token
Data class
internal

List subscriptions.

List all subscriptions the credential's tenant exposes to it: display names, subscription ids, states and managing tenants — the account-structure inventory.

The registered path covers the collection read only — single-subscription reads (GET /subscriptions/{subscriptionId}) are not registered by this pack.

azure.resourcegroups.list v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourcegroups?api-version=2021-04-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-client-credentials-token
Data class
internal

List resource groups.

List all resource groups in one subscription: names, locations, provisioning states and tags — the organisational layout of the estate. SUBSCRIPTION_ID is a placeholder the deployment binds to a concrete subscription before enabling.

The registered path covers the collection read only — single-resource-group reads are not registered by this pack.

azure.resources.list v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resources?api-version=2021-04-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-client-credentials-token
Data class
internal

List resources.

List all resources in one subscription: resource ids, names, types, locations, SKUs and tags — the full deployed-estate inventory an audit path starts from. The documented $filter and $expand query options narrow or enrich the same read. SUBSCRIPTION_ID is a placeholder the deployment binds to a concrete subscription before enabling.

The registered path covers the collection read only — single-resource reads are not registered by this pack.

azure.costmanagement.query v1.0.0R0

Kind
tool
Action
read
Endpoint
POST https://management.azure.com/subscriptions/SUBSCRIPTION_ID/providers/Microsoft.CostManagement/query?api-version=2025-03-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-client-credentials-token
Data class
financial

Query cost management.

Query usage and cost data at subscription scope. This POST retrieves data: the request body is a query definition (type such as Usage or ActualCost, timeframe, and a dataset carrying aggregation, granularity, grouping and filter) and the response is columns and rows of cost data — nothing is created or changed at the provider, so the declared action is read at the minimum R0 tier.

This is subscription financial data at the read floor — a lower bound: an R0 financial read can still be a serious confidentiality risk. The read moves no money, so no cost ceiling is declared on the AAES action. The documented scope path segment supports billing-account, resource-group and management-group scopes too; this registration binds subscription scope only. SUBSCRIPTION_ID is a placeholder the deployment binds to a concrete subscription before enabling.

azure.cognitiveservices.deployments.list v1.1.0R0

Kind
tool
Action
read
Endpoint
GET https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/ACCOUNT_NAME/deployments?api-version=2024-10-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-client-credentials-token
Data class
internal

List cognitiveservices deployments.

List the model deployments of one Azure OpenAI or Foundry account (Deployments - List): model name, format and version, SKU and capacity, rate limits, the content filter (raiPolicyName) each deployment uses and its provisioning state.

azure.cognitiveservices.deployment.put v1.1.0R3

Kind
tool
Actions
create, update, pay
Endpoint
PUT https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/ACCOUNT_NAME/deployments/DEPLOYMENT_NAME?api-version=2024-10-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-cognitiveservices-admin-token
Data class
financial

Put cognitiveservices deployment.

Create or update one model deployment (Deployments - Create Or Update): model, SKU and capacity, rate limits and the content filter it uses. Provisioned SKUs are billed hourly for the deployed PTUs whether or not the deployment serves requests, and billing stops only when the deployment is deleted, so the capability declares pay at R3. The SKU and capacity come from the request body. DEPLOYMENT_NAME is a placeholder.

azure.cognitiveservices.deployment.delete v1.1.0R3

Kind
tool
Action
delete
Endpoint
DELETE https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/ACCOUNT_NAME/deployments/DEPLOYMENT_NAME?api-version=2024-10-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-cognitiveservices-admin-token
Data class
internal

Delete cognitiveservices deployment.

Delete one model deployment (Deployments - Delete). Traffic to the deployment name fails afterwards, and provisioned capacity released this way may not be available again. DEPLOYMENT_NAME is a placeholder.

azure.cognitiveservices.raipolicies.list v1.1.0R0

Kind
tool
Action
read
Endpoint
GET https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/ACCOUNT_NAME/raiPolicies?api-version=2024-10-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-client-credentials-token
Data class
internal

List cognitiveservices raipolicies.

List the account's content filters (Rai Policies - List): base policy, mode, and each filter's category, source (prompt or completion), severity threshold and blocking flag, plus custom blocklists.

azure.cognitiveservices.raipolicy.put v1.1.0R2

Kind
tool
Actions
create, update
Endpoint
PUT https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/ACCOUNT_NAME/raiPolicies/RAI_POLICY_NAME?api-version=2024-10-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-cognitiveservices-admin-token
Data class
internal

Put cognitiveservices raipolicy.

Create or update one content filter (Rai Policies - Create Or Update). A change can lower thresholds or switch blocking off for every deployment that uses the filter, so policy should raise this tier for filters on production deployments. RAI_POLICY_NAME is a placeholder.

azure.cognitiveservices.raipolicy.delete v1.1.0R3

Kind
tool
Action
delete
Endpoint
DELETE https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/ACCOUNT_NAME/raiPolicies/RAI_POLICY_NAME?api-version=2024-10-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-cognitiveservices-admin-token
Data class
internal

Delete cognitiveservices raipolicy.

Delete one content filter (Rai Policies - Delete). RAI_POLICY_NAME is a placeholder.

azure.cognitiveservices.key.regenerate v1.1.0R3

Kind
tool
Actions
update, delete, share
Endpoint
POST https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/ACCOUNT_NAME/regenerateKey?api-version=2024-10-01
Connector
http
Custody
customer_vault
Credential ref
secret-ref-azure-cognitiveservices-admin-token
Data class
internal

Regenerate cognitiveservices key.

Rotate one of the account's two access keys (Accounts - Regenerate Key, body keyName Key1 or Key2). The old value of that key stops working, which cannot be undone, and the response returns the current values of both key1 and key2 to the caller. The capability declares delete for the destroyed key and share for the returned key material, at R3. Route the response straight to the secret manager; never let an agent keep it.

Credential reference

The credential field names a reference rather than containing credential material. Packs are designed not to contain secrets; the format checks cover only known credential formats and cannot prove that arbitrary text contains no secrets. Installing a package registers its capabilities. Configure the provider credentials, endpoints, and network access, then test the integration in your environment before enabling it.

Reference
secret-ref-azure-client-credentials-token
Custody
customer_vault
Injection
header (Authorization)

Configure the value and injection format specified in the package. Assign responsibility for credential rotation and revocation, restrict provider permissions, and keep credential material out of logs and responses.

Complete credential requirements

A Microsoft Entra access token for a dedicated least-privilege app registration, held in the client's own secret manager. The stored material must be the complete Authorization header value: the scheme 'Bearer', one separating space, then the token — 'Bearer <token>'. customer_vault is the only generally-supported production custody model here — identity_federation and customer_broker are refused at startup and inline is lab-only. The reviewed token process is the OAuth 2.0 client credentials grant against the v2.0 endpoint: an external deployment process holds the app registration's client id and client secret, POSTs grant_type=client_credentials with scope=https://management.azure.com/.default to https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token, receives an access token (Microsoft documents expires_in, approximately one hour), and writes the complete header value under this reference; there are no refresh tokens in this flow, so renewal is the external process repeating the grant — the executor injects the stored value verbatim and performs no token lifecycle itself.

Revocation is removing the client secret from the app registration or disabling the app: that stops future token issuance (a repeated grant fails closed), but the client credentials flow has no refresh tokens and no documented per-token revocation — an already-minted token remains valid until its expiry (approximately one hour), so treat the token lifetime as the exposure window. A certificate client assertion is the documented stronger alternative to a shared secret and is the deployment's review.

Least privilege: RBAC Reader on the subscription covers the three ARM inventory reads; for the Cost Management query, Microsoft's cost-scope documentation shows subscription Reader already grants read-only access to Cost Analysis, Forecast and the Query API, so plain Reader can suffice — the purpose-built Cost Management Reader role is the tighter alternative, and Enterprise Agreement subscriptions additionally require the 'AO view charges' billing setting to be enabled.

Grant nothing broader.

Executor hygiene: the value must live only in executor memory for the lifetime of a call, must never be written to logs, traces or diagnostics, and must not appear in crash dumps; a deployment that cannot meet that bar must not enable the pack.

Resources

  • azure-subscriptions-collection (api, internal): https://management.azure.com/subscriptions
  • azure-subscription (api, internal): https://management.azure.com/subscriptions/SUBSCRIPTION_ID
  • azure-costmanagement-scope (api, financial): https://management.azure.com/subscriptions/SUBSCRIPTION_ID/providers/Microsoft.CostManagement
  • azure-cognitiveservices-account (api, internal): https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/ACCOUNT_NAME
  • azure-cognitiveservices-deployments (api, financial): https://management.azure.com/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/ACCOUNT_NAME/deployments

Technical package and review record

Complete provider requirements and exclusions

Every endpoint here is on the shared Azure management host management.azure.com, which stays real — it is the documented authority for ARM, not a tenant placeholder. SUBSCRIPTION_ID is a path placeholder the deployment binds to a concrete subscription before enabling; the paths are otherwise the documented ARM shapes with pinned api-version query values, and the review binds those versions — Microsoft documents api-version as required on every one of these operations.

The credential targets login.microsoftonline.com for token minting, which is also a real shared host, but token minting is the external process's call, not a capability: the executor injects the minted value and never calls the token endpoint itself, so no capability allowlists it.

Approval classification: all four capabilities sit at R0, the read floor. The Cost Management query is a POST by HTTP shape but a read by effect — the request body is a query definition (type, timeframe, dataset with aggregation, grouping and filter) and the response is rows of cost data; nothing is created or changed at the provider. It is registered as read with the POST shape stated plainly in the description, the same honesty the GCP pack applies to getIamPolicy.

Cost data is financial at the read floor — a lower bound: an R0 financial read can still be a serious confidentiality risk. The read moves no money, so no cost ceiling is declared on the AAES action; per-request API behaviour at the provider is the deployment's review.

Documented exclusions for the Resource Manager reads: this pack does not register resource group or resource create/update/delete, deployments (Microsoft.Resources/deployments), role assignments or any Microsoft.Authorization write, Microsoft.Billing operations, Cost Management exports (which write query results to storage), or tenant- and management-group-scope variants of the registered lists — subscription scope only, except azure.subscriptions.list, which is the tenant-level subscriptions collection (GET /subscriptions) by design. Every list read here describes the collection read only — single-resource reads and resource-group-scoped resource listing are not registered by this pack.

Azure OpenAI and Foundry administration (added in 1.1.0): seven capabilities on the same ARM host manage one Microsoft.CognitiveServices account through the Azure AI Services account-management API, api-version 2024-10-01: deployments (list, create or update, delete), content filters, which ARM calls raiPolicies (list, create or update, delete), and access-key rotation (regenerateKey). SUBSCRIPTION_ID, RESOURCE_GROUP, ACCOUNT_NAME, DEPLOYMENT_NAME and RAI_POLICY_NAME are path placeholders to bind before enabling. The two list reads use this pack's read-only token. The writes name a separate reference, secret-ref-azure-cognitiveservices-admin-token, minted by the same client-credentials process for a second app registration that holds write rights on that one account only; the Reader registration above never gets them.

Tiers sit at the floor of the declared actions. Creating or updating a deployment declares pay because provisioned SKUs bill hourly per deployed PTU until the deployment is deleted. Key rotation declares delete and share: the old key is destroyed and the response carries both current keys. Changing a content filter is R2 by the action floor, and policy should raise it for production. Every other operation in the account-management API is excluded: the rest of the Accounts group (including listKeys, create, update and delete), Deleted Accounts, Commitment Plans and Tiers, Defender for AI Settings, Encryption Scopes, Models, Model Capacities and their calculation, Network Security Perimeter Configurations, Private Endpoint Connections and Private Link Resources, Rai Blocklists and their items, Rai Content Filters, Resource Skus, Usages, and the availability checks. Single-deployment and single-filter reads are not registered. Azure Reservations purchases and the Foundry data-plane and inference endpoints are outside this API and are not registered.

Download the complete package JSON for exact network allowlists, credential requirements, exclusions, and setup notes. Read these requirements before installation.

The full documentation review record is supplied in the evaluation package. The evaluation package runs in your environment and comes only with the paid design partnership. This page reproduces the source links and review block; the full record is available for evaluation. Discuss a design partnership to inspect it before installation.

Review block

This section reproduces the review block recorded in the pack file. The evidence and approval record is separate: for a reviewed pack, it is in the evaluation materials and in the release binary's embedded assets.

Review completed: 2026-10-22

15 sources, retrieved 2026-09-21, 2026-10-22

Current documentation links are navigation aids. They do not change the package, its historical sources or its review date. Review dates describe a documentation review, not a live integration test. No package is provider-endorsed or yet tested against a live provider tenant.

Release identity

SHA-256 of the pack file bytes: 992d48371fc48eef3c39c02535c635b5401e2c0624613eb46dce505f9edaff9c

Distributable: yes, digest matches the release manifest. Editing a package changes its release identity. A deployment plan checks its own file digests; it does not restore reviewed status or authenticate approval.