BatchJob
Batch/job execution unit.
class: Compute
Realizing resources
aws aws
| resource | scope | enumerate | required permissions |
|---|---|---|---|
aws:batch:job-queue |
regional | batch:DescribeJobQueues |
batch:DescribeJobQueues |
aws:glue:job |
regional | glue:GetJobs |
glue:GetJobs |
aws:sagemaker:processing-job |
regional | sagemaker:ListProcessingJobs |
sagemaker:ListProcessingJobs |
aws:sagemaker:training-job |
regional | sagemaker:ListTrainingJobs |
sagemaker:ListTrainingJobs |
aws:sagemaker:transform-job |
regional | sagemaker:ListTransformJobs |
sagemaker:ListTransformJobs |
gcp gcp
| resource | scope | enumerate | required permissions |
|---|---|---|---|
gcp:batch:job |
regional | batch.projects.locations.jobs.list |
batch.jobs.list |
azure azure
| resource | scope | enumerate | required permissions |
|---|---|---|---|
azure:batch:account |
global | arg:microsoft.batch/batchaccounts |
Microsoft.Batch/batchaccounts/read |
As edge source
CanDecryptCanDeleteDataCanExfiltrateCanNetworkReachCanReachPortCanReadCredentialCanReadDataCanReadSecretCanRetrieveTokenCanWriteDataContainsCredentialContainsResourceReferenceContainsSecretExecutesAsExposedToAccountExposedToInternetExposedToTenantExposesCredentialHasPolicyLocatedInPrivateReachabilityAs edge target
AttachedToAuthenticatesToCanAdministerCanAttachIdentityCanControlCanCreateCanDeleteCanDeployCanExecuteOnCanModifyCanModifyCodeCanModifyConfigurationCanModifyPolicyCanNetworkReachCanReachPortCanReadCanReplaceCanStartCanTakeOwnershipCanTriggerCanWriteContainsContainsResourceReferenceControlsHasPermissionPrivateReachabilityExposure sites
None.
Rules that touch BatchJob 27
Change an existing Glue job's RoleArn to a passed privileged role via glue:UpdateJob + iam:PassRole; the next run executes as the new role.
Overwrite the S3 object that a Glue job's ScriptLocation references (s3:PutObject), poisoning the ETL code; the next run executes as the job's IAM role.
Update a Glue job's ScriptLocation to an attacker-controlled S3 object, establishing the code-modify and trigger facts needed for can-execute-as derivation.
A Glue job's DefaultArguments or StartJobRun Arguments contain embedded credentials (connection strings, API keys, tokens) that are exposed via glue:GetJob or glue:GetJobRun.
s3:PutObject on a bucket that is a verified code-artifact deployment source (Lambda, CodePipeline, CloudFormation) for a compute workload equals modifying that workload's code.
aws
CanModifyCodeA SageMaker processing job container executes as its RoleArn.
aws
ExecutesAsA SageMaker training job container executes as its RoleArn.
aws
ExecutesAsSageMaker compute surfaces (notebook/training/processing job/pipeline/Studio app) expose execution-role credentials to all code running inside them via IMDS or the container credentials endpoint.
Custom activities in ADF pipelines (running on Batch pools) can request a bearer token for the factory MI via the Azure IMDS endpoint.
azure
CanRetrieveTokenPrincipal can invoke a batch endpoint to trigger a batch scoring job on the endpoint's compute cluster.
azure
CanTriggerAny code running on an AML compute node can mint the compute MI's token from IMDS - the MI credential is exposed to all job code.
azure
ExposesCredentialAny code on an AML compute node can mint a bearer token for the compute MI via IMDS.
azure
CanRetrieveTokenWrite to a compute cluster - changes the compute identity block, SSH keys, subnet, or init scripts.
azure
CanModifyConfigurationPrincipal can trigger an existing AML job/pipeline run, executing the current job definition as the cluster MI.
azure
CanTriggerModify a pool startTask/config + the pool runs as an MI => execute as that MI (via IMDS).
azure
CanExecuteAsSubmit a data-plane task + the pool runs as an MI => execute as that MI (via IMDS).
azure
CanExecuteAsExec into a running replica + the app runs as an MI => execute as that MI (read the identity endpoint from the shell).
azure
CanExecuteAsControl-plane image/command replacement + the app runs as an MI => execute as that MI (via the identity endpoint).
azure
CanExecuteAsA cluster with a bound Access Connector MI leaks that MI's credential to any code running on it via IMDS.
azure
ExposesCredentialAny code on a cluster with a bound MI can mint a bearer token for that MI via IMDS.
azure
CanRetrieveTokenA Dataflow worker SA with storage.objects.create on an external GCS bucket can stream pipeline output (data records, query results) to that external location.
gcp
CanExfiltrateDataflow worker SA credentials accessible via metadata server to code running in pipeline transforms (when execution is established via CanModifyCode or CanExecuteAs).
dataproc.workflowTemplates.instantiate directly runs the workflow template, feeding cicd-chains trigger-then-executes-as.
gcp
CanTriggerdataproc.workflowTemplates.update lets the principal modify the job DAG (steps, jars, main class) a workflow template runs as the cluster SA.
gcp
CanModifyCodeA training job or Workbench notebook exposes its runtime SA credentials to any code it runs via the GCE metadata server.