azure-live-entra-role-assignment-guard
Guard live permanent Microsoft Entra ID and Azure RBAC role assignments with scope audit, principal-type risk classification, dangerous-role detection, and explicit approval gates before write. Use only when a direct (non-PIM) role assignment is intentionally requested against a
Install
npx skills add https://github.com/VincentChuWaiChow/vanguard-frontier-agentic/tree/master/skills/azure/azure-live-entra-role-assignment-guard
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install vincentchuwaichow-vanguard-frontier-agentic@llmmart
git clone https://github.com/VincentChuWaiChow/vanguard-frontier-agentic.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole vincentchuwaichow/vanguard-frontier-agentic collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Azure Live Entra Role Assignment Guard
Purpose
Act as the guarded live Azure operator for azure-live-entra-role-assignment-guard work. Permanent role assignments have no built-in expiry, no automatic rollback, and are tenant-visible immediately. Treat every assignment as a bounded approval-gated operation with preflight identity confirmation.
When to use
Use this skill when:
- a direct (non-PIM) Entra ID or Azure RBAC role assignment must be created against a confirmed principal and scope
- an existing assignment must be removed and the downstream access impact must be assessed before deletion
- a role assignment audit finds over-broad, stale, or guest assignments that must be remediated with least-privilege alternatives
Lean operating rules
- Prefer Microsoft Learn documentation through the user's configured documentation MCP; use sampled read-only Azure evidence when available, then sanitized user evidence.
- Do not create or delete any role assignment until subscription or tenant, active principal, target scope, role, and assignee identity are all explicit.
- Prefer read-only inspection (
az role assignment list,az ad user show) before any write. - Flag the following as high-severity and require explicit justification with business case before proceeding:
- Owner, Contributor, or User Access Administrator at subscription or management-group scope
- Any role assignment to a Guest principal (external account, highest breach risk)
- Any Entra ID directory role (Global Administrator, Privileged Role Administrator, Application Administrator)
- Permanent assignments where PIM eligible assignment would satisfy the requirement
- If the request skips scope confirmation, assignee type verification, or rollback awareness, push back.
- Never print access tokens, client secrets, tenant IDs, Object IDs without context, or raw environment dumps. Summarize sanitized evidence only.
- Load references only when needed.
References
Load these only when needed:
- Azure Entra and RBAC Role Assignment Operations — use for current service behavior, common failure modes, hard design rules, verification targets, and push-back conditions.
- Preflight commands — CLI commands to run before any mutation.
- Rollback playbook — concrete rollback steps for this service.
- Permission model — RBAC role definitions and PIM guidance.
- MCP and evidence path — use when choosing documentation-based evidence, sampled read-only evidence, or sanitized user evidence.
- Safety checklist — use for evidence labels, permanent assignment blast radius, PIM eligibility, guest/service-principal risk, propagation delay, and rollback limits.
- Workflow and output contract — execution flow and final response contract.
- Official sources — authoritative Azure documentation links.
Response minimum
Return, at minimum:
- confirmed tenant, subscription (if applicable), target scope, and active caller identity
- preflight evidence: existing assignments on the target scope and current assignee roles
- principal-type risk classification (member user / guest / service principal / managed identity / group)
- role risk classification (Owner / Contributor / UAA / custom / narrow built-in)
- approval status and explicit justification for the assignment
- rollback posture: the exact
az role assignment deletecommand to undo - post-assignment verification steps or refusal reason
Files (vanguard-frontier-agentic)
-
references
-
mcp-and-evidence.md 1.4 KB
# Documentation and Evidence Path ## Preferred evidence order 1. Microsoft Learn documentation through the user's configured documentation MCP for documented Azure behavior. 2. Sampled read-only Azure evidence, when safely available, for current configured-environment observations. 3. Sanitized user-provided evidence. 4. Clearly labeled inference. ## What each evidence type can prove - Microsoft Learn documentation can prove documented service behavior, supported concepts, limitations, and recommended patterns. - Sampled read-only evidence can prove the sampled configured state at the time observed. - Sanitized user evidence can prove only what the snippet shows. - None of these alone prove broad regional availability, future success, full account posture, or production readiness. ## Safe usage pattern - State whether each claim is documentation-based, sampled-current-state, user-provided, or inference. - Use read-only queries before recommending changes. - Do not include sensitive internal identifiers, tenant identifiers, subscription identifiers, or secrets in committed docs or final findings. - If no sampled evidence is available, say the review is documentation-based and list the exact evidence still needed. ## Live-operation rule For live operations, documentation is never enough. Require target confirmation, current-state evidence, explicit approval, rollback constraints, and post-action verification. -
official-sources.md 2.8 KB
# Official Sources Use these sources to ground the skill. Microsoft Learn documentation proves documented Azure behavior; it does not prove the user's tenant, subscription, RBAC, quota, deployed resources, current cost, vault state, app health, or production readiness. ## Primary Microsoft Learn sources - https://learn.microsoft.com/azure/role-based-access-control/overview - https://learn.microsoft.com/azure/role-based-access-control/best-practices - https://learn.microsoft.com/azure/role-based-access-control/role-assignments-steps - https://learn.microsoft.com/azure/role-based-access-control/role-assignments-alert - https://learn.microsoft.com/azure/role-based-access-control/troubleshooting#azure-role-assignments - https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-deployment-plan ## Grounding notes - Documentation-based claim: Microsoft Learn evidence says Azure RBAC grants who can access Azure resources, what they can do, and where. Best practices require least privilege, narrow scope, limiting privileged administrator roles, assigning to groups where manageable, and using PIM for just-in-time access. Privileged role assignments such as Owner, Contributor, and User Access Administrator are powerful and can be monitored with alerts; role assignment changes can take time to propagate. - Current-state claim: requires sampled read-only Azure evidence or sanitized user-provided evidence. - Live-operation claim: requires target, principal, approval, preflight evidence, rollback constraints, and post-action verification. - Inference: allowed only when labeled and tied to observed fields or documented behavior. - Do not include sensitive internal identifiers or secret material in findings. ## Source use rules - Prefer Microsoft Learn documentation through the user's configured documentation MCP for current Azure service behavior. - Use sampled read-only Azure evidence only to validate current configured-environment observations. - If documentation and sampled evidence appear to conflict, report both and stop short of a production-ready verdict. - Re-check official sources before changing high-risk guidance, because cloud behavior and feature availability can change. ## Current Microsoft Learn deltas checked on 2026-06-05 - Azure RBAC and Microsoft Entra directory roles are different assignment systems with different scopes and tooling. - Eligible, time-bound PIM assignment for Azure RBAC is not equivalent for users, service principals, applications, and managed identities; verify supported principal type before recommending PIM as the answer. - Built-in Microsoft Entra roles assigned to guests can grant the same role permissions as member users; do not downplay guest-admin blast radius. - Administrative-unit-scoped assignments can still need tenant-scope read permissions for some principal types to function. -
permission-model.md 3.9 KB
# Permission Model: Azure Live Entra Role Assignment Guard ## Evidence-variable convention Shell variables in examples are local operator placeholders from an approved change record or already configured shell context. Do not commit real values, and redact them from shared evidence unless disclosure is explicitly approved. ## Risk classification by role | Role | Risk | Reason | |---|---|---| | Owner | Critical | Full resource control + can reassign access | | User Access Administrator | Critical | Can assign any role to any principal at scope | | Contributor | High | Full resource read/write, no access management | | Global Administrator | Critical | Tenant-wide Entra ID control, bypasses RBAC | | Privileged Role Administrator | Critical | Can assign Entra directory roles including Global Admin | | Application Administrator | High | Can create service principals and grant Graph API permissions | | Custom roles with `*/write` | High | Broad mutation rights — review assignable scopes | | Reader | Low | Read-only — acceptable for most principals | | Narrow built-in roles | Low | e.g. Storage Blob Data Reader, Key Vault Secrets User | ## Risk classification by scope | Scope | Risk | |---|---| | Management group | Critical — affects all child subscriptions and resource groups | | Subscription | High — affects all resources in the subscription | | Resource group | Medium — contained to group members | | Individual resource | Low — minimal blast radius | ## Risk classification by principal type | Principal type | Risk | Notes | |---|---|---| | Guest user (`userType: Guest`) | Critical | External identity, not governed by corporate IdP; highest breach risk | | Member user | Medium | Internal — verify employment status and team ownership | | Service principal (application) | High | Non-human identity; verify application ownership and client secret rotation policy | | Managed identity (system-assigned) | Low-Medium | Scoped to a resource lifecycle; verify the resource owner | | Managed identity (user-assigned) | Medium | Shared across resources; verify all attached resources | | Group | Medium | Verify group membership is actively governed; avoid open groups | ## Least-privilege guidance 1. **Prefer PIM eligible assignments over permanent.** If the role is needed periodically, PIM with time-bounded activation + MFA + justification is always the correct approach. 2. **Prefer narrow built-in roles over Contributor/Owner.** Azure has 200+ built-in roles; check whether a service-specific role (e.g. `Monitoring Contributor`, `Key Vault Secrets Officer`) satisfies the requirement. 3. **Prefer resource-group scope over subscription scope.** Subscription scope is justified only for infrastructure, platform, or governance roles. 4. **Prefer group-based assignment over direct user assignment.** Groups enable consistent access reviews and offboarding. ## Minimum caller permissions for role assignment operations ```json { "Name": "Role Assignment Operator (Guarded)", "IsCustom": true, "Description": "Read role assignments and create new ones at resource-group or lower scope only.", "Actions": [ "Microsoft.Authorization/roleAssignments/read", "Microsoft.Authorization/roleAssignments/write", "Microsoft.Authorization/roleAssignments/delete", "Microsoft.Authorization/roleDefinitions/read" ], "AssignableScopes": [ "$APPROVED_AZURE_SCOPE" ] } ``` Restrict `AssignableScopes` to resource-group scope for operators who should not assign at subscription level. ## Dangerous combinations — always block - Owner at management-group scope assigned to a Guest principal - User Access Administrator at subscription scope (allows re-elevating to Owner) - Any Entra directory role (Global Admin, Privileged Role Admin) assigned outside of PIM - Service principal with Owner and no owner/contact defined in application registration Use exact resource scopes from approved change records; do not paste raw subscription identifiers into chat. -
preflight-commands.md 2.6 KB
# Preflight Commands: Azure Live Entra Role Assignment Guard Run all of these before creating or deleting any role assignment. ## 1. Confirm caller identity and active subscription ```bash az account show --query "{subscription:id, name:name, tenantId:tenantId, caller:user.name}" az ad signed-in-user show --query "{displayName:displayName, id:id, userPrincipalName:userPrincipalName}" ``` ## 2. Inspect existing role assignments on the target scope ```bash # Subscription scope az role assignment list \ --scope "$APPROVED_AZURE_SCOPE" \ --include-inherited \ --query "[].{role:roleDefinitionName, principal:principalName, principalType:principalType, scope:scope}" # Management group scope az role assignment list \ --scope "$APPROVED_MANAGEMENT_GROUP_SCOPE" \ --include-inherited \ --query "[].{role:roleDefinitionName, principal:principalName, principalType:principalType, scope:scope}" # Resource group scope az role assignment list \ --resource-group $AZURE_RESOURCE_GROUP_NAME \ --include-inherited \ --query "[].{role:roleDefinitionName, principal:principalName, principalType:principalType, scope:scope}" ``` ## 3. Verify the assignee identity and principal type ```bash # For a user az ad user show --id $ASSIGNEE_LOOKUP_VALUE \ --query "{displayName:displayName, userPrincipalName:userPrincipalName, userType:userType, accountEnabled:accountEnabled}" # userType: "Guest" = external account, elevated risk. Always flag. # For a service principal az ad sp show --id $SERVICE_PRINCIPAL_LOOKUP_VALUE \ --query "{displayName:displayName, appId:appId, servicePrincipalType:servicePrincipalType}" # For a managed identity az identity show --name $MANAGED_IDENTITY_NAME --resource-group $AZURE_RESOURCE_GROUP_NAME \ --query "{name:name, principalId:principalId, tenantId:tenantId}" ``` ## 4. Check for existing dangerous standing assignments (audit) ```bash # Find Owner and UAA at subscription scope (Kusto alternative via activity log) az role assignment list \ --scope "$APPROVED_AZURE_SCOPE" \ --query "[?roleDefinitionName=='Owner' || roleDefinitionName=='User Access Administrator'].{role:roleDefinitionName, principal:principalName, principalType:principalType}" ``` ## 5. Check whether a PIM eligible assignment already exists (prefer PIM over permanent) ```bash az role eligibility-schedule list \ --scope "$APPROVED_AZURE_SCOPE" \ --query "[?principalId=='$ASSIGNEE_OBJECT_ID'].{role:roleDefinitionDisplayName, endDateTime:endDateTime, status:status}" ``` If an eligible assignment already exists, the correct action is PIM activation, not a new permanent assignment. -
role-assignment-operations.md 4.3 KB
# Azure Entra and RBAC Role Assignment Operations Use this reference for current, source-grounded service behavior and the hard live-operation gates that the lean `SKILL.md` intentionally does not carry. ## What people get wrong - Assigning Owner because Contributor failed without diagnosing the missing permission. - Granting broad subscription or management-group scope when resource-group or resource scope is enough. - Creating permanent assignment when PIM eligible access satisfies the need. - Skipping principal-type checks for guests, service principals, and groups. - Assuming deletion instantly revokes every cached token. ## Officially grounded service shape Microsoft Learn evidence says Azure RBAC grants who can access Azure resources, what they can do, and where. Best practices require least privilege, narrow scope, limiting privileged administrator roles, assigning to groups where manageable, and using PIM for just-in-time access. Privileged role assignments such as Owner, Contributor, and User Access Administrator are powerful and can be monitored with alerts; role assignment changes can take time to propagate. - Azure RBAC assignment combines principal, role definition, and scope. - Privileged administrator roles create broad blast radius and should be minimized. - PIM can provide time-bound access for Azure resource roles. - Alerts can detect privileged role assignment events at subscription scope. - Propagation and token caching mean assignment or deletion may not be immediately observed. ## Non-negotiable design rules - Confirm tenant, subscription, management group/resource scope, principal, role, and active caller before write. - Prefer built-in job-function roles and narrow scopes before privileged administrator roles. - Require PIM alternative analysis for privileged or temporary need. - Classify principal type and external/guest risk before approval. - Provide rollback delete command but state propagation caveats. ## Minimal safe implementation flow - Scope requested role assignment or deletion and business justification. - Collect read-only evidence: principal details, existing assignments, target scope, role definition, and PIM eligibility. - Classify risk by role power, scope breadth, principal type, duration, and blast radius. - Gate mutation on explicit approval and rollback plan. - Verify assignment or deletion, alerts/audit trail, and expected propagation window. ## High-risk assumptions to kill - A role assignment request is not safe because the requester knows the principal name; principal type, ownership, guest status, and stale service-principal risk still matter. - Owner, Contributor, User Access Administrator, Privileged Role Administrator, and Global Administrator are not troubleshooting shortcuts. - Permanent access is not the default for temporary work; PIM eligibility and activation evidence must be considered first for privileged roles. - Removing a role assignment does not prove immediate revocation everywhere because token caching and propagation can delay observable effects. - Group-based assignments can hide blast radius unless membership, role-assignable status, and approval process are reviewed. ## Safe command/code verification targets - Resolve principal, role definition, assignment scope, inherited assignments, and existing eligible/active PIM state before any write. - Compare requested role permissions with least-privilege built-in alternatives and narrower scopes. - Check whether the request creates standing privileged access, guest/external access, or broad group blast radius. - Verify audit log or assignment evidence after change, while labeling propagation and token-cache caveats. - Prepare a rollback deletion command and monitoring query before creating privileged access. ## Safe verification targets - Role is the least privileged role that meets the task. - Scope is the narrowest practical scope. - Principal type and owner are known and not an unapproved guest or stale service principal. - PIM eligible assignment was considered for privileged or temporary access. - Privileged assignment monitoring or audit evidence exists. ## When to push back - The assignee identity or scope is ambiguous. - The request wants permanent privileged access for convenience. - Guest or broad group assignment lacks documented exception. - The user demands immediate revocation proof despite propagation limitations. -
rollback-playbook.md 2.5 KB
# Rollback Playbook: Azure Live Entra Role Assignment Guard Permanent role assignments do not expire automatically. Rollback means explicit deletion. Always capture the assignment details before write so deletion is unambiguous. ## Evidence-variable convention Variables such as $APPROVED_AZURE_SCOPE, $ASSIGNEE_LOOKUP_VALUE, $ROLE_DEFINITION_NAME, $KEY_VAULT_NAME, and $KEY_VAULT_KEY_NAME are local operator placeholders. Do not commit real values, and redact them from shared evidence unless the change record explicitly allows disclosure. ## Before any assignment write — capture the full assignment for rollback ```bash # Save the exact object ID, role definition ID, and scope az role assignment list \ --assignee $ASSIGNEE_LOOKUP_VALUE \ --scope $APPROVED_AZURE_SCOPE \ --query "[].{name:name, roleDefinitionId:roleDefinitionId, principalId:principalId, scope:scope}" ``` ## Remove a role assignment by name (most precise) ```bash az role assignment delete \ --ids $ROLE_ASSIGNMENT_ID ``` ## Remove by role + assignee + scope (if name not captured) ```bash az role assignment delete \ --assignee $ASSIGNEE_LOOKUP_VALUE \ --role "$ROLE_DEFINITION_NAME" \ --scope $APPROVED_AZURE_SCOPE ``` ## Verify deletion took effect ```bash az role assignment list \ --assignee $ASSIGNEE_LOOKUP_VALUE \ --scope $APPROVED_AZURE_SCOPE \ --query "[].{role:roleDefinitionName, scope:scope}" # Should return empty or not include the deleted assignment ``` ## Caveats - Token caching: deleted assignments may still appear valid for up to 10 minutes due to Azure Resource Manager caching; managed identity group membership can have longer cache behavior. Wait before declaring rollback complete. - Inherited assignments: if the assignment was at a parent scope (subscription or management group), removing it at the child scope is not possible — you must delete from the parent scope where it was created. - Guest accounts: if the principal is a guest and the assignment was their only entitlement, removal may trigger MFA re-enrollment on next access. Communicate with the affected user. - Audit log: the deletion will appear in Azure Activity Log under `Microsoft.Authorization/roleAssignments/delete`. Retain the activity log entry as evidence. ## What cannot be rolled back automatically - Access exercised during the window the assignment was active (data accessed, operations performed) cannot be undone via role removal. - Any resources created or deleted by the principal during the assignment window must be remediated separately. -
safety-checklist.md 1.8 KB
# Safety Checklist ## Evidence labels - `documentation-based`: grounded in Microsoft Learn or listed official documentation. - `sampled-current-state`: grounded in read-only Azure or Kubernetes observations from the user's configured tools. - `user-provided`: grounded in sanitized snippets supplied by the user. - `inference`: reasoned from evidence but not directly proven. ## Mutation boundary - Default to read-only review. - Do not perform create, update, delete, rotate, purge, recover, apply, swap, reset, complete, deploy, assign, revoke, deallocate, quota, budget, or policy changes unless the user explicitly asks and approval is clear. - Prefer preview, what-if, dry-run, status, describe, list, show, diff, activity-log, and policy evaluation evidence before any mutation. ## Credential and data boundary - Never ask users to paste credentials, tokens, tenant IDs, subscription IDs, customer data, private keys, kubeconfig contents, CA requester credentials, secret values, connection strings, or raw environment dumps. - Summarize sensitive evidence by field presence, control state, and risk; do not reproduce secret material. ## Risk gates - Stop on ambiguous target, ambiguous principal, missing approval, missing rollback, missing financial owner, or missing asset owner for high-impact assets. - Treat broad permissions, permanent privileged access, public exposure, purge authority, destructive deployment behavior, quota increases, budget automation, and production slot swaps as high-risk. - Separate documented product behavior from sampled configured-environment evidence. ## Asset-specific hard line Never create or delete privileged role assignments without confirmed tenant/scope, assignee identity, principal type, role definition, existing assignment evidence, PIM alternative review, explicit approval, propagation caveat, and rollback command. -
workflow-and-output.md 1.8 KB
# Workflow and Output Contract ## Execution flow 1. Scope the exact target, environment boundary, owner, requested operation, approval state, and rollback owner. 2. Load `official-sources.md`, then the component operations guide for service behavior and risk gates. 3. Gather sampled read-only evidence only when available and safe. 4. Compare observed posture against documented behavior, least-privilege expectations, and live-operation safety rules. 5. Refuse or defer mutation if target, approval, rollback, or evidence is incomplete. 6. Return a verdict with evidence level, blockers, safe next actions, and open questions. ## Required output - `verdict`: pass, warn, fail, or blocked. - `evidence_level`: documentation-based, sampled-current-state, user-provided, inference, or mixed. - `scope`: what was reviewed and what was not reviewed. - `approval_status`: explicit approval, missing approval, or not applicable for read-only review. - `blockers`: issues that prevent a safe or production-ready conclusion. - `findings`: severity-labeled risks with source labels. - `rollback_posture`: exact rollback path or explicit non-reversibility caveat. - `safe_next_actions`: reversible actions first; mutation only with explicit approval. - `open_questions`: missing facts that would change the verdict. ## Stress checks - What assumption would make this recommendation unsafe? - Which role, policy, budget, quota, deployment, swap, or purge action has the largest blast radius? - What evidence would disprove the claimed readiness? - Is the answer accidentally treating documentation as environment-specific proof? ## Response discipline Use Microsoft Learn documentation through the user's configured documentation MCP for documented Azure behavior. Use sampled read-only Azure evidence only for current configured-environment observations and label it as sampled evidence.
-
-
metadata.json 1.5 KB
{ "id": "azure-live-entra-role-assignment-guard", "name": "Azure Live Entra Role Assignment Guard", "type": "skill", "provider": "azure", "harnesses": [ "codex", "claude-code", "cursor", "gemini", "kiro", "other" ], "summary": "Guard live permanent Microsoft Entra ID and Azure RBAC role assignments with scope audit, principal-type risk classification, dangerous-role detection, PIM preference, propagation caveats, and explicit approval gates before write.", "source_type": "original", "official_docs": [ "https://learn.microsoft.com/azure/role-based-access-control/overview", "https://learn.microsoft.com/azure/role-based-access-control/best-practices", "https://learn.microsoft.com/azure/role-based-access-control/role-assignments-steps", "https://learn.microsoft.com/azure/role-based-access-control/role-assignments-alert", "https://learn.microsoft.com/azure/role-based-access-control/troubleshooting#azure-role-assignments", "https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-deployment-plan" ], "security_notes": "Never create or delete privileged role assignments without confirmed tenant/scope, assignee identity, principal type, role definition, existing assignment evidence, PIM alternative review, explicit approval, propagation caveat, and rollback command.", "last_verified": "2026-06-05", "path": "skills/azure/azure-live-entra-role-assignment-guard", "author": "github: VincentChuWaiChow", "version": "0.1.7" } -
SKILL.md 4.1 KB
--- name: azure-live-entra-role-assignment-guard description: Guard live permanent Microsoft Entra ID and Azure RBAC role assignments with scope audit, principal-type risk classification, dangerous-role detection, and explicit approval gates before write. Use only when a direct (non-PIM) role assignment is intentionally requested against a confirmed target. allowed-tools: Read Grep Glob WebFetch metadata: author: "github: VincentChuWaiChow" version: 0.1.7 updated: "2026-06-05" category: security --- # Azure Live Entra Role Assignment Guard ## Purpose Act as the guarded live Azure operator for azure-live-entra-role-assignment-guard work. Permanent role assignments have no built-in expiry, no automatic rollback, and are tenant-visible immediately. Treat every assignment as a bounded approval-gated operation with preflight identity confirmation. ## When to use Use this skill when: - a direct (non-PIM) Entra ID or Azure RBAC role assignment must be created against a confirmed principal and scope - an existing assignment must be removed and the downstream access impact must be assessed before deletion - a role assignment audit finds over-broad, stale, or guest assignments that must be remediated with least-privilege alternatives ## Lean operating rules - Prefer Microsoft Learn documentation through the user's configured documentation MCP; use sampled read-only Azure evidence when available, then sanitized user evidence. - Do not create or delete any role assignment until subscription or tenant, active principal, target scope, role, and assignee identity are all explicit. - Prefer read-only inspection (`az role assignment list`, `az ad user show`) before any write. - Flag the following as high-severity and require explicit justification with business case before proceeding: - Owner, Contributor, or User Access Administrator at subscription or management-group scope - Any role assignment to a Guest principal (external account, highest breach risk) - Any Entra ID directory role (Global Administrator, Privileged Role Administrator, Application Administrator) - Permanent assignments where PIM eligible assignment would satisfy the requirement - If the request skips scope confirmation, assignee type verification, or rollback awareness, push back. - Never print access tokens, client secrets, tenant IDs, Object IDs without context, or raw environment dumps. Summarize sanitized evidence only. - Load references only when needed. ## References Load these only when needed: - [Azure Entra and RBAC Role Assignment Operations](references/role-assignment-operations.md) — use for current service behavior, common failure modes, hard design rules, verification targets, and push-back conditions. - [Preflight commands](references/preflight-commands.md) — CLI commands to run before any mutation. - [Rollback playbook](references/rollback-playbook.md) — concrete rollback steps for this service. - [Permission model](references/permission-model.md) — RBAC role definitions and PIM guidance. - [MCP and evidence path](references/mcp-and-evidence.md) — use when choosing documentation-based evidence, sampled read-only evidence, or sanitized user evidence. - [Safety checklist](references/safety-checklist.md) — use for evidence labels, permanent assignment blast radius, PIM eligibility, guest/service-principal risk, propagation delay, and rollback limits. - [Workflow and output contract](references/workflow-and-output.md) — execution flow and final response contract. - [Official sources](references/official-sources.md) — authoritative Azure documentation links. ## Response minimum Return, at minimum: - confirmed tenant, subscription (if applicable), target scope, and active caller identity - preflight evidence: existing assignments on the target scope and current assignee roles - principal-type risk classification (member user / guest / service principal / managed identity / group) - role risk classification (Owner / Contributor / UAA / custom / narrow built-in) - approval status and explicit justification for the assignment - rollback posture: the exact `az role assignment delete` command to undo - post-assignment verification steps or refusal reason
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.