Skip to main content

More Info:

Sagemaker Training Jobs should have network isolation enabled

Risk Level

Medium

Address

Monitoring, Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • ISO 27001
  • ISO/IEC 27018
  • ISO/IEC 27701
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • NIST SP 800-171
  • NYDFS 23 NYCRR 500
  • SOC2
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Using Console

Here’s how to ensure SageMaker Training Jobs have Network Isolation enabled using the AWS Management Console:

1. Understand the Limitation

  • You cannot edit an existing completed/running training job to enable network isolation.
  • You must create a new training job (or update the template/pipeline/notebook code that creates it) with Network isolation turned on.

2. Enable Network Isolation When Creating a Training Job

  1. Sign in to AWS Console
  2. Open SageMaker
    • In the Services menu, choose Amazon SageMaker.
  3. Go to Training Jobs
    • In the left navigation pane, under Training, click Training jobs.
    • To recreate an existing job with isolation, select that job and click Create similar (if available in your console version), or note down its configuration to re-enter.
  4. Create a New Training Job
    • Click Create training job (or CreateTraining job, depending on UI version).
  5. Fill in Basic Settings
    • Job name: Provide a unique name.
    • IAM role: Select a role with needed permissions (S3, logs, etc.).
    • Configure Algorithm / Container, Input data configuration, Output data configuration, etc. as you normally would.
  6. Enable Network Isolation
    • Scroll to the Network or Security section (label may vary slightly by console version).
    • Find the option usually named:
      • Network isolation, or
      • Enable network isolation
    • Check the box or choose Enabled.
    • This corresponds to setting EnableNetworkIsolation = true for the training job.
  7. (Optional) Configure VPC Settings
    • In the same Network section, you can also:
      • Select a VPC, Subnets, and Security groups if you need training to run in a private subnet.
    • This is separate from network isolation, but commonly used together.
  8. Review and Create
    • Review all configurations.
    • Click Create training job.
This new training job will now run with network isolation: the container won’t have outbound network access except for what SageMaker itself needs for the job lifecycle.

3. Ongoing Remediation

  • For any place you define training jobs (SageMaker Studio UI, notebook code, CI/CD pipelines, SageMaker Pipelines):
    • Ensure EnableNetworkIsolation = true is always set.
  • Over time, deprecate old jobs / code that created training jobs without network isolation.
For SageMaker training jobs, network isolation is enabled per training job and cannot be turned on for an already-running/completed job. You must submit new jobs with network isolation enabled.Below are the key steps using AWS CLI.

1. Create a training job with network isolation enabled

You can either use a JSON config file or pass parameters inline. The important flag is:

Option A: Using a JSON config file

  1. Create a file training-job-config.json:
  1. Create the job via CLI:
"EnableNetworkIsolation": true in the JSON is equivalent to --enable-network-isolation on the CLI.

Option B: Passing parameters inline


2. Ensure pipelines / automations use the flag

Wherever training jobs are created (scripts, CI/CD, Step Functions, SageMaker Pipelines, etc.), confirm:
  • They use enable_network_isolation=True (SDK)
    or
  • --enable-network-isolation / "EnableNetworkIsolation": true (CLI/JSON).
This makes all future training jobs compliant.
To remediate this, you must (a) ensure all new training jobs are created with network isolation, and (b) stop/recreate any existing non‑isolated jobs (you cannot “flip” isolation on a running job).Below are step‑by‑step instructions using Python.

1. Using the low-level boto3 SageMaker client

a. Create training jobs with network isolation

Key field:
EnableNetworkIsolation=True must be set on every create_training_job call.

b. Recreate existing training jobs with network isolation

Then stop or let the original non‑isolated job complete and only use the new isolated one going forward.

2. Using the high-level sagemaker Python SDK

If you use the SageMaker Python SDK (pip install sagemaker):
Here enable_network_isolation=True ensures EnableNetworkIsolation=True in the underlying training job.

3. Policy / guardrail (optional)

To enforce this org‑wide, use:
  • AWS Config rule sagemaker-training-job-network-isolation-enabled
  • Or a custom rule that checks EnableNetworkIsolation on training jobs
    and alerts/blocks when it’s not True.
But from a Python remediation standpoint, the essential change is always: set EnableNetworkIsolation=True on all training job creations and recreate any existing ones without it.