More Info:
Bedrock Model Customization Jobs should use VPCRisk Level
MediumAddress
SecurityCompliance 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
Remediation
Using Console
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)
-
Create or choose a VPC
- Go to VPC Console → Your 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.
-
Create private subnets
- In the VPC console, go to Subnets → Create 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).
-
Create or choose a security group
- Go to Security groups → Create 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).
-
(Recommended) Create VPC endpoints for private access
- Go to Endpoints → Create 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).
- S3 Gateway endpoint for your VPC (service type: Gateway,
- Attach these endpoints to the private subnets and security group you created.
2. Configure Bedrock model customization to use the VPC
- Go to the Amazon Bedrock Console.
- In the left navigation pane, choose Custom models (or Model customization depending on the UI).
- Click Create customization job (or Customize model).
-
Fill in:
- Base model
- Training data location (S3 bucket)
- Output model location, etc.
-
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).
- 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.
Using CLI
Using CLI
To ensure Amazon Bedrock model customization jobs use a VPC, you must:
Record the
Optionally add inbound rules if your jobs need to talk to internal services:
Use the correct If you use Bedrock Agent or other specialized endpoints, also create those corresponding interface endpoints.Repeat similarly for
Replace:
- Have a VPC and private subnets.
- Create VPC endpoints for Bedrock, S3, and (optionally) CloudWatch Logs.
- Run
start-model-customization-jobwithvpcConfigspecified.
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.SubnetId values; you’ll pass them to Bedrock.2. Create a security group for Bedrock jobs
3. Create required VPC endpoints
3.1. Interface endpoint for Bedrock
List the Bedrock endpoint service name for your region:ServiceName (example below for com.amazonaws.us-east-1.bedrock):3.2. Gateway endpoint for S3 (required for training data / output in S3)
3.3. (Optional) Interface endpoint for CloudWatch Logs / Events
com.amazonaws.us-east-1.events if needed.4. Start a Bedrock model customization job with VPC config
The key is to passvpcConfig in the --cli-input-json.Example:baseModelIdentifierwith 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
vpcConfigonstart-model-customization-job. - Optionally add an SCP or Config rule (e.g., custom Config rule or EventBridge rule + Lambda) that detects jobs started without
vpcConfigand alerts or remediates.
Using Python
Using Python
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:
Make sure you already have:
Key remediation point: the
Use this pattern in your pipelines so every Bedrock model customization job is launched with
- Stop / let non‑compliant jobs finish.
- Re‑create future jobs with
vpcConfig.
1. Prerequisites
- 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
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 withvpcConfig.4. Validation
Programmatically verify new jobs are compliant:vpcConfig, satisfying the “Bedrock Model Customization Jobs Should Use VPC” requirement.
