Skip to main content

More Info:

Bedrock Model Customization Jobs should use VPC

Risk Level

Medium

Address

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/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
  • StateRAMP
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Using Console

To ensure Bedrock model customization jobs run inside a VPC using the AWS Console, you must (a) have a suitable VPC setup, and (b) explicitly select it when creating the customization job.

1. Prepare the VPC networking (one-time setup, if not already done)

  1. Create or choose a VPC
    • Go to VPC ConsoleYour VPCs.
    • Either:
      • Use an existing VPC, or
      • Click Create VPC (VPC only), give it a CIDR (e.g., 10.0.0.0/16) and create it.
  2. Create private subnets
    • In the VPC console, go to SubnetsCreate subnet.
    • Select your VPC.
    • Create at least 2 subnets in different Availability Zones (for high availability).
    • Mark them as “private” by not associating a route to an Internet Gateway (i.e., no 0.0.0.0/0 to IGW).
  3. Create or choose a security group
    • Go to Security groupsCreate security group.
    • Attach it to your VPC.
    • In Inbound rules, only allow the traffic you actually need (often no inbound is required for Bedrock customization jobs if they don’t accept external connections).
    • In Outbound rules, you may allow outbound to required services (for example via VPC endpoints or NAT).
  4. (Recommended) Create VPC endpoints for private access
    • Go to EndpointsCreate endpoint.
    • For fully private operation, create:
      • S3 Gateway endpoint for your VPC (service type: Gateway, com.amazonaws.<region>.s3).
      • Interface endpoints as needed (e.g., for CloudWatch Logs, STS, etc., depending on what your jobs use).
    • Attach these endpoints to the private subnets and security group you created.

2. Configure Bedrock model customization to use the VPC

  1. Go to the Amazon Bedrock Console.
  2. In the left navigation pane, choose Custom models (or Model customization depending on the UI).
  3. Click Create customization job (or Customize model).
  4. Fill in:
    • Base model
    • Training data location (S3 bucket)
    • Output model location, etc.
  5. In the Network or VPC configuration section:
    • Turn on the option like “Enable VPC” / “Run this job in a VPC”.
    • Select your VPC.
    • Select the private subnets you prepared.
    • Select the security group you prepared.
    • Confirm there is no requirement for public IPs (leave public IP assignment disabled if there’s an option).
  6. Review all settings and click Create / Start job.

3. Enforce VPC usage going forward

  • Update any internal runbooks or templates so that:
    • All Bedrock customization jobs are created with the VPC networking section enabled.
  • For jobs already running without a VPC:
    • You cannot change the network of an existing job.
    • Stop/let them complete, and recreate future jobs with the VPC configuration as above.
This ensures all new Amazon Bedrock model customization jobs run within a VPC, satisfying the “Bedrock Model Customization Jobs Should Use VPC” requirement.
To ensure Amazon Bedrock model customization jobs use a VPC, you must:
  1. Have a VPC and private subnets.
  2. Create VPC endpoints for Bedrock, S3, and (optionally) CloudWatch Logs.
  3. Run start-model-customization-job with vpcConfig specified.
Below are the minimal step‑by‑step AWS CLI commands.

1. Identify / create VPC and private subnets

If you already have a VPC and isolated/private subnets, you can reuse them and skip to step 2.
Record the SubnetId values; you’ll pass them to Bedrock.

2. Create a security group for Bedrock jobs

Optionally add inbound rules if your jobs need to talk to internal services:

3. Create required VPC endpoints

3.1. Interface endpoint for Bedrock

List the Bedrock endpoint service name for your region:
Use the correct ServiceName (example below for com.amazonaws.us-east-1.bedrock):
If you use Bedrock Agent or other specialized endpoints, also create those corresponding interface endpoints.

3.2. Gateway endpoint for S3 (required for training data / output in S3)

3.3. (Optional) Interface endpoint for CloudWatch Logs / Events

Repeat similarly for com.amazonaws.us-east-1.events if needed.

4. Start a Bedrock model customization job with VPC config

The key is to pass vpcConfig in the --cli-input-json.Example:
Replace:
  • baseModelIdentifier with the specific model you’re customizing.
  • IAM role ARN, bucket names, subnet IDs, and security group ID.

5. Enforce VPC usage going forward

To systematically remediate the finding:
  • Update all automation (scripts, CI/CD, IaC) to always include vpcConfig on start-model-customization-job.
  • Optionally add an SCP or Config rule (e.g., custom Config rule or EventBridge rule + Lambda) that detects jobs started without vpcConfig and alerts or remediates.
This ensures all Bedrock model customization jobs are launched inside your VPC and satisfies the “Bedrock Model Customization Jobs Should Use VPC” requirement.
To fix this, you must ensure every model customization job is created with a VPC attached. Bedrock does not let you “update” an existing job’s VPC settings; remediation is:
  1. Stop / let non‑compliant jobs finish.
  2. Re‑create future jobs with vpcConfig.
Below is a concise, end‑to‑end Python (boto3) example.

1. Prerequisites

Make sure you already have:
  • A VPC ID
  • Private subnet IDs in that VPC
  • Security group IDs allowing required egress (e.g. to S3, KMS via NAT)

2. Python: Create a Bedrock Model Customization Job with VPC

Key remediation point: the vpcConfig block must be present in create_model_customization_job.

3. (Optional) Stop Non‑Compliant Jobs

You can’t retrofit a VPC onto a running job; you can only stop it and recreate it with vpcConfig.

4. Validation

Programmatically verify new jobs are compliant:
Use this pattern in your pipelines so every Bedrock model customization job is launched with vpcConfig, satisfying the “Bedrock Model Customization Jobs Should Use VPC” requirement.