Project 03 β Google Cloud IAM & Workload Security Assessment
Welcome
Section titled βWelcomeβWelcome to Project 03 β Google Cloud IAM & Workload Security Assessment.
You have already completed enterprise projects covering:
Project 01AWS βIAM RolesWorkload RolesResource PoliciesTrust Relationships
Project 02Azure βMicrosoft Entra IDAzure RBACManaged IdentitiesResource ControlYou will now apply the same enterprise attack-path methodology to Google Cloud.
Google Cloud introduces an important security model built around:
Organisation βFolders βProjects βResourcescombined with:
Human Identities +Groups +IAM Roles +Service Accounts +Workload IdentitiesOne of the most important concepts in this project is:
A workloadβs service account can be more privileged than the person who controls the workload.
Your mission is therefore not simply to identify vulnerable Google Cloud resources.
You must determine:
Can human identities, inherited IAM permissions, service accounts, workloads, and cloud trust relationships combine into a path toward sensitive Google Cloud resources?
Mission Information
Section titled βMission InformationβProject
Section titled βProjectβGoogle Cloud IAM & Workload Security Assessment
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β-
Google Cloud reconnaissance
-
Organisation hierarchy analysis
-
Project discovery
-
IAM policy analysis
-
IAM inheritance analysis
-
Service account assessment
-
Workload identity analysis
-
Compute Engine assessment
-
Cloud Storage security
-
Secret Manager assessment
-
Serverless security
-
Network exposure analysis
-
Audit logging review
-
Privilege-path development
-
Evidence collection
-
Professional reporting
Mission Objective
Section titled βMission ObjectiveβA fictional organisation has requested an authorised security assessment of its Google Cloud environment hosted in CloudNova.
The organisation uses:
Google Cloud Organisation β Folders β Projects β ββββββββββΌββββββββββ β β βCompute Storage Serverless β βService Accounts / Workload Identities β Cloud ResourcesThe organisation is concerned about:
-
Excessive IAM permissions
-
Broad inherited permissions
-
Overprivileged service accounts
-
Weak service account relationships
-
Developers controlling privileged workloads
-
Excessive storage access
-
Secret Manager exposure
-
Unnecessary network exposure
-
Serverless workload privilege
-
Weak logging governance
Your task is to determine whether these conditions can combine into meaningful attack paths.
Starting Position
Section titled βStarting PositionβYou begin with an authorised CloudNova Google Cloud identity.
Example:
Identity:student@cloudnova.lab
Environment:CloudNova Google Cloud Training Environment
Starting Privilege:Limited
Projects:To Be Discovered
Objective:Map the environment and determine whetherIAM and workload relationships createunintended privilege paths.Rules of Engagement
Section titled βRules of EngagementβAllowed:
Organisation hierarchy discovery
Project enumeration
Resource enumeration
IAM policy review
Service account enumeration
Service account permission analysis
Compute configuration review
Cloud Storage review
Secret Manager permission review
Serverless configuration review
Network configuration review
Audit logging review
Controlled permission validation
Evidence collectionNot allowed unless explicitly required by CloudNova:
Denial of Service
Deleting projects
Deleting workloads
Destroying data
Disabling logging
Creating persistent unauthorised access
Testing unrelated Google Cloud projects
Testing third-party infrastructure
Downloading unnecessary sensitive dataGolden Rule
Section titled βGolden RuleβUse:
Minimum Necessary ValidationThe objective is to prove the security relationshipβnot to maximise the impact.
Project Success Criteria
Section titled βProject Success CriteriaβBy the end of the project, produce:
Google Cloud Architecture Diagram
Organisation Hierarchy Map
Project Inventory
IAM Binding Matrix
Service Account Inventory
Workload Identity Map
Compute Assessment
Network Exposure Matrix
Cloud Storage Assessment
Secret Manager Assessment
Serverless Assessment
Logging Assessment
Attack Path Register
Evidence Register
Findings Register
Enterprise GCP Penetration Testing ReportPhase 01 β Prepare Your Project Workspace
Section titled βPhase 01 β Prepare Your Project WorkspaceβCreate:
Project 03 - Enterprise GCP Pentest/ββββ 01 Engagementβββ 02 Architectureβββ 03 Organisationβββ 04 Projectsβββ 05 IAMβββ 06 Service Accountsβββ 07 Computeβββ 08 Networkβββ 09 Storageβββ 10 Secretsβββ 11 Serverlessβββ 12 Loggingβββ 13 Attack Pathsβββ 14 Evidenceβββ 15 Findingsβββ 16 Reportβββ 17 RetestInside 01 Engagement create:
Scope.mdRules-of-Engagement.mdObjectives.mdTesting-Notes.mdPhase 02 β Document Scope
Section titled βPhase 02 β Document ScopeβCreate:
Cloud Provider:Google Cloud
Environment:CloudNova
Organisation:<ORG-ID>
Folders:<AUTHORISED-FOLDERS>
Projects:<AUTHORISED-PROJECTS>
Starting Identity:<IDENTITY>
In Scope:IAMService AccountsCompute EngineCloud StorageSecret ManagerServerlessNetworkingLoggingApproved Resources
Out of Scope:Other OrganisationsThird-Party ProjectsDoSDestructive ActionsUnapproved ResourcesPhase 03 β Establish Your Current Identity
Section titled βPhase 03 β Establish Your Current IdentityβYour first question should again be:
Who am I?
In the authorised CloudNova environment:
gcloud auth listReview the active identity.
You can also inspect configuration:
gcloud config listRecord:
Active Account
Current Project
Region
Zone
ConfigurationCreate:
Evidence ID:GCP-EV-001Phase 04 β Understand the GCP Resource Hierarchy
Section titled βPhase 04 β Understand the GCP Resource HierarchyβGoogle Cloud commonly follows:
Organisation βFolder βSubfolder βProject βResourceExample:
cloudnova.labββββ Productionβ βββ Web Projectβ βββ Data Projectββββ Developmentβ βββ Dev Projectββββ Security βββ Logging ProjectThis hierarchy matters because IAM permissions can be inherited.
Phase 05 β IAM Inheritance
Section titled βPhase 05 β IAM InheritanceβSuppose a group receives a role at:
OrganisationThat permission may affect resources below it.
Similarly:
Folder βProject AProject BProject CA folder-level IAM assignment may influence multiple projects.
Therefore:
Never assess Google Cloud IAM only at the individual resource level.
Phase 06 β Discover Projects
Section titled βPhase 06 β Discover ProjectsβWhere authorised:
gcloud projects listCreate:
| Project | Project ID | Purpose | Criticality | In Scope |
|---|---|---|---|---|
| Web | cloudnova-web | Application | High | Yes |
| Data | cloudnova-data | Data | Critical | Yes |
| Dev | cloudnova-dev | Development | Medium | Yes |
| Security | cloudnova-security | Logging | Critical | Yes |
Do not interact with projects outside the authorised scope.
Phase 07 β Set Project Context
Section titled βPhase 07 β Set Project ContextβFor a specific authorised project:
gcloud config set project <PROJECT-ID>Then confirm:
gcloud config get-value projectAlways know which project you are operating against.
Phase 08 β Build the Initial Architecture
Section titled βPhase 08 β Build the Initial ArchitectureβExample:
Google Cloud Organisation β βββ Production β β β βββ cloudnova-web β β βββ Compute β β β βββ cloudnova-data β βββ Storage β βββ Secrets β βββ Development β βββ cloudnova-dev β βββ Security βββ cloudnova-security βββ LoggingThis will evolve throughout the project.
Phase 09 β Inventory Compute Resources
Section titled βPhase 09 β Inventory Compute ResourcesβFor an authorised project:
gcloud compute instances listCreate:
| Instance | Project | Zone | Public IP | Service Account | Purpose |
|---|---|---|---|---|---|
| web01 | cloudnova-web | zone-a | Yes | web-sa | Web |
| app01 | cloudnova-web | zone-a | No | app-sa | Application |
| admin01 | cloudnova-security | zone-b | No | admin-sa | Management |
Phase 10 β Inventory Cloud Storage
Section titled βPhase 10 β Inventory Cloud StorageβWhere permitted:
gcloud storage buckets listCreate:
| Bucket | Project | Purpose | Exposure | Criticality |
|---|---|---|---|---|
| app-data | Data | Application | Unknown | High |
| backups | Data | Backup | Unknown | Critical |
| public-assets | Web | Static assets | Public? | Low |
Unknown values are acceptable at this stage.
You are building an inventoryβnot making conclusions.
Phase 11 β Inventory Service Accounts
Section titled βPhase 11 β Inventory Service AccountsβUse:
gcloud iam service-accounts listRecord:
Service Account Name
Email
Project
Purpose
Associated Workload
Known RolesCreate:
| Service Account | Project | Workload | Privilege |
|---|---|---|---|
| web-sa | Web | WEB01 | Unknown |
| app-sa | Web | APP01 | Unknown |
| processor-sa | Data | Serverless | Unknown |
Phase 12 β Why Service Accounts Matter
Section titled βPhase 12 β Why Service Accounts MatterβA service account represents a machine or workload identity.
Conceptually:
Application βService Account βIAM Role βCloud ResourceA human user might have limited permissions but control a workload using a powerful service account.
This creates:
Human Identity βWorkload Control βService Account βHigher PrivilegePhase 13 β Build the Identity Inventory
Section titled βPhase 13 β Build the Identity InventoryβInclude:
Human Users
Groups
Service Accounts
Workload Identities
Automation IdentitiesExample:
| Identity | Type | Project | Purpose | Privileged |
|---|---|---|---|---|
| student | Human | Dev | Development | No |
| Developers | Group | Dev | Development | Review |
| app-sa | Service Account | Web | Application | Review |
| security-sa | Service Account | Security | Logging | High |
Phase 14 β Review Project IAM
Section titled βPhase 14 β Review Project IAMβWhere authorised:
gcloud projects get-iam-policy <PROJECT-ID>For easier review:
gcloud projects get-iam-policy <PROJECT-ID> \ --format="table(bindings.role,bindings.members)"Record:
Principal
Role
Scope
Project
Inherited?
PurposePhase 15 β IAM Binding Model
Section titled βPhase 15 β IAM Binding ModelβThink of every binding as:
Principal βRole βPermissions βScope βResourceDo not stop at:
User has Role XAsk:
What can that role actually influence?
Phase 16 β Build the IAM Matrix
Section titled βPhase 16 β Build the IAM MatrixβCreate:
| Principal | Role | Scope | Resource | Security Question |
|---|---|---|---|---|
| Developers | Viewer | Dev | Project | Recon only? |
| student | CustomAppManager | Web | Project | Workload control? |
| app-sa | Secret Accessor | Data | Secret | Required? |
| automation-sa | Editor | Web | Project | Too broad? |
Phase 17 β Built-In Roles
Section titled βPhase 17 β Built-In RolesβBe familiar with concepts such as:
Viewer
Editor
OwnerModern environments also use many service-specific roles.
The important principle is:
Role names are only labels. Effective permissions determine security impact.
Phase 18 β Custom Roles
Section titled βPhase 18 β Custom RolesβWhere authorised, review custom roles.
Ask:
Which Permissions?
Which Scope?
Which Principals?
Why Does the Role Exist?
Can It Modify Workloads?
Can It Manage IAM?
Can It Access Secrets?
Can It Control Service Accounts?Phase 19 β Permission Categories
Section titled βPhase 19 β Permission CategoriesβClassify important permissions into:
Read
Write
Resource Creation
Resource Modification
IAM Modification
Service Account Control
Credential Management
Secret Access
Network Modification
Logging ModificationPay particular attention to:
Service Account Controlbecause it can bridge identities.
Phase 20 β Service Account IAM Policies
Section titled βPhase 20 β Service Account IAM PoliciesβFor an authorised service account:
gcloud iam service-accounts get-iam-policy \ <SERVICE-ACCOUNT-EMAIL>Ask:
Who Can Use This Identity?
Who Can Manage This Identity?
Who Can Change Its Policy?
Which Workloads Use It?
What Permissions Does It Have?Phase 21 β Two Sides of Service Account Security
Section titled βPhase 21 β Two Sides of Service Account SecurityβAlways analyse:
Who Can Become / Use the Service Account?and:
What Can the Service Account Do?These are different questions.
Conceptually:
Developer βCan Use βService Account βHas Access To βSensitive ResourcePhase 22 β Service Account Impersonation Concept
Section titled βPhase 22 β Service Account Impersonation ConceptβGoogle Cloud supports authorised service account impersonation.
From a security perspective, examine:
Human Identity βImpersonation Permission βService Account βEffective PermissionsDo not assume service-account impersonation is insecure.
It is often preferable to static credentials.
The issue is:
Who is allowed to impersonate which service account, and what privilege does that service account possess?
Phase 23 β Create the Hypothesis Register
Section titled βPhase 23 β Create the Hypothesis RegisterβExample:
| ID | Hypothesis | Evidence Needed | Status |
|---|---|---|---|
| GCP-H-001 | Developer may use privileged app service account | SA IAM | Investigate |
| GCP-H-002 | app-sa may access sensitive secrets | IAM binding | Investigate |
| GCP-H-003 | Data bucket may be broadly readable | Storage IAM | Investigate |
| GCP-H-004 | Workload may have unnecessary network exposure | Firewall | Investigate |
A hypothesis is not a finding.
Phase 24 β Workload Control Analysis
Section titled βPhase 24 β Workload Control AnalysisβSuppose:
student βCan Modify βAPP01APP01 uses:
app-saand:
app-sa βSecret Access βproduction-secretPotential path:
student βAPP01 Control βapp-sa βSecret AccessThis relationship deserves investigation.
Phase 25 β Compute Engine Assessment
Section titled βPhase 25 β Compute Engine AssessmentβFor each instance assess:
Project
Zone
Public IP
Private IP
Firewall Exposure
Service Account
Access Scope
Labels
Purpose
Administrative AccessPhase 26 β Inspect a VM
Section titled βPhase 26 β Inspect a VMβWhere authorised:
gcloud compute instances describe <INSTANCE-NAME> \ --zone <ZONE>Pay particular attention to:
serviceAccountsand network configuration.
Phase 27 β Compute Identity Map
Section titled βPhase 27 β Compute Identity MapβBuild:
WEB01 βweb-sa βIAM Roles βCloud Resourcesand:
APP01 βapp-sa βSecrets / StoragePhase 28 β Compute Security Questions
Section titled βPhase 28 β Compute Security QuestionsβAsk:
Does the Instance Need a Public IP?
Which Firewall Rules Reach It?
Which Service Account Is Attached?
Does the Workload Need Those Permissions?
Who Can Modify the Instance?
Who Can Administer It?
Can It Reach Sensitive Internal Resources?Phase 29 β Network Inventory
Section titled βPhase 29 β Network InventoryβList firewall rules:
gcloud compute firewall-rules listCreate:
| Rule | Source | Target | Port | Expected? |
|---|---|---|---|---|
| allow-web | Internet | web | 443 | Yes |
| allow-admin | Internet | admin | 22 | Review |
| allow-app | web | app | 8080 | Yes |
Phase 30 β Network Exposure Analysis
Section titled βPhase 30 β Network Exposure AnalysisβAsk:
What Is Internet Facing?
Why?
Which Protocols?
Which Sources?
Which Workloads?
Could Exposure Be Reduced?Phase 31 β Firewall Rules and Identity
Section titled βPhase 31 β Firewall Rules and IdentityβDo not analyse networking separately from IAM.
Example:
Internet βWEB01 βweb-sa βCloud ResourcesA network-exposed workload carrying a powerful identity can increase the potential blast radius.
Phase 32 β VPC Architecture
Section titled βPhase 32 β VPC ArchitectureβMap:
VPCββββ Web Subnetββββ Application Subnetββββ Management SubnetThen map trust:
Internet βWeb βApplication βDataAsk whether each transition is intentional.
Phase 33 β Cloud Storage Assessment
Section titled βPhase 33 β Cloud Storage AssessmentβFor an authorised bucket:
gcloud storage buckets describe gs://<BUCKET-NAME>Review:
IAM
Public Access Prevention
Uniform Bucket-Level Access
Encryption
Versioning
Retention
Logging
LocationPhase 34 β Review Bucket IAM
Section titled βPhase 34 β Review Bucket IAMβWhere permitted:
gcloud storage buckets get-iam-policy gs://<BUCKET-NAME>Ask:
Who Can Read?
Who Can Write?
Who Can Delete?
Is Anonymous Access Present?
Are Service Accounts Overprivileged?
Is Access Cross-Project?Phase 35 β Public Access
Section titled βPhase 35 β Public AccessβPublic access is not automatically a vulnerability.
Example:
public-assetsmay intentionally host public website assets.
The real questions are:
Is Public Access Intended?
Is Sensitive Data Present?
Is Write Access Public?
Could Sensitive Data Be Added Accidentally?Phase 36 β Storage Finding Example
Section titled βPhase 36 β Storage Finding ExampleβGCP-001 β Application Service Account Has Excessive Access to Sensitive Cloud Storage
Section titled βGCP-001 β Application Service Account Has Excessive Access to Sensitive Cloud StorageβObservation
Section titled βObservationβThe service account assigned to an application workload has access to a storage resource beyond its documented business requirement.
Compromise of the application workload could expand into unauthorised access to unrelated cloud data.
Root Cause
Section titled βRoot CauseβExcessive permissions assigned to the workload identity.
Recommendation
Section titled βRecommendationβRestrict the service account to the minimum required storage resources and operations.
Phase 37 β Secret Manager Discovery
Section titled βPhase 37 β Secret Manager DiscoveryβWhere permitted:
gcloud secrets listStart with metadata.
Do not automatically retrieve secret values.
Phase 38 β Secret Manager Questions
Section titled βPhase 38 β Secret Manager QuestionsβAsk:
Which Secrets Exist?
Which Workloads Use Them?
Which Identities Can Access Them?
Which Identities Can Modify Them?
Who Can Change IAM?
Are Secrets Shared Across Applications?Phase 39 β Secret Access as an Attack Transition
Section titled βPhase 39 β Secret Access as an Attack TransitionβExample:
APP01 βapp-sa βSecret Access βDatabase Credential βDatabaseThe finding is not simply:
Service account can read secret.
The important question is:
Should this workload have access to the system protected by that secret?
Phase 40 β Avoid Unnecessary Secret Retrieval
Section titled βPhase 40 β Avoid Unnecessary Secret RetrievalβIf IAM evidence already demonstrates access:
Permission Evidence βPotential Impactmay be sufficient.
If CloudNova specifically requires validation, retrieve only an approved synthetic marker and handle it according to the lab instructions.
Phase 41 β Serverless Discovery
Section titled βPhase 41 β Serverless DiscoveryβGoogle Cloud environments may include services such as:
Cloud Run
Cloud FunctionsWhere authorised, inventory relevant workloads.
For example:
gcloud run services listPhase 42 β Serverless Security Model
Section titled βPhase 42 β Serverless Security ModelβThink:
Internet / Internal Caller β Cloud Run β Service Account β IAM Permissions β ResourcesPhase 43 β Serverless Questions
Section titled βPhase 43 β Serverless QuestionsβAsk:
Is the Service Public?
Who Can Invoke It?
Which Service Account Does It Use?
Who Can Modify the Service?
What Environment Configuration Exists?
Which Secrets Can It Access?
What Network Access Exists?Phase 44 β Workload Identity Risk
Section titled βPhase 44 β Workload Identity RiskβSuppose:
Developer βCan Deploy βCloud Run Service βRuns As βprocessor-sa βSensitive Data AccessPotential attack path:
Developer βDeployment Control βPrivileged Workload βService Account βSensitive ResourcePhase 45 β Service Account Keys
Section titled βPhase 45 β Service Account KeysβService accounts can historically use static key material.
From a security perspective ask:
Do User-Managed Keys Exist?
Are They Necessary?
How Old Are They?
Where Are They Stored?
Can Workload Identity or Federation Replace Them?Long-lived credentials increase operational risk.
Prefer managed identity mechanisms where possible.
Phase 46 β Key Management Principle
Section titled βPhase 46 β Key Management PrincipleβThink:
Long-Lived Static Credential β Theft / Leakage Riskversus:
Managed / Federated Identity β Short-Lived CredentialsThis does not make federated identity automatically secure.
IAM relationships still matter.
Phase 47 β Cross-Project Access
Section titled βPhase 47 β Cross-Project AccessβGoogle Cloud environments frequently separate resources across projects.
Example:
cloudnova-web βapp-sa βcloudnova-data βStorageDocument:
Source Project
Identity
Target Project
Role
Target Resource
Business RequirementPhase 48 β Cross-Project Attack Paths
Section titled βPhase 48 β Cross-Project Attack PathsβExample:
Developer βControls Workload βapp-sa βCross-Project Role βData Project βSensitive StorageCross-project relationships can make privilege paths difficult to see without graph-based analysis.
Phase 49 β Organisation-Level IAM
Section titled βPhase 49 β Organisation-Level IAMβWhere the lab exposes organisation-level information, review it carefully.
Ask:
Which Roles Exist at Organisation Scope?
Which Groups Receive Them?
Are Permissions Inherited?
Do Development Identities Receive Enterprise-Wide Visibility?
Are Privileged Roles Centrally Governed?Phase 50 β Folder-Level IAM
Section titled βPhase 50 β Folder-Level IAMβFolder permissions can influence multiple projects.
Example:
Production Folder βSecurity Admin Group βProjects A / B / CThis may be intentional.
Your task is to evaluate whether:
Privilege =Business RequirementPhase 51 β IAM Inheritance Map
Section titled βPhase 51 β IAM Inheritance MapβCreate:
Organisationββββ Role A β Security Groupββββ Production Folder β βββ Role B β Platform Team β βββ Web Project β βββ Role C β Developers β βββ Data Project βββ Role D β app-saPhase 52 β Effective Permission Thinking
Section titled βPhase 52 β Effective Permission ThinkingβA principalβs real privilege may come from:
Organisation Binding +Folder Binding +Project Binding +Resource Binding =Effective AccessDo not review these independently.
Phase 53 β Build the Identity Graph
Section titled βPhase 53 β Build the Identity GraphβExample:
student β βββ Developers β βββ Workload Manager β cloudnova-web β β APP01 β β app-sa β ββββββββββββββββ΄ββββββββββββββ β β Secret Access Storage Access β β Data Project Data ProjectPhase 54 β Identify Privilege Choke Points
Section titled βPhase 54 β Identify Privilege Choke PointsβPotential choke points:
Developers Workload Role
APP01 Control
app-sa
Cross-Project IAM Binding
Secret Manager RoleAsk:
Which single control change breaks the largest number of dangerous paths?
Phase 55 β Attack Path 01
Section titled βPhase 55 β Attack Path 01βExample:
student βDevelopers Group βWorkload Modification βAPP01 βapp-sa βSensitive StorageDocument every transition.
Phase 56 β Attack Path 02
Section titled βPhase 56 β Attack Path 02βExample:
Developer βServerless Deployment βCloud Run βprocessor-sa βSecret Manager βSensitive ServicePhase 57 β Attack Path 03
Section titled βPhase 57 β Attack Path 03βExample:
Low-Privilege Identity βService Account Usage Permission βPrivileged Service Account βCross-Project Role βCritical Data ProjectAgain, only mark this as validated when the actual IAM relationships support it.
Phase 58 β Attack Path Register
Section titled βPhase 58 β Attack Path RegisterβCreate:
| Path | Start | Transition | Critical Resource | Status | Risk |
|---|---|---|---|---|---|
| GCP-AP-001 | student | APP01 β app-sa | Storage | Validated | High |
| GCP-AP-002 | developer | Cloud Run β processor-sa | Secret | Investigate | TBD |
| GCP-AP-003 | user | Service account relationship | Data project | Validated | High |
Phase 59 β Controlled Validation
Section titled βPhase 59 β Controlled ValidationβFor every hypothesis:
Hypothesis βConfiguration Evidence βEnough? / \ Yes No β βStop Minimal Safe Validation β Evidence β StopDo not continue simply because additional access is technically possible.
Phase 60 β Logging Assessment
Section titled βPhase 60 β Logging AssessmentβImportant Google Cloud telemetry may include:
Cloud Audit Logs
Admin Activity Logs
Data Access Logs
System Event Logs
Policy Denied Logs
Cloud Logging
Security Command CenterPhase 61 β Audit Log Questions
Section titled βPhase 61 β Audit Log QuestionsβAsk:
Are Administrative Actions Logged?
Are IAM Changes Logged?
Are Service Account Actions Logged?
Are Secret Access Events Visible?
Are Sensitive Data Access Events Logged?
Are Logs Centralised?
Who Can Modify Logging?
Who Can Delete Logs?Phase 62 β Logging Governance
Section titled βPhase 62 β Logging GovernanceβA security-sensitive identity should not unnecessarily possess the ability to:
Reduce Logging
Delete Logs
Change Log Destinations
Disable Security VisibilityDo not modify logging during the assessment.
Phase 63 β Detection Analysis
Section titled βPhase 63 β Detection AnalysisβFor each attack path ask:
Attack Step βWhich GCP Event? βWhich Log? βWhich Detection? βWhich Alert?Example:
IAM Policy Change βAudit Log βSecurity Detection βSOC InvestigationPhase 64 β Evidence Register
Section titled βPhase 64 β Evidence RegisterβCreate:
GCP-EV-001Current identity
GCP-EV-002Project inventory
GCP-EV-003Project IAM policy
GCP-EV-004Service account inventory
GCP-EV-005Service account IAM relationship
GCP-EV-006Compute workload identity
GCP-EV-007Storage IAM
GCP-EV-008Secret Manager IAM
GCP-EV-009Firewall configuration
GCP-EV-010Controlled validationPhase 65 β Evidence Template
Section titled βPhase 65 β Evidence TemplateβUse:
Evidence ID:GCP-EV-006
Timestamp:<DATE/TIME>
Project:cloudnova-web
Resource:APP01
Observation:APP01 operates using app-sa.
Security Relevance:The service account has access to resourcesoutside the workload's documented requirement.
Attack Path:GCP-AP-001
Sensitive Data Collected:NonePhase 66 β Finding Example 01
Section titled βPhase 66 β Finding Example 01βGCP-001 β Developer Workload Control Creates an Indirect Path to a Privileged Service Account
Section titled βGCP-001 β Developer Workload Control Creates an Indirect Path to a Privileged Service AccountβObservation
Section titled βObservationβA development identity can control an application workload operating with a service account possessing permissions beyond those granted directly to the developer.
Attack Scenario
Section titled βAttack ScenarioβCompromise of the development identity could allow an attacker to influence the workload and potentially exercise permissions available to the attached service account.
This could expand compromise from a development project into sensitive Google Cloud resources.
Root Cause
Section titled βRoot CauseβInsufficient separation between workload-management privileges and workload identity permissions.
Recommendation
Section titled βRecommendationβRestrict modification rights over privileged workloads and reduce the service account to the minimum permissions required.
Phase 67 β Finding Example 02
Section titled βPhase 67 β Finding Example 02βGCP-002 β Service Account Has Excessive Cross-Project Storage Access
Section titled βGCP-002 β Service Account Has Excessive Cross-Project Storage AccessβObservation
Section titled βObservationβAn application service account possesses access to a sensitive Cloud Storage resource located in another project without a documented operational requirement.
Compromise of the application workload could expose data beyond the applicationβs intended security boundary.
Recommendation
Section titled βRecommendationβRemove unnecessary cross-project IAM bindings and implement resource-specific least privilege.
Phase 68 β Finding Example 03
Section titled βPhase 68 β Finding Example 03βGCP-003 β Service Account Usage Permission Is Assigned Too Broadly
Section titled βGCP-003 β Service Account Usage Permission Is Assigned Too BroadlyβObservation
Section titled βObservationβA principal or group can use a higher-privilege service account beyond its documented operational requirements.
The relationship may allow a lower-privileged identity to inherit capabilities available to the service account.
Recommendation
Section titled βRecommendationβRestrict service-account usage to explicitly approved workloads and administrators.
Phase 69 β Finding Example 04
Section titled βPhase 69 β Finding Example 04βGCP-004 β Administrative Workload Is Exposed to Broad Network Sources
Section titled βGCP-004 β Administrative Workload Is Exposed to Broad Network SourcesβObservation
Section titled βObservationβA management service is reachable from network sources broader than operationally required.
Broad exposure increases the attack surface of a workload carrying security-sensitive cloud permissions.
Recommendation
Section titled βRecommendationβRestrict management access to trusted administrative paths and review the workload identityβs effective permissions.
Phase 70 β Finding Example 05
Section titled βPhase 70 β Finding Example 05βGCP-005 β Serverless Workload Uses an Overprivileged Service Account
Section titled βGCP-005 β Serverless Workload Uses an Overprivileged Service AccountβObservation
Section titled βObservationβA serverless workload operates using a service account with permissions extending beyond its application requirements.
Compromise or misuse of the workload could provide access to unrelated Google Cloud services.
Recommendation
Section titled βRecommendationβCreate a dedicated least-privilege service account for the workload.
Phase 71 β Finding Example 06
Section titled βPhase 71 β Finding Example 06βGCP-006 β Long-Lived Service Account Credential Increases Credential Exposure Risk
Section titled βGCP-006 β Long-Lived Service Account Credential Increases Credential Exposure RiskβObservation
Section titled βObservationβA workload or automation process relies on long-lived service account credential material where managed or federated identity could be used.
Exposure of the credential could provide persistent access until the credential is revoked.
Recommendation
Section titled βRecommendationβReplace long-lived credentials with managed, federated, or short-lived identity mechanisms wherever operationally feasible.
Phase 72 β Positive Security Observations
Section titled βPhase 72 β Positive Security ObservationsβDocument what works.
Examples:
Sensitive Buckets Not Public β
Public Access Prevention Enabled β
Dedicated Service Accounts β
Audit Logging Enabled β
Administrative VM Has No Public IP β
Production and Development Separated βPhase 73 β Root Cause Analysis
Section titled βPhase 73 β Root Cause AnalysisβLook for systemic themes such as:
Overprivileged Service Accounts
Broad IAM Scope
Weak Workload Identity Governance
Cross-Project Trust Sprawl
Excessive Developer Control
Long-Lived Credentials
Weak Network Segmentation
Inconsistent Logging GovernancePhase 74 β Risk Prioritisation
Section titled βPhase 74 β Risk PrioritisationβConsider:
Starting Privilege
IAM Scope
Workload Control
Service Account Privilege
Cross-Project Reach
Data Sensitivity
Network Exposure
Detection Coverage
Business ImpactPhase 75 β Remediation Priorities
Section titled βPhase 75 β Remediation PrioritiesβImmediate
Section titled βImmediateβBreak validated critical identity paths
Remove unnecessary cross-project access
Reduce excessive service account privilege
Restrict exposed management services
Remove unnecessary long-lived credentialsShort Term
Section titled βShort TermβReview service account IAM
Review project IAM
Review inherited permissions
Review serverless identities
Improve network segmentation
Review Secret Manager accessStrategic
Section titled βStrategicβWorkload Identity Governance
Service Account Lifecycle Management
IAM Access Reviews
Organisation Policy Governance
Centralised Logging
Privileged Access Governance
Continuous Attack-Path AnalysisPhase 76 β Remediation Matrix
Section titled βPhase 76 β Remediation MatrixβCreate:
| Finding | Immediate | Strategic | Owner |
|---|---|---|---|
| GCP-001 | Restrict workload control | Separation of duties | Platform |
| GCP-002 | Remove storage access | Cross-project IAM governance | IAM |
| GCP-003 | Restrict SA usage | Service account governance | Security |
| GCP-004 | Restrict firewall | Secure management network | Network |
| GCP-005 | Create dedicated SA | Workload IAM baseline | DevOps |
| GCP-006 | Replace static key | Workload identity federation | IAM |
Phase 77 β Retesting
Section titled βPhase 77 β RetestingβBefore:
Developer βAPP01 βapp-sa βSensitive StorageAfter remediation:
Developer βRequired APP01 Control β
APP01 βDedicated Least-Privilege SA βRequired Application Data β
APP01 βSensitive Unrelated Storage XPhase 78 β Retest Status
Section titled βPhase 78 β Retest StatusβUse:
Resolved
Partially Resolved
Not Resolved
Risk AcceptedVerify effective access rather than merely checking whether the policy text changed.
Phase 79 β Final Architecture Diagram
Section titled βPhase 79 β Final Architecture DiagramβYour final diagram may resemble:
Google Cloud Organisation β βββββββββββββββΌβββββββββββββββ β β β Production Development Security β β β ββββββββ΄βββββββ β β β β β Logging Project Web Project Data Project β β βββββ΄ββββ ββββ΄ββββββββββ β β β β WEB01 APP01 Storage Secrets β β β β web-sa app-sa β ββββββββββββ Data ProjectAdd IAM relationships:
student βDevelopers βWorkload Control βAPP01 βapp-sa βCross-Project Access βSensitive StoragePhase 80 β Final Attack Narrative
Section titled βPhase 80 β Final Attack NarrativeβA professional narrative might read:
The assessment began with an authorised low-privileged Google Cloud identity. Project and IAM analysis identified that the identity could manage an application workload through permissions assigned to the development team. The affected workload operated using a service account with access to a sensitive storage resource in a separate data project. This created an indirect privilege path in which compromise of the development identity could potentially extend into data outside the developerβs direct permission boundary. The path resulted from the combination of workload-control permissions, an overprivileged service account, and cross-project IAM access.
This is stronger than:
The service account is vulnerable.
Phase 81 β Enterprise GCP Report Structure
Section titled βPhase 81 β Enterprise GCP Report StructureβCreate:
Enterprise Google Cloud Penetration Testing Report
1. Executive Summary
2. Engagement Objectives
3. Scope
4. Rules of Engagement
5. Organisation Overview
6. Folder & Project Architecture
7. Methodology
8. Asset Inventory
9. IAM Assessment
10. IAM Inheritance Analysis
11. Service Account Assessment
12. Workload Identity Assessment
13. Compute Assessment
14. Network Security Assessment
15. Cloud Storage Assessment
16. Secret Manager Assessment
17. Serverless Security Assessment
18. Logging & Detection Assessment
19. Cross-Project Trust Analysis
20. Attack Paths
21. Validated Findings
22. Positive Security Observations
23. Root Cause Themes
24. Remediation Roadmap
25. Retest Plan
26. Evidence AppendixPhase 82 β Executive Summary Questions
Section titled βPhase 82 β Executive Summary QuestionsβYour executive summary should answer:
What Was Tested?
Which Projects Were Assessed?
Which Identity Relationships Matter Most?
Could Low Privilege Expand?
Could Workload Control Lead to Higher Privilege?
Were Cross-Project Boundaries Effective?
Which Sensitive Resources Were Reachable?
Which Controls Worked?
Which Controls Failed?
What Should Be Fixed First?Phase 83 β Final Project Deliverables
Section titled βPhase 83 β Final Project DeliverablesβComplete:
Project 03 - Enterprise GCP Pentest/ββββ 01 Engagementβ βββ Scope.mdβ βββ Rules-of-Engagement.mdβ βββ Objectives.mdββββ 02 Architectureβ βββ Initial-GCP-Architecture.mdβ βββ Final-GCP-Architecture.mdββββ 03 Organisationβ βββ Organisation-Hierarchy.mdβ βββ Folder-Inventory.mdββββ 04 Projectsβ βββ Project-Inventory.mdββββ 05 IAMβ βββ IAM-Binding-Matrix.mdβ βββ IAM-Inheritance-Map.mdβ βββ Custom-Role-Review.mdββββ 06 Service Accountsβ βββ Service-Account-Inventory.mdβ βββ Service-Account-IAM.mdβ βββ Workload-Identity-Map.mdββββ 07 Computeβ βββ Compute-Assessment.mdββββ 08 Networkβ βββ Firewall-Matrix.mdββββ 09 Storageβ βββ Cloud-Storage-Assessment.mdββββ 10 Secretsβ βββ Secret-Manager-Assessment.mdββββ 11 Serverlessβ βββ Serverless-Assessment.mdββββ 12 Loggingβ βββ Logging-Assessment.mdββββ 13 Attack Pathsβ βββ Attack-Path-Register.mdββββ 14 Evidenceβ βββ Evidence-Register.mdββββ 15 Findingsβ βββ Findings-Register.mdββββ 16 Reportβ βββ Enterprise-GCP-Pentest-Report.mdββββ 17 Retest βββ Retest-Report.mdPhase 84 β Student Submission Checklist
Section titled βPhase 84 β Student Submission ChecklistβENGAGEMENT
[ ] Scope documented[ ] Starting identity documented[ ] Authorised projects documented[ ] Rules of engagement understood[ ] Stop conditions understood
ORGANISATION
[ ] Organisation hierarchy understood[ ] Folders mapped where visible[ ] Projects inventoried[ ] Project boundaries understood
IAM
[ ] Project IAM reviewed[ ] Relevant inherited IAM identified[ ] Human identities mapped[ ] Groups mapped[ ] Roles reviewed[ ] Custom roles reviewed where applicable[ ] Effective permissions analysed
SERVICE ACCOUNTS
[ ] Service accounts inventoried[ ] Workloads mapped to service accounts[ ] Service account IAM reviewed[ ] Service account usage relationships reviewed[ ] Excessive permissions identified[ ] Cross-project access reviewed[ ] Long-lived credentials reviewed where applicable
COMPUTE
[ ] Compute instances inventoried[ ] Public exposure reviewed[ ] Service accounts identified[ ] Administrative exposure reviewed[ ] Workload-control relationships analysed
NETWORK
[ ] VPC architecture understood[ ] Firewall rules reviewed[ ] Internet exposure reviewed[ ] Administrative paths reviewed[ ] Segmentation considered
STORAGE
[ ] Buckets inventoried[ ] Bucket IAM reviewed[ ] Public access reviewed[ ] Sensitive-data context considered[ ] Cross-project access reviewed[ ] Encryption/versioning considered
SECRETS
[ ] Secrets inventoried where authorised[ ] Secret access IAM reviewed[ ] Workload relationships reviewed[ ] No unnecessary secret values collected
SERVERLESS
[ ] Serverless workloads inventoried[ ] Invocation exposure reviewed[ ] Service accounts reviewed[ ] Deployment control reviewed[ ] Sensitive-resource relationships analysed
LOGGING
[ ] Audit logging reviewed[ ] Administrative activity visibility considered[ ] IAM activity visibility considered[ ] Sensitive-resource telemetry considered[ ] Logging modification privilege reviewed
ATTACK PATHS
[ ] Hypotheses documented[ ] Hypotheses separated from findings[ ] Identity graph built[ ] Workload identity paths analysed[ ] Cross-project paths analysed[ ] Minimum necessary validation followed[ ] Remediation choke points identified
REPORTING
[ ] Evidence register completed[ ] Findings register completed[ ] Positive controls documented[ ] Root causes identified[ ] Remediation prioritised[ ] Final report completed[ ] Retest plan completedPhase 85 β Skills You Should Demonstrate
Section titled βPhase 85 β Skills You Should DemonstrateβAfter completing this project, you should be able to explain:
How do you begin a Google Cloud penetration test?
How does the Google Cloud resource hierarchy work?
How does IAM inheritance affect security?
Why must organisation, folder, project, and resource IAM be considered together?
What is a Google Cloud service account?
Why are service accounts important during penetration testing?
What is the security significance of service account impersonation?
How can workload control create indirect privilege?
How can cross-project IAM create attack paths?
How do you assess Compute Engine workload identity?
How do you evaluate Cloud Storage permissions?
How do you assess Secret Manager access?
How do serverless workloads interact with service accounts?
Why should long-lived service account credentials be minimised?
How do network exposure and workload identity combine to affect risk?
How do you build a GCP identity attack graph?
How do you safely validate a GCP privilege path?
Phase 86 β Interview Story
Section titled βPhase 86 β Interview StoryβYou should now be able to explain this project professionally:
In a CloudNova Google Cloud enterprise lab, I started with a low-privileged identity and mapped the organisation, projects, workloads, IAM bindings, and service accounts. I identified that a development identity could control an application workload using a service account with cross-project access to sensitive synthetic storage. I mapped the relationship from the human identity through workload control and service-account privilege into the data project, validated only the minimum evidence required, and documented the complete attack path. I recommended reducing the service accountβs privilege, narrowing cross-project IAM, and separating workload administration from privileged machine identities.
This demonstrates:
Google Cloud IAM +Service Account Security +Workload Identity +Cross-Project Trust +Attack-Path Analysis +Professional ReportingKey Takeaways
Section titled βKey TakeawaysβProject 03 is about learning to think of Google Cloud as an interconnected identity, workload, and resource graph.
Remember:
Start with the active identity and project context.
Understand the resource hierarchy before analysing permissions.
IAM inheritance can make higher-level permissions more important than individual resource bindings.
Service accounts are security principals, not merely application configuration.
Always ask both who can use a service account and what that service account can do.
A developer may indirectly obtain higher privilege by controlling a workload using a powerful service account.
Cross-project IAM can create hidden enterprise attack paths.
Workload identity should be analysed together with workload control.
Static service account credentials increase credential-management risk.
Cloud Storage exposure must be evaluated in business context.
Secret access may represent an intermediate step toward another system.
Serverless workloads can carry powerful cloud identities.
Network exposure and identity privilege can combine to increase blast radius.
A hypothesis is not a validated finding.
Use the minimum necessary validation required to demonstrate risk.
Attack paths provide more security context than isolated permission findings.
Identify remediation choke points capable of breaking multiple paths.
Report security controls that worked as well as weaknesses.
Retest effective accessβnot merely changed configuration.
Your Google Cloud assessment methodology is:
Scope βEstablish Identity βMap Organisation βMap Folders βInventory Projects βInventory Resources βAnalyse IAM βAnalyse Inheritance βInventory Service Accounts βMap Workload Identities βAssess Compute βAssess Network βAssess Storage βAssess Secrets βAssess Serverless βAssess Logging βAnalyse Cross-Project Trust βBuild Identity Graph βDevelop Hypotheses βValidate Safely βBuild Attack Paths βCollect Evidence βAnalyse Business Risk βRecommend Controls βReport βRetestWhatβs Next?
Section titled βWhatβs Next?ββ‘οΈ Project 04 β Kubernetes & Container Enterprise Compromise Assessment
You have now assessed the three major cloud platforms:
AWS βIAM Roles & Workload Roles
Azure βEntra ID & Managed Identities
Google Cloud βIAM & Service AccountsIn Project 04, you will connect cloud security with the cloud-native application stack:
Application βContainer βPod βKubernetes Service Account βKubernetes RBAC βWorkload Identity βCloud IAM βSensitive Cloud ResourceYou will assess:
-
Kubernetes cluster architecture
-
Namespaces
-
Pods and workloads
-
Containers
-
Kubernetes RBAC
-
Service accounts
-
Secrets
-
Pod security
-
Network policies
-
Container privilege
-
Workload identities
-
Cloud IAM integration
-
Logging and detection
-
Cross-layer attack paths
The core question becomes:
Can an application or container security weakness cross Kubernetes trust boundaries and ultimately reach privileged cluster or cloud resources?