← Semua pembelajaran / AWS untuk AI Engineer
Fase 6 · Safety, Security & Governance

Bedrock lewat VPC & PrivateLink

VPC interface endpoint dengan PrivateLink membuat panggilan ke Bedrock tetap di dalam jaringan AWS. Digabung dengan IAM condition, ia jadi pagar yang tegas.

Intisari

  • VPC melindungi data dan memungkinkanmu memantau seluruh lalu lintas lewat VPC Flow Logs.
  • Interface endpoint (PrivateLink) memberi jalur privat ke Bedrock tanpa internet gateway.
  • Berlaku juga untuk kustomisasi model, batch inference, dan akses OpenSearch Serverless dari knowledge base.
  • Endpoint policy membatasi apa yang boleh lewat endpoint itu.
  • IAM condition aws:SourceVpce membuat panggilan dari luar VPC ditolak — ini pengunci sebenarnya.

Apa yang berubah

Tanpa endpoint:
  Lambda (VPC) ──▶ NAT Gateway ──▶ internet ──▶ endpoint publik Bedrock

Dengan interface endpoint:
  Lambda (VPC) ──▶ ENI di subnet-mu ──▶ Bedrock   (tidak pernah keluar jaringan AWS)
ManfaatPenjelasan
Tidak lewat internetMenyederhanakan cerita kepatuhan secara signifikan
Tidak butuh NAT GatewayNAT ditagih per jam dan per GB — endpoint sering lebih murah
Bisa dipantauVPC Flow Logs mencatat seluruh lalu lintas masuk dan keluar
Bisa dibatasiEndpoint policy dan security group berlaku di sini

Fitur Bedrock yang bisa dilindungi VPC

Membuatnya

from aws_cdk import aws_ec2 as ec2

vpc.add_interface_endpoint(
    "BedrockRuntimeEndpoint",
    service=ec2.InterfaceVpcEndpointAwsService.BEDROCK_RUNTIME,
    private_dns_enabled=True,        # nama DNS Bedrock otomatis mengarah ke endpoint
)

private_dns_enabled adalah yang membuat ini transparan: kodemu tetap memanggil bedrock-runtime.us-east-1.amazonaws.com seperti biasa, dan DNS di dalam VPC yang mengarahkannya ke ENI endpoint. Tidak ada perubahan kode sama sekali.

Endpoint policy

{
  "Statement": [{
    "Effect": "Allow",
    "Principal": "*",
    "Action": ["bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream"],
    "Resource": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-*"
  }]
}

Ini pembatasan di sisi jaringan: apa pun yang lewat endpoint ini hanya boleh memanggil model itu. Ia berlapis dengan IAM policy, bukan menggantikannya.

Penguncinya: IAM condition

{
  "Effect": "Deny",
  "Action": "bedrock:*",
  "Resource": "*",
  "Condition": {
    "StringNotEquals": { "aws:SourceVpce": "vpce-0123456789abcdef0" }
  }
}

Ini yang benar-benar mengunci, bukan endpoint-nya. Membuat interface endpoint saja tidak mencegah siapa pun memanggil Bedrock lewat internet dengan kredensial yang sama. Deny berkondisi aws:SourceVpce yang membuatnya wajib. Terapkan di level Service Control Policy organisasi supaya tidak bisa dilewati per akun.

Efek samping yang perlu diantisipasi

SituasiYang terjadi
Laptopmu memanggil BedrockDitolak — kamu tidak berada di dalam VPC
CI/CD di luar VPC menjalankan evaluasiDitolak — pindahkan ke dalam VPC atau beri pengecualian eksplisit
Lambda tanpa konfigurasi VPCTidak memakai endpoint; tetap lewat jalur publik
Lambda di VPC tanpa endpointButuh NAT Gateway, atau panggilannya timeout

Baris terakhir adalah gejala klasik: Lambda yang baru dipindahkan ke VPC mendadak timeout saat memanggil layanan AWS mana pun. Penyebabnya hampir selalu tidak adanya rute keluar — dan jawabannya adalah endpoint, bukan menaikkan timeout.

Latihan: pindahkan Lambda-mu ke dalam VPC privat, tambahkan interface endpoint untuk bedrock-runtime, dan pastikan ia tetap berjalan tanpa perubahan kode. Lalu tambahkan Deny berkondisi aws:SourceVpce dan buktikan panggilan dari laptopmu ditolak.

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.