azure-basics
Azure cloud services, resource management, and Azure CLI patterns. Use when working with Azure resources, resource groups, ARM templates, az commands (az vm, az network, az storage, az aks), Azure naming conventions, RBAC policies, networking (VNet, NSG, Application Gateway), or implementing Azure best practices for resource organization, cost management, and security.
Install
mkdir -p .claude/skills/azure-basics && curl -L -o skill.zip "https://mcp.directory/api/skills/download/249" && unzip -o skill.zip -d .claude/skills/azure-basics && rm skill.zipInstalls to .claude/skills/azure-basics
About this skill
Azure Basics Skill
Purpose
Provide Azure cloud platform best practices, CLI command patterns, and resource organization strategies for reliable, secure, and cost-effective cloud infrastructure.
Key Capabilities:
- Azure CLI command patterns
- Resource organization and naming
- Networking fundamentals (VNet, NSG, routing)
- RBAC and security
- Cost management
- ARM template patterns
When to Use This Skill
Auto-activates when:
- Working with Azure resources (VMs, storage, databases, AKS)
- Running Azure CLI commands (
azcommands) - Creating ARM templates or Bicep files
- Managing Azure resource groups
- Configuring Azure networking (VNets, subnets, NSGs)
- Implementing Azure RBAC policies
- Optimizing Azure costs
Quick Start
New Azure Project Checklist
- Subscription Setup: Verify subscription access and limits
- Naming Convention: Define resource naming standard
- Resource Groups: Organize by environment/workload
- Networking: Plan IP addressing (VNet, subnets)
- RBAC: Configure least-privilege access
- Tagging Strategy: Define required tags
- Cost Budgets: Set spending alerts
- Monitoring: Enable Azure Monitor and Log Analytics
Resource Deployment Checklist
- Resource Group: Create or select target RG
- Location: Choose Azure region
- SKU Selection: Right-size resources for workload
- Networking: Configure VNet integration
- Security: Apply NSG rules, enable managed identity
- Tags: Apply environment, owner, cost center tags
- Backup: Configure backup policies (if applicable)
- Monitoring: Enable diagnostics and alerts
Core Principles (7 Key Rules)
1. Use Resource Groups for Organization
Resource groups are lifecycle boundaries - group resources by lifecycle.
✅ GOOD - Organized by lifecycle
az group create --name prod-app-rg --location eastus
az group create --name prod-data-rg --location eastus
az group create --name shared-network-rg --location eastus
# App resources in app RG
# Data resources in data RG (longer lifecycle)
# Network resources in network RG (shared)
❌ BAD - All resources in one RG
az group create --name everything-rg --location eastus
# Deleting one resource risks deleting everything
Why: Simplifies resource management, enables batch operations, clear ownership.
2. Follow Azure Naming Conventions
Use consistent, descriptive naming patterns.
✅ GOOD - Consistent naming
# Pattern: {environment}-{workload}-{resource-type}-{region}
prod-webapp-vm-eastus
prod-webapp-storage-eastus
dev-api-aks-westus
❌ BAD - Inconsistent naming
vm1
storage-account-production
my-kubernetes
Recommended Pattern:
{env}-{workload}-{resource-type}[-{instance}]
env: dev, test, stage, prod
workload: webapp, api, data
resource-type: vm, vnet, storage, aks
instance: 01, 02 (for multiple instances)
3. Apply Tags for Cost Management
Tag all resources for cost tracking and organization.
✅ GOOD - Comprehensive tagging
az resource tag \
--resource-group prod-app-rg \
--name prod-webapp-vm \
--resource-type Microsoft.Compute/virtualMachines \
--tags \
Environment=production \
CostCenter=engineering \
Owner=team-platform \
Project=customer-portal
❌ BAD - No tags or inconsistent tags
# No visibility into cost allocation
Required Tags:
- Environment (dev/test/prod)
- CostCenter (billing allocation)
- Owner (team/email)
- Project (initiative/product)
4. Use Managed Identities (No Credentials)
Never store credentials - use Azure managed identities.
✅ GOOD - Managed identity
# Create VM with system-assigned identity
az vm create \
--name prod-webapp-vm \
--resource-group prod-app-rg \
--assign-identity
# Grant access to Key Vault
az keyvault set-policy \
--name prod-keyvault \
--object-id $IDENTITY_ID \
--secret-permissions get list
# Application uses identity (no credentials in code)
❌ BAD - Hardcoded credentials
# Connection strings in app config
# Service principal credentials in environment variables
Why: Eliminates credential rotation, reduces security risk, simplifies access management.
5. Implement Network Security Groups (NSGs)
Control traffic with NSGs - default deny, explicit allow.
✅ GOOD - Explicit NSG rules
az network nsg create --name frontend-nsg --resource-group prod-network-rg
# Allow HTTPS from internet
az network nsg rule create \
--nsg-name frontend-nsg \
--name allow-https \
--priority 100 \
--source-address-prefixes Internet \
--destination-port-ranges 443 \
--access Allow \
--protocol Tcp
# Deny all other inbound
# (Default rule: DenyAllInbound at priority 65500)
❌ BAD - No NSG or overly permissive
az network nsg rule create \
--name allow-all \
--source-address-prefixes '*' \
--destination-port-ranges '*' \
--access Allow
# Security nightmare!
6. Use Azure Regions Strategically
Choose regions based on latency, compliance, cost.
✅ GOOD - Region strategy
# Primary: East US (closest to users)
# Secondary: West US (disaster recovery)
# Data residency: North Europe (GDPR compliance)
az group create --name prod-primary-rg --location eastus
az group create --name prod-dr-rg --location westus
❌ BAD - Random region selection
# No disaster recovery plan
# High latency for users
# Compliance violations
7. Right-Size Resources (Cost Optimization)
Start small, scale up - not reverse.
✅ GOOD - Right-sized VM
az vm create \
--name prod-webapp-vm \
--size Standard_B2s \ # 2 vCPU, 4 GB RAM
--resource-group prod-app-rg
# Monitor, scale up if needed
❌ BAD - Oversized VM
az vm create \
--size Standard_D16s_v3 \ # 16 vCPU, 64 GB RAM
# For workload needing 2 vCPU
# Wasting 87.5% of capacity
Cost Optimization:
- Use Reserved Instances (1-3 year commit = 40-60% discount)
- Auto-shutdown for dev/test VMs
- Use Azure Advisor recommendations
- Right-size based on actual metrics
Common Azure CLI Commands
| Command | Purpose |
|---|---|
az login | Authenticate to Azure |
az account list | List subscriptions |
az account set | Switch subscription |
az group create | Create resource group |
az group delete | Delete resource group |
az resource list | List resources |
az vm create | Create virtual machine |
az network vnet create | Create virtual network |
az storage account create | Create storage account |
az aks create | Create AKS cluster |
Quick Reference
Resource Naming Patterns
| Resource Type | Pattern | Example |
|---|---|---|
| Resource Group | {env}-{workload}-rg | prod-webapp-rg |
| Virtual Machine | {env}-{workload}-vm[-{instance}] | prod-api-vm-01 |
| Storage Account | {env}{workload}storage | prodwebappstorage |
| Virtual Network | {env}-{region}-vnet | prod-eastus-vnet |
| Subnet | {purpose}-subnet | frontend-subnet |
| NSG | {purpose}-nsg | frontend-nsg |
| AKS Cluster | {env}-{workload}-aks | prod-api-aks |
Common Azure Regions
| Region | Location | Use Case |
|---|---|---|
| eastus | East US | General purpose, low cost |
| westus2 | West US 2 | West coast users |
| centralus | Central US | Central location |
| northeurope | North Europe | GDPR compliance |
| westeurope | West Europe | European users |
| southeastasia | Southeast Asia | APAC users |
Anti-Patterns to Avoid
❌ Anti-Pattern 1: Single Resource Group for Everything
Problem: All resources in one RG Issue: Cannot manage lifecycle independently Fix: Separate by environment, workload, or lifecycle
❌ Anti-Pattern 2: No Tagging Strategy
Problem: Resources without tags Issue: Cannot track costs or ownership Fix: Enforce required tags via Azure Policy
❌ Anti-Pattern 3: Overprivileged RBAC
Problem: Everyone has Contributor role Issue: Security risk, accidental deletions Fix: Least-privilege access (Reader, specific roles)
❌ Anti-Pattern 4: No Cost Budgets
Problem: No spending alerts Issue: Surprise bills, cost overruns Fix: Set budgets and alerts in Azure Cost Management
❌ Anti-Pattern 5: Public IP on Everything
Problem: All VMs have public IPs Issue: Increased attack surface Fix: Private networking with VPN/Bastion access
Common Workflows
Workflow 1: Create VNet with Subnets
# 1. Create resource group
az group create --name prod-network-rg --location eastus
# 2. Create VNet
az network vnet create \
--name prod-eastus-vnet \
--resource-group prod-network-rg \
--address-prefix 10.0.0.0/16
# 3. Create frontend subnet
az network vnet subnet create \
--vnet-name prod-eastus-vnet \
--name frontend-subnet \
--resource-group prod-network-rg \
--address-prefix 10.0.1.0/24
# 4. Create backend subnet
az network vnet subnet create \
--vnet-name prod-eastus-vnet \
--name backend-subnet \
--resource-group prod-network-rg \
--address-prefix 10.0.2.0/24
# 5. Create NSG for frontend
az network nsg create \
--name frontend-nsg \
--resource-group prod-network-rg
# 6. Associate NSG with subnet
az network vnet subnet update \
--vnet-name prod-eastus-vnet \
--name frontend-subnet \
--resource-group prod-network-rg \
--network-security-group frontend-nsg
Workflow 2: Deploy VM with Managed Identity
# 1. Create VM with system-assigned identity
az vm create \
--name prod-webapp-vm-01 \
--resource-group prod-app-rg \
--image Ubuntu2204 \
--size Standard_B2s \
--vnet-name prod-eastus-vnet \
--subnet frontend-subnet \
--assign-identity \
--tags Environment=production Owner=platform-team
# 2. Get identity principal ID
IDENTITY_ID=$(az vm identity show \
--name prod-webapp-vm-01 \
--resource-group prod-app-rg \
--query principalId -o tsv)
# 3. Grant access to Key Vault
az keyvault set-policy \
--name prod-keyvault \
--object-id $IDENTITY_ID \
--secret-permissions get list
# 4. Application can now access secrets without credentials
Navigation Guide
| Need to... | Read this |
|---|---|
| Organize Azure resources | resource-groups.md |
| Create ARM templates | arm-templates.md |
| Master Azure CLI | cli-patterns.md |
Resource Files
resource-groups.md
Resource organization strategies, naming conventions, tagging policies, RBAC patterns
arm-templates.md
ARM template structure, parameter patterns, outputs, deployment strategies
cli-patterns.md
Azure CLI automation, scripting patterns, JMESPath queries, output formatting
Related Skills
- terraform-basics - Infrastructure-as-code for Azure provisioning
- task-management - Dependency analysis for Azure resource ordering
Skill Status: COMPLETE ✅ Line Count: 458 ✅ Progressive Disclosure: 3 resource files ✅
You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
rust-coding-skill
UtakataKyosui
Guides Claude in writing idiomatic, efficient, well-structured Rust code using proper data modeling, traits, impl organization, macros, and build-speed best practices.
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.