Loading...
Loading...
Comprehensive Azure administration capabilities covering identity management, resource orchestration, CLI tooling, and DevOps automation. Auto-activates for Azure, az cli, azd, Entra ID, RBAC, and infrastructure tasks.
npx skill4agent add rysweet/amplihack azure-admin| Task | Primary Tool | Secondary Tools | Skill Doc Reference |
|---|---|---|---|
| Create user account | az cli | Entra ID Portal | @docs/user-management.md |
| Assign RBAC role | az cli | Azure Portal | @docs/role-assignments.md |
| Deploy resource group | az cli, Bicep | ARM templates | @docs/resource-management.md |
| Setup service principal | az cli | Portal | @docs/user-management.md#service-principals |
| Enable managed identity | az cli | Portal | @docs/user-management.md#managed-identities |
| Create resource | az cli, azd | Portal, Terraform | @docs/resource-management.md |
| Query resources | az cli --query | JMESPath | @docs/cli-patterns.md#querying |
| Bulk user operations | az cli + bash | PowerShell | @examples/bulk-user-onboarding.md |
| Environment provisioning | azd | az cli, Bicep | @examples/environment-setup.md |
| Audit role assignments | az cli | Azure Policy | @examples/role-audit.md |
| Cost analysis | az cli, Portal | Cost Management API | @docs/cost-optimization.md |
| MCP integration | Azure MCP | az cli | @docs/mcp-integration.md |
| CI/CD pipeline | Azure DevOps | GitHub Actions | @docs/devops-automation.md |
# Identity operations
az ad user create --display-name "Jane Doe" --user-principal-name jane@domain.com
az ad sp create-for-rbac --name myServicePrincipal --role Contributor
# Resource operations
az group create --name myResourceGroup --location eastus
az deployment group create --resource-group myRG --template-file main.bicep
# RBAC operations
az role assignment create --assignee user@domain.com --role Reader --scope /subscriptions/xxx
az role assignment list --assignee user@domain.com --all
# Query patterns
az vm list --query "[?powerState=='VM running'].{Name:name, RG:resourceGroup}"
az resource list --resource-type "Microsoft.Compute/virtualMachines" --query "[].{name:name, location:location}"
# Cost management
az consumption usage list --start-date 2025-01-01 --end-date 2025-01-31
az costmanagement query --type ActualCost --dataset-aggregation name=Cost,function=Sum
# Azure Developer CLI (azd)
azd init --template todo-nodejs-mongo
azd up # provision + deploy
azd env list
azd down# Create user
az ad user create --display-name "Jane Doe" --user-principal-name jane@contoso.com --password "SecureP@ssw0rd!"
# Create group and add member
az ad group create --display-name "Engineering Team" --mail-nickname "engineering"
az ad group member add --group "Engineering Team" --member-id $(az ad user show --id jane@contoso.com --query id -o tsv)
# Create service principal
az ad sp create-for-rbac --name "myAppSP" --role Contributor --scopes /subscriptions/{sub-id}
# Enable managed identity
az vm identity assign --name myVM --resource-group myRG
# Assign RBAC role
az role assignment create --assignee jane@contoso.com --role Reader --scope /subscriptions/{sub-id}# Create resource group with tags
az group create --name myResourceGroup --location eastus
az group update --name myResourceGroup --tags Environment=Production CostCenter=IT
# Deploy Bicep template with validation
az deployment group validate --resource-group myRG --template-file main.bicep
az deployment group create --resource-group myRG --template-file main.bicep --parameters vmName=myVM
# Lock resource group to prevent deletion
az lock create --name DontDelete --resource-group myResourceGroup --lock-type CanNotDelete
# Query resources by tag
az resource list --tag Environment=Production --query "[].{Name:name, Type:type}"Management Groups (optional)
└── Subscriptions (billing boundary)
└── Resource Groups (logical container)
└── Resources (VMs, databases, storage, etc.)# Azure CLI authentication
az login
az account set --subscription "My Subscription Name"
az account show
# JMESPath query patterns
az vm list --query "[?powerState=='VM running'].{Name:name, RG:resourceGroup}"
az resource list --query "[?contains(name, 'prod')]"
az vm list --query "sort_by([],&name)[0:5]" # Top 5 by name
# Azure Developer CLI (azd)
azd init --template todo-nodejs-mongo
azd up # provision + deploy in one command
azd env new development
azd monitor --logs
azd down # cleanup[?condition][].{Name:name}sort_by([],&field)contains(name, 'str')Install-Module -Name AzConnect-AzAccountGet-AzVMnpm install -g @modelcontextprotocol/server-azure~/.config/claude-code/mcp.json{
"mcpServers": {
"azure": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-azure"],
"env": {
"AZURE_SUBSCRIPTION_ID": "your-subscription-id"
}
}
}
}azure_list_resourcesazure_get_resourceazure_list_usersazure_list_role_assignmentsazure_queryazure_cli{
"tool": "azure_list_resources",
"parameters": {
"resourceType": "Microsoft.Compute/virtualMachines",
"filter": "powerState eq 'VM running'"
}
}trigger:
- main
pool:
vmImage: "ubuntu-latest"
variables:
azureSubscription: "myServiceConnection"
stages:
- stage: Deploy
jobs:
- deployment: DeployInfra
environment: production
strategy:
runOnce:
deploy:
steps:
- task: AzureResourceManagerTemplateDeployment@3
inputs:
azureResourceManagerConnection: $(azureSubscription)
resourceGroupName: myRG
templateLocation: Linked artifact
csmFile: main.bicepname: Deploy to Azure
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Azure Login
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Deploy Bicep
uses: azure/arm-deploy@v1
with:
resourceGroupName: myRG
template: ./infra/main.bicep# View current month costs by resource group
az costmanagement query \
--type ActualCost \
--dataset-aggregation name=Cost,function=Sum \
--dataset-grouping name=ResourceGroup,type=Dimension \
--timeframe MonthToDate
# Get consumption usage details
az consumption usage list \
--start-date 2025-01-01 \
--end-date 2025-01-31 \
--query "[].{Date:usageStart, Service:meterName, Cost:pretaxCost}"
# Assign policy to enforce tagging
az policy assignment create \
--name "require-tag-environment" \
--policy "require-tag-on-resources" \
--params '{"tagName":{"value":"Environment"}}' \
--resource-group myRG
# Check VM quota usage
az vm list-usage --location eastus --output tableaz logout && az login --use-device-code
az account show # Verify tenant and subscriptionaz role assignment list --assignee {user-or-sp}az provider list --query "[?registrationState=='NotRegistered']"az account showaz group exists --name {rg-name}az resource list --name {resource-name}az vm list-usage --location eastus --output table
# Request quota increase through Azure Portal or support ticketaz upgraderm -rf ~/.azure/az extension list-available