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

CloudTrail untuk Bedrock

CloudTrail mencatat panggilan API ke Bedrock. Ia menjawab pertanyaan tata kelola — bukan pertanyaan "apa isi prompt-nya", yang dijawab model invocation logging.

Intisari

  • Mencatat panggilan API: siapa principal-nya, kapan, dari IP mana, parameter apa.
  • Tidak mencatat isi prompt dan respons — itu tugas model invocation logging (Fase 7).
  • Event management dicatat default; event data perlu diaktifkan terpisah.
  • Buat trail ke S3 untuk retensi panjang — riwayat konsol hanya 90 hari.
  • Digabung EventBridge, ia bisa memicu alarm untuk perubahan konfigurasi yang berisiko.

Membaca sebuah event

{
  "eventTime": "2026-08-10T03:14:22Z",
  "eventSource": "bedrock.amazonaws.com",
  "eventName": "InvokeModel",
  "userIdentity": {
    "type": "AssumedRole",
    "arn": "arn:aws:sts::123456789012:assumed-role/FungsiTanyaRole/tanya-bedrock"
  },
  "sourceIPAddress": "10.0.2.44",
  "requestParameters": { "modelId": "anthropic.claude-3-5-haiku-20241022-v1:0" },
  "responseElements": null
}
FieldMenjawab
userIdentity.arnSiapa — perhatikan ini role, bukan manusia
eventNameOperasi apa
sourceIPAddressDari mana — berguna untuk memverifikasi jalur VPC
requestParametersModel apa yang dipanggil
responseElementsKosong untuk InvokeModel — isi respons memang tidak dicatat

Batas yang harus jelas di kepalamu. CloudTrail menjawab "siapa memanggil model itu". Ia tidak menjawab "apa yang ditanyakan" atau "apa jawabannya". Untuk itu kamu butuh model invocation logging, yang punya konsekuensi privasi tersendiri dan dibahas di Fase 7.

Yang layak diawasi

EventKenapa penting
DeleteGuardrail, UpdateGuardrailPengaman dimatikan atau dilemahkan
PutModelInvocationLoggingConfigurationLogging dimatikan — penghilangan jejak
CreateProvisionedModelThroughputKomitmen biaya besar
DeleteKnowledgeBaseKehilangan data
InvokeModel dari IP tak dikenalKredensial mungkin bocor
Lonjakan AccessDeniedPenyelidikan izin, atau serangan
// Rule EventBridge untuk perubahan berisiko
{
  "source": ["aws.bedrock"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventName": ["DeleteGuardrail", "UpdateGuardrail",
                  "PutModelInvocationLoggingConfiguration"]
  }
}

Trail untuk retensi

aws cloudtrail create-trail \
  --name jejak-audit \
  --s3-bucket-name jejak-audit-123456789012 \
  --is-multi-region-trail

aws cloudtrail start-logging --name jejak-audit

Riwayat event di konsol hanya menyimpan 90 hari terakhir. Untuk audit dan investigasi insiden, kamu butuh trail ke S3 dengan kebijakan retensi yang sesuai — dan bucket-nya sebaiknya di akun terpisah yang tidak bisa disentuh oleh identitas produksi.

Menanyakannya

-- Athena atas log CloudTrail: siapa memanggil model mana, berapa kali
SELECT useridentity.arn,
       json_extract_scalar(requestparameters, '$.modelId') AS model,
       count(*) AS jumlah
FROM cloudtrail_logs
WHERE eventsource = 'bedrock.amazonaws.com'
  AND eventname   = 'InvokeModel'
  AND eventtime >= '2026-08-01'
GROUP BY 1, 2
ORDER BY jumlah DESC;

Latihan: panggil satu model, lalu temukan event-nya di konsol CloudTrail. Identifikasi role yang dipakai dan pastikan itu memang role Lambda-mu, bukan identitas pribadimu. Terakhir, buat rule EventBridge yang mengirim notifikasi setiap kali guardrail diubah.

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