AWS Security Hub · SageMaker
SageMaker.8: Notebook instances should run supported platforms
Written and reviewed by Emnode · Last reviewed
What does AWS Security Hub SageMaker.8 check?
SageMaker.8 fails when a notebook instance is pinned to an unsupported `PlatformIdentifier` (for example the original Amazon Linux 1 platform, or an Amazon Linux 2 platform such as `notebook-al2-v3` once it reaches end of support) rather than the current Amazon Linux 2023 platform, `notebook-al2023-v1`.
Why does SageMaker.8 matter?
A managed notebook only changes platform when someone migrates it, so an instance born years ago keeps running an unpatched, end-of-support OS until you act. That notebook still carries an IAM role and data access, making it an unpatched box sitting inside your account: not just a cost line, but a real exposure. Amazon Linux 2 reaches end of support on June 30, 2026, and from July 1, 2026 you can no longer create or restart AL2 instances, so left alone these notebooks stop receiving security updates and become harder to recover.
How do I fix SageMaker.8?
- List notebook instances and check `PlatformIdentifier` against the supported platforms.
- For an Amazon Linux 2 instance (`notebook-al2-v1`, `notebook-al2-v2`, or `notebook-al2-v3`), do an in-place platform update: stop the instance, then call `UpdateNotebookInstance` with `PlatformIdentifier=notebook-al2023-v1` (or edit the **Platform identifier** in the console) and start it again; the EBS volume data is preserved, so the lifecycle config and `/home/ec2-user/SageMaker/` files carry over.
- For an Amazon Linux 1 instance, there is no in-place path: create a new instance on `notebook-al2023-v1`, replicate your code and environment, then delete the old instance.
- After migrating, update any lifecycle script `yum` commands to `dnf` and confirm your kernels and custom environments still work on AL2023.
- Tag instances and review platform versions on a cadence so retirements are caught early.
Remediation script · bash
# Disable root across every notebook that has it on (mutable on a stopped instance).
for n in $(aws sagemaker list-notebook-instances \
--query 'NotebookInstances[].NotebookInstanceName' --output text); do
root=$(aws sagemaker describe-notebook-instance --notebook-instance-name "$n" \
--query 'RootAccess' --output text)
if [ "$root" = "Enabled" ]; then
aws sagemaker stop-notebook-instance --notebook-instance-name "$n"
aws sagemaker wait notebook-instance-stopped --notebook-instance-name "$n"
aws sagemaker update-notebook-instance --notebook-instance-name "$n" --root-access Disabled
aws sagemaker start-notebook-instance --notebook-instance-name "$n"
echo "$n: root access disabled"
fi
done
# Immutable settings need a rebuild. Recreate a notebook locked down: private subnet,
# no direct internet. (DirectInternetAccess and SubnetId cannot be changed in place.)
aws sagemaker create-notebook-instance \
--notebook-instance-name ml-feature-exploration \
--instance-type ml.t3.medium \
--role-arn arn:aws:iam::111122223333:role/SageMakerExecution \
--subnet-id subnet-0ab12cd34ef56 \
--security-group-ids sg-0aa11bb22cc33 \
--direct-internet-access Disabled \
--root-access Disabled Full walkthrough (console steps, edge cases and verification) in the lesson Harden SageMaker and ML workloads.
Is SageMaker.8 a false positive?
This control accepts exactly one platform (`notebook-al2-v3`) and the value is not customisable, so any instance on an older identifier fails and there is no parameter you can widen to make a still-needed legacy notebook pass. A failing instance is occasionally the deliberate state: a notebook may be pinned to an older platform because a kernel, driver, or pre-built environment it depends on has not been validated on the newer one. AWS notes you assume the risk of running an unsupported platform, so if you must keep it, treat the finding as an accepted-risk exception (suppress it in Security Hub with an owner and a remediation date) rather than recreating the instance before the dependency is ported.
More SageMaker controls
- SageMaker.1 A SageMaker notebook has direct internet access
- SageMaker.2 A SageMaker notebook is not launched in a VPC
- SageMaker.3 Users have root access on a SageMaker notebook
- SageMaker.4 Endpoint variants should have > 1 instance
- SageMaker.5 Models should have network isolation enabled
- SageMaker.9 Data quality jobs inter-container encryption
- SageMaker.10 Explainability jobs inter-container encryption
- SageMaker.11 Data quality jobs network isolation
- SageMaker.12 Model bias jobs network isolation
- SageMaker.13 Model quality jobs inter-container encryption
- SageMaker.14 Monitoring schedules network isolation
- SageMaker.15 Model bias jobs inter-container encryption