AI Security Maturity Model·AWS v1.0.0

Drag to explore · pinch to zoom

Enhanced Network SecurityDefense-in-depth layer: Infrastructure Capability 2 · Model customizationUse case: AI you build 👤 CustomerAWS Shared Responsibility Model: who implements and operates this control. Customer = you own it; AWS = AWS operates it and you inherit it; Shared = both have obligations.

c2.4 Run customization privately in a VPC with no internet

Execute customization/training jobs inside a VPC with no internet access, reaching data only through S3 VPC endpoints, so training runs with private connectivity.

Foundational
Enhanced
Advanced
Effort: Medium Impact: High GenAI scopesFrom the AWS Generative AI Security Scoping Matrix.: 4 · Fine-tuned models; 5 · Self-trained models

Implementation guidance

How to implement on AWS

Configure the Bedrock customization job (or SageMaker training job) with a VPC that has no internet access and an S3 VPC endpoint for the training/validation buckets. Use private subnets and security groups that restrict inbound and outbound traffic.

Keep training inside your network

A customization job downloads your training data and uploads metrics and the resulting model. By default that traffic can traverse the public AWS service path. Attaching a VPC configuration to the job pins all of that data movement to elastic network interfaces inside your VPC, so training data never leaves a network boundary you control. Combined with a VPC that has no internet route, the job can reach your S3 data only through a VPC endpoint — there is no path to the public internet to exfiltrate data over.

Give the job private subnets and a security group

Provide the customization job with a vpcConfig listing private subnets (two or more, in different AZs for redundancy) and a security group:

{
  "vpcConfig": {
    "subnetIds": ["subnet-0aaa1111", "subnet-0bbb2222"],
    "securityGroupIds": ["sg-0ccc3333"]
  }
}

Pass this as the --vpc-config parameter to create-model-customization-job. The subnets do not need a NAT gateway or internet access — all traffic exits through VPC endpoints.

Add an S3 endpoint so the job can reach its data

With no internet route, create an S3 gateway VPC endpoint in the VPC so the job can read training/validation data and write output privately. Lock it down with an endpoint policy that allows only the specific buckets involved:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": ["s3:GetObject", "s3:PutObject", "s3:ListBucket"],
      "Resource": [
        "arn:aws:s3:::my-bedrock-training-data",
        "arn:aws:s3:::my-bedrock-training-data/*",
        "arn:aws:s3:::my-bedrock-custom-output",
        "arn:aws:s3:::my-bedrock-custom-output/*"
      ]
    }
  ]
}

Tie the network to the identity

Pair this with the customization service role (least-privilege) and the CMK control so the job is constrained on all three axes: who (role), what key (CMK), and which network path (VPC + S3 endpoint). A leaked role credential used from outside the VPC then has no route to the data.

Naming note: replace subnet, security-group, and bucket identifiers. Use private subnets with no internet gateway; verify the route table has no 0.0.0.0/0 route.

Acceptance criteria

Customization runs in a VPC with no internet gateway; data is reached via an S3 VPC endpoint; security groups restrict traffic.

Practical implementation

How this control is implemented in each reference architecture:

The customization job runs in a private, no-internet VPC in the Generative AI account and reaches its data only through an S3 VPC endpoint.

  1. Configure the Bedrock/SageMaker customization job with a VPC that has no internet gateway, using private subnets in the Generative AI account.
    Generative AI account Amazon VPC Amazon Bedrock Amazon SageMaker
  2. Add an S3 VPC (gateway) endpoint so the job reaches the training buckets privately, and restrict inbound/outbound with security groups.
    Generative AI account AWS PrivateLink Amazon VPC Amazon S3
  3. Use a bucket policy condition (aws:SourceVpce) so the training data is only readable through that endpoint.
    Generative AI account Amazon S3 IAM

How to validate: The job runs in a VPC with no internet gateway; data is reached via the S3 VPC endpoint; security groups restrict traffic; off-endpoint bucket access is denied.

Avoid: Running training in a subnet with a NAT to the internet 'for package installs'. Pre-stage dependencies and keep training on a closed network to prevent exfiltration.

Generative AI OU (multi-account) →

The customization job runs in a private VPC in the account with an S3 VPC endpoint and no internet path.

  1. Run the customization/training job in a private, no-internet VPC in the account.
    Generative AI tier (IAM role) Amazon VPC Amazon Bedrock Amazon SageMaker
  2. Reach the training buckets through an S3 VPC endpoint and restrict traffic with security groups.
    Generative AI tier (IAM role) AWS PrivateLink Amazon VPC Amazon S3
  3. Bind bucket access to the endpoint with an aws:SourceVpce condition.
    Generative AI tier (IAM role) Amazon S3 IAM

How to validate: Training runs with no internet gateway; data is reached via the S3 endpoint; off-endpoint access is denied.

Avoid: Training on a public subnet because it is simpler. Isolate the job network so training compute cannot reach or be reached from the internet.

Single account (entry point) →

Threats addressed

  • Training jobs exposed to or exfiltrating over the public internet.
  • Unintended network reach from training compute.

AWS services

Amazon VPC Amazon S3 Amazon SageMaker AI

Pricing

There is no extra Bedrock charge for running a job in a VPC. S3 gateway endpoints are free; if you also add interface endpoints (e.g. for KMS or CloudWatch), those bill per AZ-hour plus data processed. You still pay the normal customization job cost. See Restrict data access to your Amazon S3 data using a VPC.

Framework mappings

OWASP GenAI/LLM Top 10 (2026)

  • LLM02 Sensitive Information Disclosure

NIST AI Risk Management Framework (AI 100-1)

  • MANAGE.1 AI risks are prioritized, responded to and managed

AWS Security Hub — AI Security Best Practices

  • SageMaker.1 Amazon SageMaker notebook instances should not have direct internet access
  • SageMaker.2 SageMaker notebook instances should be launched in a custom VPC
  • SageMaker.5 SageMaker models should have network isolation enabled
  • SageMaker.16 SageMaker models should use private registry in VPC for primary containers
  • SageMaker.19 SageMaker models should use private registry in VPC for multi-container inference pipelines
  • SageMaker.11 SageMaker data quality job definitions should have network isolation enabled
  • SageMaker.12 SageMaker model bias job definitions should have network isolation enabled
  • SageMaker.14 SageMaker monitoring schedules should have network isolation enabled
  • SageMaker.20 SageMaker model explainability job definitions should have network isolation enabled
  • SageMaker.25 SageMaker model quality job definitions should have network isolation enabled
  • SageMaker.9 SageMaker data quality job definitions should have inter-container traffic encryption enabled
  • SageMaker.10 SageMaker model explainability job definitions should have inter-container traffic encryption enabled
  • SageMaker.13 SageMaker model quality job definitions should have inter-container traffic encryption enabled
  • SageMaker.15 SageMaker model bias job definitions should have inter-container traffic encryption enabled
  • SageMaker.22 SageMaker monitoring schedules should have inter-container traffic encryption enabled

AWS Well-Architected Generative AI Lens (Security)

  • GENSEC01-BP02 Implement private network communication between foundation models and applications

Learning resources

References

  • AWS SRA for AI — Capability 2, Network security