Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.
日本語の概要は準備中です。原文の説明を表示しています。
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.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
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.
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
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
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)
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)
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)
Create security groups for role assignment:
# 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
Assign group to role at correct scope:
# 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"
Use PIM for elevated access (Owner, Admin):
# 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"}'
Set up access reviews (quarterly):
# Schedule review of all role assignments
# Portal: Azure AD > Identity Governance > Access Reviews
# Review: "Do these developers still need this access?"
Create managed identity:
# System-assigned (tied to one resource)
az webapp identity assign --resource-group $RG --name $APP_NAME
# User-assigned (reusable across resources)
az identity create --resource-group $RG --name $IDENTITY_NAME
Assign minimal roles:
# Get managed identity object ID
PRINCIPAL_ID=$(az identity show --resource-group $RG --name $IDENTITY_NAME --query principalId)
# Grant only Key Vault Secrets User (not full contributor)
az role assignment create \
--role "Key Vault Secrets User" \
--assignee-object-id $PRINCIPAL_ID \
--scope /subscriptions/$SUBID/resourceGroups/$RG/providers/Microsoft.KeyVault/vaults/$KV
Use access from app (no credentials needed):
// .NET example: Managed identity token obtained automatically
var credential = new DefaultAzureCredential();
var kvClient = new SecretClient(new Uri("https://$KV.vault.azure.net"), credential);
var secret = await kvClient.GetSecretAsync("MySecret");
Create only if no built-in role fits:
{
"Name": "Application Configuration Reader",
"Description": "Read app config but cannot create/delete",
"Actions": [
"Microsoft.AppConfiguration/configurationStores/read",
"Microsoft.AppConfiguration/configurationStores/keyValues/read"
],
"NotActions": [],
"DataActions": [],
"AssignableScopes": [
"/subscriptions/SUBID"
]
}
Apply custom role:
az role definition create --role-definition @custom-role.json
List all role assignments:
# All assignments in subscription
az role assignment list --all --output table
# Flag: Owner roles that should be PIM-eligible
az role assignment list --all --query "[?roleDefinitionName=='Owner']"
Find overpermissioned identities:
# Identities with Contributor (too broad)
az role assignment list --all --query "[?roleDefinitionName=='Contributor']"
# Action: Replace with scoped, specific roles
Set up recurring access review:
Access Model Design
Role Mapping
Implementation Plan
Governance & Audit
Migration Path (if consolidating old assignments)
Workload: ASP.NET app reads secrets from Key Vault, writes logs to Storage
1. Create system-assigned managed identity on App Service
2. Assign roles:
- Key Vault Secrets User (scope: Key Vault)
- Storage Blob Data Contributor (scope: logs container)
3. In code: new DefaultAzureCredential() fetches token automatically
4. No credentials in config
Team: 5 developers need temporary admin access for troubleshooting
1. Create "contoso-admins" security group, add developers
2. Make group PIM-eligible for Owner role (approval required)
3. Developer clicks "Activate Role" in portal
4. Admin gets email to approve
5. 4-hour access granted, auto-revokes after
6. Audit trail in Activity Log
Pattern: Microservice A calls Microservice B in AKS
1. Create user-assigned managed identity "service-a-identity"
2. AKS pod runs with this identity (via workload identity)
3. Service B checks incoming token for identity
4. No secrets, credentials, or connection strings needed
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.
日本語の概要は準備中です。原文の説明を表示しています。
Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.
日本語の概要は準備中です。原文の説明を表示しています。
Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.
日本語の概要は準備中です。原文の説明を表示しています。
Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.
日本語の概要は準備中です。原文の説明を表示しています。
Automate Abuselpdb tasks via Rube MCP (Composio). Always search tools first for current schemas.
日本語の概要は準備中です。原文の説明を表示しています。
Automate Abyssale tasks via Rube MCP (Composio). Always search tools first for current schemas.
日本語の概要は準備中です。原文の説明を表示しています。