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
}
| Field | Menjawab |
|---|---|
userIdentity.arn | Siapa — perhatikan ini role, bukan manusia |
eventName | Operasi apa |
sourceIPAddress | Dari mana — berguna untuk memverifikasi jalur VPC |
requestParameters | Model apa yang dipanggil |
responseElements | Kosong 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
| Event | Kenapa penting |
|---|---|
DeleteGuardrail, UpdateGuardrail | Pengaman dimatikan atau dilemahkan |
PutModelInvocationLoggingConfiguration | Logging dimatikan — penghilangan jejak |
CreateProvisionedModelThroughput | Komitmen biaya besar |
DeleteKnowledgeBase | Kehilangan data |
InvokeModel dari IP tak dikenal | Kredensial mungkin bocor |
Lonjakan AccessDenied | Penyelidikan 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.