Project 02 β Enterprise Azure Identity & Cloud Penetration Test
Welcome
Section titled βWelcomeβWelcome to Project 02 β Enterprise Azure Identity & Cloud Penetration Test.
In Project 01, you assessed an AWS environment and learned how cloud attack paths can emerge from the combination of:
Identity +Permission +Workload +Trust =Privilege PathIn this project, you will apply the same thinking to Microsoft Azure.
The major difference is that Azure enterprise environments frequently connect:
Microsoft Entra ID βUsers / Groups / Applications βAzure RBAC βSubscriptions βResource Groups βResources βManaged Identities βKey Vault / Storage / DatabasesThis makes Azure penetration testing heavily identity-driven.
Your objective is not simply to find insecure resources.
Your objective is to understand:
Can an authorised low-privileged identity gain unintended access through Entra ID relationships, Azure RBAC, resource ownership, managed identities, application identities, or cloud trust relationships?
Mission Information
Section titled βMission InformationβProject
Section titled βProjectβEnterprise Azure Identity & Cloud Penetration Test
Platform
Section titled βPlatformβCloudNova
Difficulty
Section titled βDifficultyβIntermediate β Advanced
Estimated Time
Section titled βEstimated Timeβ4β6 hours
Primary Skills
Section titled βPrimary Skillsβ-
Microsoft Entra ID reconnaissance
-
Azure subscription discovery
-
Azure resource inventory
-
Azure RBAC analysis
-
Role assignment review
-
Scope inheritance analysis
-
Managed identity assessment
-
Service principal analysis
-
Virtual machine security
-
Network Security Group review
-
Storage security
-
Key Vault security
-
Application identity analysis
-
Privilege-path development
-
Evidence collection
-
Professional reporting
Mission Objective
Section titled βMission ObjectiveβA fictional organisation has requested an authorised assessment of its Azure environment inside CloudNova.
The organisation uses:
Corporate Identity βMicrosoft Entra ID βAzure Subscription βResource Groups βApplications βManaged Identities βKey Vault / Storage / DatabasesThe security team is concerned that:
-
Azure RBAC roles may be excessive
-
Resource permissions may be inherited too broadly
-
Managed identities may have excessive privilege
-
Developers may control workloads using privileged identities
-
Application identities may expose sensitive resources
-
Key Vault access may be too broad
-
Azure resources may be unnecessarily exposed
-
Logging or monitoring controls may be insufficient
Your task is to determine whether these weaknesses can combine into meaningful enterprise attack paths.
Starting Position
Section titled βStarting PositionβYou begin with an authorised low-privileged identity.
Example:
Identity:student@cloudnova.lab
Tenant:CloudNova Enterprise Tenant
Subscription:CloudNova Training Subscription
Privilege:Limited Azure access
Objective:Determine whether identity, RBAC, workload, or resourcerelationships create a path toward sensitive Azure resources.Rules of Engagement
Section titled βRules of EngagementβAllowed:
Entra ID discovery
Subscription discovery
Resource enumeration
Azure RBAC review
Managed identity review
Service principal review
Virtual machine configuration review
Network Security Group review
Storage configuration review
Key Vault permission review
Logging review
Controlled permission validation
Evidence collectionNot allowed unless specifically required by CloudNova:
Denial of Service
Deleting Azure resources
Stopping business workloads
Changing production-like data
Disabling logs
Removing security controls
Testing external tenants
Testing third-party infrastructure
Downloading unnecessary sensitive dataGolden Rule
Section titled βGolden RuleβUse:
Minimum Necessary ValidationIf Azure configuration and permission evidence already demonstrate the path, do not perform unnecessary changes merely to prove maximum impact.
Project Success Criteria
Section titled βProject Success CriteriaβBy the end of this project, produce:
Azure Architecture Diagram
Tenant & Subscription Inventory
Entra Identity Inventory
Azure RBAC Matrix
Role Assignment Map
Managed Identity Inventory
Application Identity Inventory
Virtual Machine Assessment
Network Exposure Matrix
Storage Assessment
Key Vault Assessment
Attack Path Register
Evidence Register
Findings Register
Enterprise Azure Penetration Testing ReportPhase 01 β Prepare Your Workspace
Section titled βPhase 01 β Prepare Your WorkspaceβCreate:
Project 02 - Enterprise Azure Pentest/ββββ 01 Engagementβββ 02 Architectureβββ 03 Entra IDβββ 04 Subscriptionsβββ 05 Azure RBACβββ 06 Computeβββ 07 Networkβββ 08 Storageβββ 09 Managed Identityβββ 10 Key Vaultβββ 11 Loggingβββ 12 Attack Pathsβββ 13 Evidenceβββ 14 Findingsβββ 15 Reportβββ 16 RetestInside 01 Engagement create:
Scope.mdRules-of-Engagement.mdObjectives.mdTesting-Notes.mdPhase 02 β Record Scope
Section titled βPhase 02 β Record ScopeβDocument:
Cloud Provider:Microsoft Azure
Environment:CloudNova
Tenant:<TENANT-ID>
Subscription:<SUBSCRIPTION-ID>
Starting Identity:<IDENTITY>
In Scope:Microsoft Entra IDAzure RBACVirtual MachinesNetworkingStorageManaged IdentitiesKey VaultApproved ApplicationsLogging
Out of Scope:Other tenantsThird-party SaaSDoSDestructive operationsUnapproved subscriptionsPhase 03 β Authenticate and Confirm Identity
Section titled βPhase 03 β Authenticate and Confirm IdentityβStart by asking:
Who am I?
In the authorised CloudNova Azure environment:
az account showUseful fields include:
Subscription Name
Subscription ID
Tenant ID
Current User
EnvironmentYou may also review:
az account list --output tableOnly interact with subscriptions explicitly included in scope.
Phase 04 β Record Starting Identity
Section titled βPhase 04 β Record Starting IdentityβCreate:
| Field | Value |
|---|---|
| Identity | student@cloudnova.lab |
| Tenant | <Tenant ID> |
| Subscription | <Subscription> |
| Identity Type | User |
| Known Role | Reader / Custom |
| Effective Privilege | Unknown |
Again:
Effective Privilege:UnknownYour job is to determine it.
Phase 05 β Understand Azure Hierarchy
Section titled βPhase 05 β Understand Azure HierarchyβAzure access can exist at different scopes.
Management Group βSubscription βResource Group βResourcePermissions assigned higher in the hierarchy may be inherited downward.
This matters enormously during penetration testing.
Phase 06 β Discover Subscriptions
Section titled βPhase 06 β Discover SubscriptionsβUse:
az account list --output tableRecord only authorised subscriptions.
Create:
| Subscription | Subscription ID | Tenant | Scope |
|---|---|---|---|
| CloudNova Training | <ID> |
CloudNova Tenant | In Scope |
Phase 07 β Discover Resource Groups
Section titled βPhase 07 β Discover Resource GroupsβUse:
az group list --output tableCreate:
| Resource Group | Region | Purpose | Criticality |
|---|---|---|---|
| rg-web | East US | Public web | High |
| rg-app | East US | Applications | High |
| rg-data | East US | Data | Critical |
| rg-security | East US | Security | Critical |
Do not assume criticality solely from names.
Validate using architecture and purpose.
Phase 08 β Inventory Azure Resources
Section titled βPhase 08 β Inventory Azure ResourcesβUse:
az resource list --output tableCreate a structured inventory.
Example:
| Resource | Type | Resource Group | Region | Identity |
|---|---|---|---|---|
| vm-web01 | VM | rg-web | East US | WebIdentity |
| vm-app01 | VM | rg-app | East US | AppIdentity |
| vault-prod | Key Vault | rg-data | East US | N/A |
| stappdata | Storage | rg-data | East US | N/A |
Phase 09 β Build the Initial Architecture
Section titled βPhase 09 β Build the Initial ArchitectureβExample:
Microsoft Entra ID β βββ Users βββ Groups βββ Applications βββ Service Principals β β Azure Subscription β ββββββββββΌβββββββββ β β β rg-web rg-app rg-data β β β β β β WEB01 APP01 Key Vault β β ββββ StorageUpdate this diagram throughout the project.
Phase 10 β Enumerate Entra Users
Section titled βPhase 10 β Enumerate Entra UsersβIf permitted:
az ad user list --output tableCreate:
| User | Type | Purpose | Privileged? |
|---|---|---|---|
| student | User | Development | No |
| app-admin | User | Application admin | Review |
| cloud-admin | User | Azure admin | Yes |
Focus on relationships, not simply usernames.
Phase 11 β Enumerate Groups
Section titled βPhase 11 β Enumerate GroupsβIf permitted:
az ad group list --output tableImportant questions:
Which Groups Exist?
Which Users Are Members?
Which Groups Have Azure Roles?
Which Groups Control Applications?
Which Groups Are Privileged?Phase 12 β Group Membership
Section titled βPhase 12 β Group MembershipβFor a specific group, where authorised:
az ad group member list \ --group "<GROUP-NAME>" \ --output tableBuild:
User βGroup βAzure Role βScopeThis creates the beginning of your privilege graph.
Phase 13 β Service Principals
Section titled βPhase 13 β Service PrincipalsβAzure applications commonly use service principals.
If permitted:
az ad sp list --all --output tableFocus on:
Display Name
Application ID
Object ID
Purpose
Owners
Azure Roles
Credentials
FederationDo not retrieve credentials unnecessarily.
Phase 14 β Application Identity Model
Section titled βPhase 14 β Application Identity ModelβUnderstand:
Application Registration βService Principal βCredential / Federation βAzure RBAC / API Permissions βResourceAn application identity can become as important as a human administrator.
Phase 15 β Managed Identities
Section titled βPhase 15 β Managed IdentitiesβAzure provides managed identities for workloads.
Two common types:
System Assigned
User AssignedConceptually:
Virtual Machine βManaged Identity βAzure RBAC βKey Vault / Storage / Other ResourceManaged identities eliminate some static credential risks but can still be overprivileged.
Phase 16 β Identify VM Managed Identities
Section titled βPhase 16 β Identify VM Managed IdentitiesβFor authorised VMs:
az vm list \ --show-details \ --query '[].{Name:name,ResourceGroup:resourceGroup,PublicIP:publicIps,PrivateIP:privateIps}' \ --output tableFor a particular VM:
az vm identity show \ --resource-group <RESOURCE-GROUP> \ --name <VM-NAME>Record:
VM
Identity Type
Principal ID
User Assigned Identity
Resource GroupPhase 17 β Managed Identity Inventory
Section titled βPhase 17 β Managed Identity InventoryβCreate:
| Workload | Identity | Type | Azure Role | Sensitive Access |
|---|---|---|---|---|
| vm-web01 | WebIdentity | System | Reader | No |
| vm-app01 | AppIdentity | System | Custom | Key Vault? |
| function01 | ProcessorIdentity | User Assigned | Storage Contributor | Review |
Phase 18 β Azure RBAC
Section titled βPhase 18 β Azure RBACβAzure RBAC determines:
Who βHas Which Role βAt Which Scope βAgainst Which ResourcesThis must be analysed carefully.
Phase 19 β List Role Assignments
Section titled βPhase 19 β List Role AssignmentsβUse:
az role assignment list --all --output tableFor focused analysis:
az role assignment list \ --assignee <OBJECT-ID> \ --all \ --output tableRecord:
Principal
Role
Scope
Principal Type
InheritancePhase 20 β Build the RBAC Matrix
Section titled βPhase 20 β Build the RBAC MatrixβCreate:
| Principal | Role | Scope | Inherited? | Security Question |
|---|---|---|---|---|
| student | Reader | Subscription | Yes | Recon only? |
| Developers | Contributor | rg-app | No | Can control identities? |
| AppIdentity | Key Vault Reader | vault-prod | No | Secret access? |
| Automation | Owner | rg-app | No | Why Owner? |
Phase 21 β Understand Built-In Roles
Section titled βPhase 21 β Understand Built-In RolesβBe comfortable conceptually with roles such as:
Reader
Contributor
Owner
User Access AdministratorDo not assume role names alone tell the whole story.
Custom roles may be more important.
Phase 22 β Contributor vs Owner
Section titled βPhase 22 β Contributor vs OwnerβConceptually:
Contributor βManage Resourceswhile:
Owner βManage Resources +Manage AccessThe exact security impact depends on scope and resource relationships.
Phase 23 β Scope Inheritance
Section titled βPhase 23 β Scope InheritanceβSuppose:
Developers Group βContributor βSubscriptionThat may mean:
Developers βControl Many Resource Groups βControl Workloads βPotential Access to Their IdentitiesThis is why scope matters.
Phase 24 β Custom Roles
Section titled βPhase 24 β Custom RolesβList custom roles if permitted:
az role definition list --custom-role-only true --output jsonAnalyse:
Actions
NotActions
DataActions
NotDataActions
AssignableScopesPhase 25 β Privilege-Changing Capabilities
Section titled βPhase 25 β Privilege-Changing CapabilitiesβLook for capabilities that may allow an identity to control:
Role Assignments
Managed Identities
VM Extensions
Automation
Deployment Templates
Key Vault
Application ConfigurationThe central question remains:
Can this identity control something that operates with greater privilege?
Phase 26 β Hypothesis Example
Section titled βPhase 26 β Hypothesis ExampleβSuppose:
Developers βContributor βrg-appInside rg-app:
vm-app01 βManaged Identity βAppIdentityAppIdentity has:
Key Vault Secret AccessPotential hypothesis:
Developer βControls VM βVM Uses Managed Identity βManaged Identity βKey VaultThis is not a confirmed attack path yet.
Phase 27 β Hypothesis Register
Section titled βPhase 27 β Hypothesis RegisterβCreate:
| ID | Hypothesis | Evidence | Status |
|---|---|---|---|
| AZ-H-001 | Developer may indirectly exercise AppIdentity | Contributor + VM identity | Investigate |
| AZ-H-002 | AppIdentity may read sensitive Key Vault secrets | Role assignment | Investigate |
| AZ-H-003 | Storage may be publicly reachable | Network config | Investigate |
Phase 28 β Virtual Machine Assessment
Section titled βPhase 28 β Virtual Machine AssessmentβReview:
Public IP
Private IP
Network Interface
NSG
Managed Identity
Extensions
Disk Encryption
Administrative Access
Business PurposePhase 29 β VM Inventory
Section titled βPhase 29 β VM InventoryβUse:
az vm list --show-details --output tableCreate:
| VM | Resource Group | Public | Identity | Purpose |
|---|---|---|---|---|
| vm-web01 | rg-web | Yes | WebIdentity | Web |
| vm-app01 | rg-app | No | AppIdentity | App |
| vm-admin01 | rg-admin | No | AdminIdentity | Management |
Phase 30 β Network Security Groups
Section titled βPhase 30 β Network Security GroupsβList:
az network nsg list --output tableFor a specific NSG:
az network nsg rule list \ --resource-group <RESOURCE-GROUP> \ --nsg-name <NSG-NAME> \ --output tablePhase 31 β Build Network Exposure Matrix
Section titled βPhase 31 β Build Network Exposure Matrixβ| Source | Destination | Port | Expected | Observed |
|---|---|---|---|---|
| Internet | WEB01 | 443 | Allow | Allow |
| Internet | APP01 | 3389 | Deny | Allow |
| WEB01 | APP01 | 443 | Allow | Allow |
| User subnet | Key Vault | Restricted | Review | Review |
Phase 32 β Administrative Exposure
Section titled βPhase 32 β Administrative ExposureβInvestigate broad access to:
SSH
RDP
Database Ports
Management APIs
Administrative Web InterfacesThe question is:
Does the source network actually need access?
Phase 33 β Azure Storage
Section titled βPhase 33 β Azure StorageβList storage accounts:
az storage account list --output tableRecord:
Storage Account
Resource Group
Region
Public Network Access
Encryption
Identity AccessPhase 34 β Storage Questions
Section titled βPhase 34 β Storage QuestionsβAsk:
Is Public Access Enabled?
Is Anonymous Blob Access Allowed?
Which Identities Can Read?
Which Identities Can Write?
Which Identities Can Delete?
Is Network Access Restricted?
Is Encryption Enabled?
What Data Is Stored?Phase 35 β Public Blob Access
Section titled βPhase 35 β Public Blob AccessβDo not automatically report:
Public storage = vulnerability.
Determine:
Intentional?
Sensitive?
Read?
Write?
Business Purpose?Phase 36 β Storage RBAC
Section titled βPhase 36 β Storage RBACβReview identities assigned roles such as:
Storage Blob Data Reader
Storage Blob Data Contributor
Storage Account ContributorUnderstand the difference between:
Management Planeand:
Data PlanePhase 37 β Management vs Data Plane
Section titled βPhase 37 β Management vs Data PlaneβAn identity may be able to manage the storage account without necessarily reading object data directly.
Or it may have data-plane access without management control.
Always identify:
What Can Be Configured?
What Data Can Be Accessed?Phase 38 β Key Vault Discovery
Section titled βPhase 38 β Key Vault DiscoveryβList vaults where permitted:
az keyvault list --output tableRecord:
Vault Name
Resource Group
Region
Public Network Access
Authorization ModelPhase 39 β Key Vault Authorization
Section titled βPhase 39 β Key Vault AuthorizationβAzure Key Vault may use:
Azure RBAC
or
Vault Access PoliciesDetermine which model applies before analysing access.
Phase 40 β Key Vault Questions
Section titled βPhase 40 β Key Vault QuestionsβAsk:
Who Can Read Secrets?
Who Can Write Secrets?
Who Can Delete Secrets?
Who Can Manage Keys?
Who Can Change Access?
Which Workloads Use the Vault?
Is Network Access Restricted?Phase 41 β Do Not Retrieve Secrets Unnecessarily
Section titled βPhase 41 β Do Not Retrieve Secrets UnnecessarilyβStart with metadata and permission analysis.
Do not retrieve:
Passwords
Tokens
API Keys
Connection Stringsunless CloudNova explicitly requires controlled synthetic validation.
Phase 42 β Key Vault Attack Path
Section titled βPhase 42 β Key Vault Attack PathβExample:
Developer βControls APP01 βAPP01 Managed Identity βKey Vault Secret Reader βApplication Secret βSensitive ServiceAgain:
Secret Accessmay be a transition rather than the final impact.
Phase 43 β Managed Identity Security
Section titled βPhase 43 β Managed Identity SecurityβFor each managed identity ask:
Which Workload Uses It?
Who Can Control That Workload?
Which Azure Roles Are Assigned?
At Which Scope?
Can It Access Key Vault?
Can It Access Storage?
Can It Modify Resources?
Can It Control Another Identity?Phase 44 β Workload Control
Section titled βPhase 44 β Workload ControlβA user may have no direct sensitive-data access but may control a workload that does.
Conceptually:
Developer βResource Control βApplication βManaged Identity βSensitive ResourceThis is a major Azure attack-path pattern.
Phase 45 β Application Registrations
Section titled βPhase 45 β Application RegistrationsβWhere permitted:
az ad app list --output tableReview:
Application
Owners
Service Principal
Credentials
Federated Credentials
API PermissionsNever expose credential values in project notes.
Phase 46 β Application Owners
Section titled βPhase 46 β Application OwnersβApplication ownership can itself be security-sensitive.
Conceptually:
User βOwns Application βApplication Identity βCloud PermissionsDetermine what application ownership allows in the actual environment.
Phase 47 β Service Principal Roles
Section titled βPhase 47 β Service Principal RolesβFor a service principal:
Service Principal βAzure Role Assignment βSubscription / Resource Group / ResourceBuild this into the identity graph.
Phase 48 β Enterprise Identity Graph
Section titled βPhase 48 β Enterprise Identity GraphβExample:
student β βββ MemberOf ββ> Developers β βββ Contributor ββ> rg-app β β APP01 β β AppIdentity β βββ Secret Reader ββ> vault-prodNow the path becomes easier to understand.
Phase 49 β Identify Choke Points
Section titled βPhase 49 β Identify Choke PointsβPotential choke points include:
Developers Contributor Role
APP01 Control
AppIdentity Privilege
Key Vault Role AssignmentAsk:
Which remediation breaks the largest number of paths with the least operational disruption?
Phase 50 β Controlled Validation Decision
Section titled βPhase 50 β Controlled Validation DecisionβUse:
Configuration Evidence βEnough to Prove Path? / \ Yes No β βDocument Safe Validation Possible? β Yes / NoIf no safe validation exists:
Document Potential RiskDo not create impact merely to prove a theoretical maximum.
Phase 51 β Azure Resource Locks
Section titled βPhase 51 β Azure Resource LocksβWhere relevant, identify whether critical resources have protection against accidental modification.
Resource locks can provide:
Delete Protection
Read-Only ProtectionThey do not replace IAM but may reduce operational risk.
Phase 52 β Logging
Section titled βPhase 52 β LoggingβAzure control-plane activity should be observable.
Important sources may include:
Azure Activity Log
Microsoft Entra Sign-In Logs
Microsoft Entra Audit Logs
Azure Monitor
Resource Logs
Defender for Cloud
Microsoft SentinelPhase 53 β Activity Log
Section titled βPhase 53 β Activity LogβWhere permitted:
az monitor activity-log list --max-events 20 --output tableThe objective is to understand available audit visibility.
Phase 54 β Logging Questions
Section titled βPhase 54 β Logging QuestionsβAsk:
Are Administrative Changes Logged?
Are Role Assignment Changes Logged?
Are Resource Changes Logged?
Are Key Vault Access Events Available?
Are Authentication Events Monitored?
Are Logs Centralised?
Who Can Modify Logging?Phase 55 β Logging Privilege
Section titled βPhase 55 β Logging PrivilegeβIf a development identity can modify:
Diagnostic Settings
Log Destinations
Monitoring Configurationdetermine whether that capability is justified.
Do not disable logging.
Phase 56 β Microsoft Defender for Cloud
Section titled βPhase 56 β Microsoft Defender for CloudβIf available, assess whether security posture and recommendations are being generated.
Do not treat posture tools as a substitute for attack-path analysis.
Phase 57 β Conditional Access Context
Section titled βPhase 57 β Conditional Access ContextβWhere relevant to the authorised lab, document identity controls such as:
MFA
Conditional Access
Privileged Identity Management
Device Requirements
Location RestrictionsA strong cloud assessment evaluates defensive identity controls as well as resource permissions.
Phase 58 β Privileged Identity Management
Section titled βPhase 58 β Privileged Identity ManagementβIn enterprise Azure environments, privileged roles may be:
Eligible
Activated
Time Limitedthrough Privileged Identity Management.
This can reduce standing privilege.
Document whether privileged access appears permanent or controlled.
Phase 59 β Azure Attack Surface Map
Section titled βPhase 59 β Azure Attack Surface MapβYour map may now look like:
Microsoft Entra IDββββ studentβββ Developersβββ AppIdentityβββ AutomationIdentity β βAzure Subscriptionββββ rg-webβ βββ WEB01ββββ rg-appβ βββ APP01β βββ AppIdentityββββ rg-dataβ βββ Storageβ βββ Key Vaultββββ rg-security βββ MonitoringPhase 60 β Attack Path 01
Section titled βPhase 60 β Attack Path 01βExample:
student βDevelopers βContributor on rg-app βControl APP01 βAPP01 Managed Identity βKey Vault Secret AccessDocument each transition separately.
Phase 61 β Attack Path 02
Section titled βPhase 61 β Attack Path 02βExample:
Developer βApplication Ownership βService Principal βAzure Role βSensitive StorageOnly mark as validated if the actual ownership and permission model supports it.
Phase 62 β Attack Path 03
Section titled βPhase 62 β Attack Path 03βExample:
Low-Privilege User βGroup Membership βBroad Role Assignment βResource Control βPrivileged Managed Identity βCritical ResourceThis demonstrates why Azure permissions must be analysed as a graph.
Phase 63 β Attack Path Register
Section titled βPhase 63 β Attack Path RegisterβCreate:
| ID | Start | Transition | Target | Status | Risk |
|---|---|---|---|---|---|
| AZ-AP-001 | student | Developer group β APP01 | Key Vault | Validated | High |
| AZ-AP-002 | App owner | Service principal | Storage | Investigate | TBD |
| AZ-AP-003 | User | Broad RBAC | Critical workload | Validated | High |
Phase 64 β Evidence Register
Section titled βPhase 64 β Evidence RegisterβUse:
AZ-EV-001Current identity
AZ-EV-002Subscription context
AZ-EV-003Group membership
AZ-EV-004Role assignment
AZ-EV-005VM managed identity
AZ-EV-006Managed identity role
AZ-EV-007Key Vault configuration
AZ-EV-008Controlled synthetic validationPhase 65 β Evidence Template
Section titled βPhase 65 β Evidence TemplateβEvidence ID:AZ-EV-005
Timestamp:<DATE/TIME>
Resource:vm-app01
Observation:The virtual machine uses AppIdentity as its managed identity.
Source:Azure resource configuration.
Attack Path:AZ-AP-001
Sensitive Data Collected:NonePhase 66 β Finding Example 01
Section titled βPhase 66 β Finding Example 01βAZ-001 β Developer Resource Control Creates an Indirect Path to a Privileged Managed Identity
Section titled βAZ-001 β Developer Resource Control Creates an Indirect Path to a Privileged Managed IdentityβObservation
Section titled βObservationβThe development group possesses resource-management permissions over an application workload operating with a managed identity that has access to sensitive Azure resources.
Attack Scenario
Section titled βAttack ScenarioβCompromise of a development identity could allow an attacker to influence the application workload and indirectly exercise capabilities available to the managed identity.
The weakness may expand compromise from development-level access toward sensitive production-like services.
Root Cause
Section titled βRoot CauseβInsufficient separation between workload administration and workload identity privilege.
Recommendation
Section titled βRecommendationβRestrict who can modify privileged workloads, minimise managed-identity permissions, and separate development responsibilities from privileged resource administration.
Phase 67 β Finding Example 02
Section titled βPhase 67 β Finding Example 02βAZ-002 β Managed Identity Has Excessive Key Vault Access
Section titled βAZ-002 β Managed Identity Has Excessive Key Vault AccessβObservation
Section titled βObservationβA managed identity associated with an application workload possesses Key Vault permissions beyond its documented operational requirement.
Compromise of the workload could expose secrets used by unrelated services and expand the blast radius.
Recommendation
Section titled βRecommendationβLimit the managed identity to explicitly required secrets and operations and continuously review workload identity access.
Phase 68 β Finding Example 03
Section titled βPhase 68 β Finding Example 03βAZ-003 β Azure RBAC Assignment Is Broader Than Operationally Required
Section titled βAZ-003 β Azure RBAC Assignment Is Broader Than Operationally RequiredβObservation
Section titled βObservationβA role assignment grants resource-management authority at a broader Azure scope than required.
Compromise of the affected identity may provide control over unrelated resources and increase opportunities for privilege chaining.
Recommendation
Section titled βRecommendationβMove the assignment to the narrowest appropriate resource or resource-group scope and review inherited permissions.
Phase 69 β Finding Example 04
Section titled βPhase 69 β Finding Example 04βAZ-004 β Administrative Azure Resource Is Exposed to Broad Network Sources
Section titled βAZ-004 β Administrative Azure Resource Is Exposed to Broad Network SourcesβObservation
Section titled βObservationβAn administrative service associated with an Azure-hosted system is reachable from network ranges broader than required for legitimate administration.
Broad exposure increases the likelihood of credential attacks or exploitation of management services.
Recommendation
Section titled βRecommendationβRestrict administration to approved private management paths, trusted networks, or identity-aware access mechanisms.
Phase 70 β Finding Example 05
Section titled βPhase 70 β Finding Example 05βAZ-005 β Key Vault Access Is Not Sufficiently Segmented Across Workloads
Section titled βAZ-005 β Key Vault Access Is Not Sufficiently Segmented Across WorkloadsβObservation
Section titled βObservationβMultiple workloads share access to sensitive secrets without clear operational necessity.
Compromise of one workload may provide access to credentials or secrets used by unrelated systems.
Recommendation
Section titled βRecommendationβImplement per-workload identities and narrowly scoped secret access.
Phase 71 β Positive Controls
Section titled βPhase 71 β Positive ControlsβDocument controls that worked.
Examples:
Privileged MFA Enabled β
Key Vault Network Restrictions β
Critical VM Has No Public IP β
Activity Logging Enabled β
Privileged Role Requires PIM Activation βPhase 72 β Root Cause Themes
Section titled βPhase 72 β Root Cause ThemesβPotential themes:
Broad Azure RBAC
Weak Scope Governance
Overprivileged Managed Identities
Weak Separation of Duties
Excessive Application Ownership
Inconsistent Secret Governance
Insufficient Network SegmentationPhase 73 β Risk Prioritisation
Section titled βPhase 73 β Risk PrioritisationβConsider:
Initial Access Required
Role Scope
Resource Criticality
Managed Identity Privilege
Data Sensitivity
Attack Path Length
Business Impact
Detection
Compensating ControlsPhase 74 β Remediation Priorities
Section titled βPhase 74 β Remediation PrioritiesβImmediate
Section titled βImmediateβBreak validated critical identity paths
Reduce unnecessary Key Vault access
Restrict excessive resource control
Restrict broad administrative network exposureShort Term
Section titled βShort TermβReview Azure RBAC
Review managed identities
Review application owners
Review service principals
Improve workload isolationStrategic
Section titled βStrategicβImplement Privileged Identity Management
Strengthen least privilege
Adopt recurring identity governance
Improve cloud attack-path reviews
Centralise security telemetry
Implement stronger separation of dutiesPhase 75 β Remediation Matrix
Section titled βPhase 75 β Remediation Matrixβ| Finding | Immediate | Long-Term | Owner |
|---|---|---|---|
| AZ-001 | Restrict workload modification | Separation of duties | Cloud Platform |
| AZ-002 | Reduce vault access | Managed identity governance | App Team |
| AZ-003 | Narrow RBAC scope | Periodic access review | IAM |
| AZ-004 | Restrict NSG | Secure management architecture | Network |
| AZ-005 | Separate secret access | Secret governance | Security |
Phase 76 β Retest
Section titled βPhase 76 β RetestβBefore:
Developer βAPP01 βAppIdentity βKey VaultAfter:
Developer βRequired APP01 Administration β
Developer βSensitive Key Vault Path XRetest the actual relationship.
Phase 77 β Retest Status
Section titled βPhase 77 β Retest StatusβUse:
Resolved
Partially Resolved
Not Resolved
Risk AcceptedPhase 78 β Final Identity Architecture
Section titled βPhase 78 β Final Identity ArchitectureβExample:
Microsoft Entra IDββββ studentβ ββ βββ Developersβ ββ βββ Contributor β rg-appββββ AppIdentityβ ββ βββ Key Vault Secret Reader β vault-prodββββ AutomationIdentity βββ Deployment Role β rg-app
rg-appββββ APP01 βββ AppIdentity
rg-dataββββ vault-prodβββ st-prodPhase 79 β Final Attack Narrative
Section titled βPhase 79 β Final Attack NarrativeβA professional narrative might read:
The assessment began with an authorised low-privileged Microsoft Entra identity. Azure RBAC analysis identified that the identity inherited Contributor-level resource control through a development group at the application resource-group scope. The affected application workload operated using a managed identity with access to sensitive Key Vault resources. This created an indirect privilege path in which compromise of the development identity could potentially influence a workload with higher-value access. The attack path resulted from the combination of broad resource-management permissions and excessive managed-identity privilege.
This is stronger than:
Contributor role is vulnerable.
Phase 80 β Enterprise Azure Report Structure
Section titled βPhase 80 β Enterprise Azure Report StructureβCreate:
Enterprise Azure Penetration Testing Report
1. Executive Summary
2. Engagement Objectives
3. Scope
4. Rules of Engagement
5. Tenant & Subscription Overview
6. Azure Architecture
7. Methodology
8. Asset Inventory
9. Entra Identity Assessment
10. Azure RBAC Assessment
11. Application Identity Assessment
12. Managed Identity Assessment
13. Compute Assessment
14. Network Security Assessment
15. Storage Assessment
16. Key Vault Assessment
17. Logging & Monitoring Assessment
18. Attack Paths
19. Validated Findings
20. Positive Security Observations
21. Root Cause Themes
22. Remediation Roadmap
23. Retest Plan
24. Evidence AppendixPhase 81 β Executive Summary Questions
Section titled βPhase 81 β Executive Summary QuestionsβAnswer:
What Was Tested?
Which Identity Paths Matter Most?
Could Low Privilege Expand?
Which Sensitive Resources Became Reachable?
Which Controls Worked?
Which Controls Failed?
What Should Be Fixed First?Phase 82 β Final Deliverables
Section titled βPhase 82 β Final DeliverablesβComplete:
Project 02 - Enterprise Azure Pentest/ββββ 01 Engagementβ βββ Scope.mdβ βββ Rules-of-Engagement.mdβ βββ Objectives.mdββββ 02 Architectureβ βββ Initial-Azure-Architecture.mdβ βββ Final-Azure-Architecture.mdββββ 03 Entra IDβ βββ User-Inventory.mdβ βββ Group-Inventory.mdβ βββ Application-Inventory.mdβ βββ Service-Principal-Inventory.mdββββ 04 Subscriptionsβ βββ Resource-Inventory.mdββββ 05 Azure RBACβ βββ Role-Assignment-Matrix.mdβ βββ Custom-Role-Review.mdβ βββ Scope-Inheritance-Map.mdββββ 06 Computeβ βββ VM-Assessment.mdββββ 07 Networkβ βββ NSG-Matrix.mdββββ 08 Storageβ βββ Storage-Assessment.mdββββ 09 Managed Identityβ βββ Managed-Identity-Map.mdββββ 10 Key Vaultβ βββ Key-Vault-Assessment.mdββββ 11 Loggingβ βββ Logging-Assessment.mdββββ 12 Attack Pathsβ βββ Attack-Path-Register.mdββββ 13 Evidenceβ βββ Evidence-Register.mdββββ 14 Findingsβ βββ Findings-Register.mdββββ 15 Reportβ βββ Enterprise-Azure-Pentest-Report.mdββββ 16 Retest βββ Retest-Report.mdPhase 83 β Student Submission Checklist
Section titled βPhase 83 β Student Submission ChecklistβENGAGEMENT
[ ] Scope documented[ ] Starting identity documented[ ] Tenant documented[ ] Subscription documented[ ] ROE understood[ ] Stop conditions understood
ENTRA ID
[ ] Users inventoried[ ] Groups inventoried[ ] Group membership reviewed[ ] Applications reviewed[ ] Service principals reviewed[ ] Privileged identities identified
AZURE RESOURCES
[ ] Resource groups inventoried[ ] Resources inventoried[ ] Architecture mapped[ ] Critical assets identified
RBAC
[ ] Role assignments reviewed[ ] Scope inheritance analysed[ ] Custom roles reviewed[ ] Broad roles identified[ ] Resource-control relationships mapped
MANAGED IDENTITIES
[ ] Managed identities inventoried[ ] Workloads mapped to identities[ ] Identity permissions reviewed[ ] Sensitive-resource access reviewed[ ] Workload-control paths reviewed
COMPUTE
[ ] VMs inventoried[ ] Public exposure reviewed[ ] Administrative exposure reviewed[ ] VM identities reviewed
NETWORK
[ ] NSGs inventoried[ ] Network rules reviewed[ ] Segmentation reviewed[ ] Management exposure reviewed
STORAGE
[ ] Storage accounts reviewed[ ] Public access reviewed[ ] Data-plane roles reviewed[ ] Management-plane roles reviewed[ ] Encryption reviewed
KEY VAULT
[ ] Vaults inventoried[ ] Authorization model identified[ ] Secret access reviewed[ ] Key access reviewed[ ] Workload relationships reviewed[ ] No unnecessary secret values collected
LOGGING
[ ] Activity logging reviewed[ ] Entra logging considered[ ] Diagnostic configuration reviewed[ ] Security monitoring reviewed[ ] Logging modification permissions reviewed
ATTACK PATHS
[ ] Hypotheses documented[ ] Hypotheses separated from findings[ ] Identity relationships mapped[ ] Attack paths developed[ ] Minimum necessary validation used[ ] Choke points identified
REPORTING
[ ] Evidence register completed[ ] Findings register completed[ ] Positive controls documented[ ] Root causes identified[ ] Remediation prioritised[ ] Final report completed[ ] Retest plan completedPhase 84 β Skills You Should Demonstrate
Section titled βPhase 84 β Skills You Should DemonstrateβAfter this project, you should be able to explain:
How do you begin an Azure penetration test?
What is the relationship between Microsoft Entra ID and Azure RBAC?
How does Azure scope inheritance work?
Why can Contributor-level access matter?
Why are managed identities important?
How can workload control create indirect privilege?
How are service principals different from human identities?
How do application owners affect cloud security?
How do you assess Key Vault access?
What is the difference between Azure management-plane and data-plane access?
How do you evaluate Storage Account exposure?
How do you assess Network Security Groups?
Why is Privileged Identity Management valuable?
How do you build an Azure identity attack path?
How do you validate privilege safely?
Phase 85 β Interview Story
Section titled βPhase 85 β Interview StoryβYou should be able to explain the project like this:
In a CloudNova Azure enterprise lab, I started with a low-privileged Microsoft Entra user and first mapped the tenant, subscription, resource groups, and identities. I analysed Azure RBAC and discovered that the user inherited resource-management access through a development group. One application workload under that scope operated using a managed identity with access to a sensitive Key Vault. I documented the user-to-group-to-RBAC-to-workload-to-managed-identity relationship as an attack path, validated only the minimum evidence required, and recommended narrower RBAC scope, reduced managed-identity privilege, and separation of duties. I then designed a retest to verify that the identity path had been broken.
That demonstrates:
Entra ID +Azure RBAC +Managed Identity +Attack-Path Analysis +Professional ReportingKey Takeaways
Section titled βKey TakeawaysβProject 02 is about learning to view Azure as an enterprise identity graph.
Remember:
Start with the current Entra identity.
Understand the tenant and subscription before analysing individual resources.
Azure RBAC always has a scope.
Permissions assigned higher in the hierarchy may inherit downward.
Contributor access can be security-sensitive even without direct access-management privilege.
Human identities and machine identities must be analysed together.
Managed identities reduce static credentials but can still be overprivileged.
Who controls a workload can be as important as what the workload can access.
Application ownership and service principals are part of the attack surface.
Key Vault access can create hidden attack paths.
Management-plane and data-plane permissions are different.
Public Azure resources must be evaluated in context.
Network Security Groups should enforce intentional trust boundaries.
Privileged Identity Management can reduce standing privilege.
A role assignment is not automatically a finding.
A hypothesis must be validated before becoming a finding.
Use minimum necessary proof.
Attack paths explain business risk better than isolated permission findings.
Report effective controls as well as weaknesses.
Retest the complete identity path after remediation.
Your Azure penetration testing methodology is:
Scope βEstablish Entra Identity βMap Tenant βMap Subscription βInventory Resources βMap Users & Groups βAnalyse Azure RBAC βAnalyse Scope Inheritance βMap Applications & Service Principals βMap Managed Identities βAssess Compute βAssess Network βAssess Storage βAssess Key Vault βAssess Logging βBuild Identity Graph βDevelop Hypotheses βValidate Attack Paths βCollect Evidence βAnalyse Risk βReport βRemediate βRetestWhatβs Next?
Section titled βWhatβs Next?ββ‘οΈ Project 03 β Google Cloud IAM & Workload Security Assessment
In the next CloudNova project, you will move from Azureβs:
Entra ID +Azure RBAC +Managed Identitiesinto Google Cloudβs:
Organisation Hierarchy +Cloud IAM +Service Accounts +Workload IdentityYou will assess:
-
Google Cloud organisations
-
Folders
-
Projects
-
IAM bindings
-
Built-in and custom roles
-
Service accounts
-
Service-account impersonation relationships
-
Compute workloads
-
Serverless workloads
-
Cloud Storage
-
Secret Manager
-
Network exposure
-
Audit logging
-
Workload identities
-
Enterprise privilege paths
The next core question becomes:
Can human identities, inherited IAM permissions, service accounts, and workload relationships combine into a path toward sensitive Google Cloud resources?