This skill should be used when the user asks about "Key Vault", "Azure secrets", "certificates", "managed identity", "RBAC", "Azure permissions", "service principal", "Azure security", or mentions Azure security and identity services. Provides best practices and MCP tool guidance for Azure security services.
/plugin marketplace add charris-msft/azure-plugin/plugin install charris-msft-azure-mcp@charris-msft/azure-pluginThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Azure provides comprehensive security services for identity, secrets management, and access control. This skill covers Key Vault, Managed Identities, and RBAC (Role-Based Access Control).
MCP Tools Available: When the Azure MCP server is enabled, use these tools:
azure_keyvault_list - List Key Vaultsazure_keyvault_secret_list - List secrets in a vaultazure_keyvault_secret_get - Get secret valueazure_keyvault_key_list - List keys in a vaultazure_keyvault_certificate_list - List certificatesazure_rbac_role_assignment_list - List role assignmentsazure_rbac_role_definition_list - List role definitionsIf Azure MCP is not enabled: Prompt the user to enable it via /mcp or run /azure:setup.
Key Vault provides secure storage for:
| SKU | Use Case | HSM Backed |
|---|---|---|
| Standard | General purpose | Software |
| Premium | High security | Hardware HSM |
Use Premium for:
Vault naming: kv-{app}-{env}-{region}
Example: kv-contoso-prod-eastus
Organization strategies:
Access Policies (Legacy):
RBAC (Recommended):
Enable RBAC permission model:
Set "Permission model" to "Azure role-based access control"
Enable soft delete and purge protection
Use private endpoints
Enable logging
Rotate secrets regularly
Backup critical secrets
Application configuration:
Store in Key Vault:
- Database connection strings
- API keys for external services
- Encryption keys
- Certificate private keys
Reference via:
- Managed identity (preferred)
- Key Vault references in App Service
- SDK with DefaultAzureCredential
Secret rotation:
| Type | Use Case | Lifecycle |
|---|---|---|
| System-assigned | Single resource | Tied to resource |
| User-assigned | Multiple resources | Independent |
System-assigned:
User-assigned:
Most Azure PaaS services support managed identity:
Use managed identity over service principals
Apply least privilege
Use DefaultAzureCredential in code
Access Key Vault:
Access Storage:
| Role | Permissions | Common Use |
|---|---|---|
| Owner | Full access + assign roles | Admins |
| Contributor | Full access, no role assignment | Developers |
| Reader | Read-only | Auditors |
| User Access Administrator | Manage role assignments | Security |
Key Vault:
Storage:
Create custom roles when built-in roles don't fit:
{
"Name": "Custom Role Name",
"Description": "Description of permissions",
"Actions": [
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/blobServices/containers/read"
],
"NotActions": [],
"DataActions": [
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
],
"AssignableScopes": [
"/subscriptions/{subscription-id}"
]
}
1. List vaults with azure_keyvault_list
2. List secrets with azure_keyvault_secret_list
3. Get secret value with azure_keyvault_secret_get
4. List keys with azure_keyvault_key_list
5. List certificates with azure_keyvault_certificate_list
1. List role assignments with azure_rbac_role_assignment_list
2. Filter by principal or scope
3. Review role definitions with azure_rbac_role_definition_list
Access denied to Key Vault:
Managed identity not working:
| Operation | MCP Tool | Description |
|---|---|---|
| List Key Vaults | azure_keyvault_list | Get all vaults |
| List secrets | azure_keyvault_secret_list | Get secrets in vault |
| Get secret | azure_keyvault_secret_get | Get secret value |
| List keys | azure_keyvault_key_list | Get keys in vault |
| List certificates | azure_keyvault_certificate_list | Get certificates |
| List role assignments | azure_rbac_role_assignment_list | Get RBAC assignments |
| List role definitions | azure_rbac_role_definition_list | Get role definitions |
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.