gcp-vertexai-explicit-notebook-use-execute-command
Principal holds notebooks.instances.use on a Workbench instance (explicit permission normalization).
match (effective permission)
{
"action": "notebooks.instances.use",
"resource_type": "google.notebooks.Instance"
}
where
The instance must be ACTIVE/RUNNING; a STOPPED instance requires
CanStart first.
emit
| source type | Identity |
|---|---|
| target type | Notebook |
| source | <principal> |
| target | <Workbench notebook instance> |
| permissions | notebooks.instances.use |
| state logic | ACTIVE when notebooks.instances.use is confirmed on the target instance and the instance is RUNNING. CONDITIONAL(service_state) if the instance is STOPPED (requires CanStart first). |
Raw rule rules/explicit/gcp-vertexai.yaml
id: gcp-vertexai-explicit-notebook-use-execute-command
emits: CanExecuteCommand
description: Principal holds notebooks.instances.use on a Workbench instance (explicit permission normalization).
match_effective_permission:
action: notebooks.instances.use
resource_type: google.notebooks.Instance
where:
- The instance must be ACTIVE/RUNNING; a STOPPED instance requires CanStart first.
emit:
source_type: Identity
target_type: Notebook
source: <principal>
target: <Workbench notebook instance>
permissions:
- notebooks.instances.use
state_logic: ACTIVE when notebooks.instances.use is confirmed on the target instance and the instance
is RUNNING. CONDITIONAL(service_state) if the instance is STOPPED (requires CanStart first).
note: Opening JupyterLab on the notebook instance enables arbitrary code execution. Feeds can-execute-as
execute-as-via-command linchpin (CanExecuteCommand + ExecutesAs -> CanExecuteAs).