CanCreateWorkloadAs

Source can create a new compute resource bound to target identity (create + pass identity).

execution EXECUTION nature: derived walkable weight 1 high value
Identity  ── CanCreateWorkloadAs ──▸  Identity

Source types

Identity

Target types

Identity

States

ACTIVE CONDITIONAL POTENTIAL BLOCKED UNKNOWN

Derivation

naturederived

Rules that emit CanCreateWorkloadAs 48

amplify:CreateApp + iam:PassRole creates a new Amplify App bound to a chosen service role.
awsderived
Create a new API Gateway API with an integration bound to a passable credentials role, then invoke it - yields execution as that role.
awsderived
Create a new App Runner service bound to a passed instance role -> execute as it.
awsderived
Create an Auto Scaling group whose launch template/config runs instances as a chosen instance-profile role.
awsderived
Create/register Batch workload bound to a passed identity (create + pass).
awsderived
cloudformation:CreateStack + iam:PassRole(serviceRole to cloudformation.amazonaws.com): create a new stack bound to a chosen privileged service role and run arbitrary template code as it.
awsderived
Principal can create a CodeBuild project bound to a passed identity (create + PassRole).
awsderived
Create a new CodeDeploy deployment group with any passable role as the service role, creating a workload bound to a chosen identity.
awsderived
config:PutRemediationConfigurations + iam:PassRole sets the AutomationAssumeRole on a Config remediation configuration; when triggered, Config invokes SSM Automation as that role, yielding code execution as the passed role.
awsderived
datapipeline:CreatePipeline + iam:PassRole for a role (resourceRole passable to ec2.amazonaws.com) lets the principal spawn a new pipeline workload running as that role.
awsderived
iam:PassRole for a DAX service role + dax:CreateCluster creates a DAX cluster executing DynamoDB requests as the passed role - AWS-specific single-action PassRole pattern.
awsderived
RunInstances + PassRole -> launch an instance running as a chosen role, then read IMDS.
awsderived
Create a new ECS workload (task/service) bound to a passable task role.
awsderived
Create a new EMR cluster bound to a passable privileged JobFlowRole via RunJobFlow + iam:PassRole.
awsderived
Create a new Glue job bound to a passable privileged IAM role, then run it, to execute as that role.
awsderived
Create an interactive Glue Session bound to a passable role, then execute code inline via RunStatement to run as that role.
awsderived
Create a new image pipeline with an infrastructure configuration that uses a passable IAM role as its instance profile, then trigger a build to execute as that role.
awsderived
Create a new Lambda bound to any role passable to lambda, then invoke it.
awsderived
Creating a new MSK Connect connector bound to a passable execution role is CanCreateWorkloadAs: code in the connector runs as that role.
awsderived
Creating a new MSK Replicator bound to a passable execution role is CanCreateWorkloadAs: replication tasks run as that role.
awsderived
Create a new Redshift cluster (or Serverless namespace) with an attacker-chosen IAM role attached, then run queries as that role.
awsderived
s3:CreateJob + iam:PassRole for a privileged IAM role creates an S3 Batch Operations job that runs as that role - a CanCreateWorkloadAs pattern for S3 Batch.
awsderived
Create a new SageMaker compute resource (training/processing job, notebook, pipeline) bound to a passed privileged role - the canonical SageMaker PassRole privesc pattern.
awsderived
Create a new Automation document with attacker-controlled steps and bind a passable privileged role, yielding code execution as that role.
awsderived
Create a new State Manager association with a privileged role and attacker-controlled document parameters, yielding recurring scheduled code execution as that role.
awsderived
Register a Run Command / Automation task with a Maintenance Window, binding a privileged service role that the task will run as.
awsderived
Create a new Step Functions state machine bound to any role passable to states.amazonaws.com, then start an execution to run arbitrary Task states as that role.
awsderived
Deploy a NEW container group with a privileged user-assigned MI attached, run it, and execute as the MI.
azurederived
Attach a privileged managed identity to a new or existing Automation Account and trigger a runbook - equivalent to creating a new workload bound to that identity.
azurederived
Attach a privileged user-assigned MI to a controlled/new pool, add a startTask, and execute as the MI.
azurederived
Attach a privileged user-assigned MI to a controlled/new app or job, run it, and execute as the MI.
azurederived
Create a new Function app bound to a passable user-assigned MI, deploy code, execute as the MI.
azurederived
Create a new AML compute bound to a chosen user-assigned MI, then submit a job to it - execute as that MI.
azurederived
Attach a privileged user-assigned MI to a new/controlled SF app and deploy attacker code -> execute as the MI.
azurederived
Attach a privileged user-assigned MI to the workspace (CanAttachIdentity) + workspace gains a new ExecutesAs target -> all Spark/pipeline runs can mint tokens for the attached MI.
azurederived
Create a new Batch job whose VMs run as a passable SA (create + actAs).
gcpderived
Holding CanPassIdentity on a target SA plus composer.environments.create gives the principal the ability to create a Composer environment running as that SA.
gcpderived
Create a new Dataflow job whose workers run as a passable SA (dataflow.jobs.create + iam.serviceAccounts.actAs).
gcpderived
Create a new Dataproc cluster whose VMs run as a chosen SA (clusters.create + actAs); submit a job to execute code as that SA.
gcpderived
Create a serverless Dataproc Batch job bound to a passable SA; the job runs as that SA immediately on creation.
gcpderived
datafusion.instances.create + iam.serviceAccounts.actAs on a target SA: create a new Data Fusion instance whose pipelines execute as that SA.
gcpderived
actAs + compute.instances.create -> launch instance as the SA, read metadata token.
gcpderived
actAs + compute.instanceTemplates.create + MIG create/setInstanceTemplate -> MIG launches instances as the SA, read metadata token.
gcpderived
Create a new function bound to a passable SA (create + actAs).
gcpderived
container.nodePools.create + iam.serviceAccounts.actAs on a chosen SA => create a new node pool running as that SA; pods on those nodes read the node SA token via the metadata server (legacy metadata mode).
gcpderived
Create a Vertex AI custom training job / pipeline job / notebook execution job whose workers run as a passable SA (create + actAs). Job runs immediately on creation - no invoke step.
gcpderived
Create a Workbench notebook instance whose underlying GCE VM runs as a passable SA. The instance persists; accessing JupyterLab (notebooks.instances.use) executes code as the SA.
gcpderived
Create a new workflow bound to a passable SA (create + actAs) to execute code as that SA.
gcpderived
move · open · esc close