Skip to main content
compliance · aws

SageMaker notebooks granting users root on the instance

resource types
1
rule IDs covered
1
severity
medium

What does ZopNight detect here?

Root access on a SageMaker notebook lets any user of it install system packages, alter the OS, and disable the very lifecycle scripts meant to standardise it. ZopNight flags in-service notebooks whose rootAccess setting reads Enabled, and 1 stop-edit-start cycle turns it off, with no rebuild required.

Signal and threshold

How ZopNight evaluates SageMaker notebooks granting users root on the instance.
Field Value
Rule IDsRC-1616
Categorycompliance
Severitymedium
Metricnone — pure configuration read
Sourcesagemaker_compliance.go

What root on a notebook actually undoes

A notebook instance with root access is a machine its users can quietly rebuild: install arbitrary system packages, modify kernels, stop security agents, and edit the boot-time scripts an admin thought were mandatory. For a single researcher’s sandbox that may be tolerable; on a shared instance, or anywhere lifecycle configurations are doing security work, root access means every control on the box is advisory. Least privilege on notebooks is unglamorous, but it is the difference between “we provision these instances” and “users provision themselves”.

The detection condition

Discovery describes each notebook and stamps the rootAccess state into metadata only when the describe call succeeds. The rule fires when the value is confirmed Enabled on an in-service instance. Stopped, failed, or transitioning notebooks are skipped, because those are covered by the deletion-review rule, and telling someone to harden an instance they are being told to delete is contradictory noise. A notebook whose describe failed produces nothing.

Check a notebook directly

Terminal window
aws sagemaker describe-notebook-instance \
--notebook-instance-name my-notebook \
--query '[NotebookInstanceName,NotebookInstanceStatus,RootAccess]'

Fixing it is cheap; the workflow change is the real task

The setting is mutable: stop the instance, set root access to Disabled, start it again. Nothing about the fix requires recreation. What does need thought is where users’ legitimate package needs go afterwards. The answer is a lifecycle configuration that installs the approved toolchain at start, so the capability users lose interactively is provided declaratively. Without that step, expect the request to re-enable root within the week, this time with a business justification attached.

Reading this finding at fleet scale

One flagged notebook is a setting. Twenty flagged notebooks mean root-enabled is your template’s default. Fix the template, IaC module, or console habit that creates them, and the finding class stops regenerating. There is no cost dimension here at all: the charge for a notebook is identical with root on or off, which is exactly why this ships as a compliance finding with $0 attached rather than pretending a hardening step saves money.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

417 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

417 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·