Skip to content
Agentmart
Submit a tool

azure-rbac

Design and apply Azure role-based access control with least privilege at the right scope.

Skill by manu14357

IndexedMIT★ 16
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/manu14357-azure-rbac

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Design and apply Azure role-based access control with least privilege at the right scope. Use this skill when users ask about permissions, role assignments, access errors, or governance. Covers built-in roles, custom roles, managed identities, PIM, and access reviews per Well-Architected principles.

Use cases: design, cloud

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/azure-rbac

What's inside

Skill name
azure-rbac
Description
Design and apply Azure role-based access control with least privilege at the right scope. Use this skill when users ask about permissions, role assignments, access errors, or governance. Covers built-in roles, custom roles, managed identities, PIM, and access reviews per Well-Architected principles.
License
MIT
Instructions
280 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • compatibility: must be text of at most 500 characters

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Azure RBAC

Grant the minimum required access at management group, subscription, resource group, or resource scope.
Build scalable, auditable identity infrastructure using groups, managed identities, and Privileged Identity Management.

## Use This Skill When

- The user needs role assignment design or access error diagnosis
- The user wants to secure team access or workload permissions
- The user needs compliance-ready access governance (audit trail, reviews)
- The user wants to migrate from per-user to group-based RBAC

## Context: RBAC Maturity

**Immature**: Ad hoc assignments, direct user permissions, no audit trail  
**Developing**: Some group-based access, manual reviews, audit logs exist  
**Managed**: Group-based RBAC, scoped assignments, automated access reviews, PIM for elevation → **Target**  
**Optimized**: Zero Trust with managed identities, ephemeral access, real-time risk-based access decisions

## Required Inputs

- **Principals**: Users, groups, service principals, managed identities
- **Required actions**: Specific operations (create, delete, read, write)
- **Resource scope**: Subscription, resource group, or individual resource
- **Compliance needs**: Audit trail required? Access reviews? Time-bound access?
- **Escalation model**: Who approves elevated access? How long is it valid?

## Decision Tree

```
Is this human access (person) or workload identity (application)?
├─ Human:
│  ├─ Is this just viewing resources? → Reader role
│  ├─ Is this deploying/configuring? → Contributor role (at resource group scope)
│  ├─ Is this infrastructure admin work? → PIM-eligible Owner (with approval)
│  └─ Is this on a single resource? → Role-scoped to that resource
└─ Workload:
   ├─ Is this a new app? → Create user-assigned managed identity, assign narrow role
   ├─ Needs secret access? → Key Vault Secrets User role
   ├─ Needs storage access? → Storage Blob Data Contributor (scoped)
   └─ Needs database? → SQL DB Contributor (scoped)

Should this access be permanent or temporary?
├─ Permanent → Standard role assignment (group-based for humans)
└─ Temporary/Elevated → PIM-eligible role (approval workflow, 4-hour max)

How many users need this access?
├─ 1-2 people → Consider if per-user assignment is necessary
├─ 3+ people → MUST use security group assignment
└─ 10+ people → Automate group membership from identity provider
```

## Workflow

### Phase 1: Map Workload to Required Roles

1. **Identify actions needed**:
   ```
   Workload: Web App
   ├─ Needs: Read secrets from Key Vault
   ├─ Needs: Write logs to Storage Account
   ├─ Needs: Query SQL Database
   ├─ Needs: Read configuration from App Configuration
   └─ Needs: Call downstream API (no Azure role, only app auth)
   ```

2. **Match to built-in roles** (prefer over custom):
   ```
   - Key Vault Secrets User (for secret read)
   - Storage Blob Data Contributor (for write to blob)
   - SQL DB Contributor (for database access)
   - App Configuration Data Reader (for config)
   ```

3. **Prefer built-in roles** unless none match exactly:
   ```
   ✓ Use: "Key Vault Secrets User" (specific, audited)
   ✓ Use: "Storage Blob Data Contributor" (Microsoft-maintained)
   ✗ Avoid: Custom role with Microsoft.Storage/*
   ✗ Avoid: Contributor role (too broad)
   ```

### Phase 2: Human Access (Groups & PIM)

1. **Create security groups** for role assignment:
   ```bash
   # Azure AD group for developers
   az ad group create --display-name "contoso-app-developers" --mail-nickname "app-devs"
   
   # Add users to group
   az ad group member add --group app-devs --member-id $USER_ID
   ```

2. **Assign group to role at correct scope**:
   ```bash
   # Resource group scope (can deploy resources in group)
   az role assignment create \
     --role "Contributor" \
     --assignee-object-id $GROUP_ID \
     --scope "/subscriptions/$SUBID/resourceGroups/$RG"
   
   # Single resource scope (can configure only this resource)
   az role assignment create \
     --role "Key Vault Secrets User" \
     --assignee-object-id $GROUP_ID \
     --scope "/subscriptions/$SUBID/resourceGroups/$RG/providers/Microsoft.KeyVault/vaults/$KV"
   ```

3. **Use PIM for elevated access** (Owner, Admin):
   ```bash
   # Make group eligible for Owner role (requires approval to activate)
   az rest --method post --uri "https://graph.microsoft.com/v1.0/privilegedIdentityManagement/roleAssignments" \
     --body '{"roleDefinitionId":"'$OWNER_ROLE_ID'","principalId":"'$GROUP_ID'","resourceId":"'$SCOPE'","type":"eligible"}'
   ```

4. **Set up access reviews** (quarterly):
   ```bash
   # Schedule review of all role assignments
   # Portal: Azure AD > Identity Governance > Access Reviews

From manu14357/zskills, MIT.

More from manu14357/zskills

Signals

Stars
16
Forks
2
Open issues
0
Last commit (this folder)
Apr 24, 2026 (6 months ago)
Last release
Apr 26, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from manu14357

Cite this page

azure-rbac skill. Agent Mart. https://agentmart.dev/skills/manu14357-azure-rbac (last updated 2026-10-24)