View a markdown version of this page

Contoh kebijakan untuk Memori - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh kebijakan untuk Memori

Halaman ini menyediakan pola kebijakan Cedar yang khusus untuk Amazon Bedrock AgentCore Memory — mengisolasi pemanggil ke aktor mereka sendiri, namespace mereka sendiri, dan serangkaian operasi Memori yang dipilih. Untuk id tindakan memori dan context.input bidang referensi kebijakan ini, lihat Tind akan memori dan atribut permintaan. Untuk model Cedar generik dan pustaka pola yang lebih luas (cakupan OAuth dan pemeriksaan peran, pencocokan utama IAM, forbid dengan, dan validasi input)unless, lihat Mem ahami kebijakan Cedar dan Kebijakan Contoh.

Anda menambahkan setiap kebijakan Cedar ke mesin kebijakan gateway Anda dengan CreatePolicy operasi, meneruskan pernyataan Cedar sebagai kebijakandefinition. Untuk urutan penyiapan, lihat Menyi apkan kontrol akses berbutir halus untuk Memori.

Dalam setiap contoh Cedar, ganti <target-name> dengan nama target konektor Anda dan <gw-arn> dengan gateway ARN Anda.

Per-user isolasi - ActoRid harus sama dengan subjek JWT

Izinkan pengguna OAuth untuk mengakses sesi hanya jika permintaan tersebut sama dengan klaim J sub W actorId T mereka. Ini adalah pola isolasi inti per pengguna untuk Memori: setiap pengguna hanya dapat mencapai data aktor mereka sendiri.

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/actor/{actorId}/sessions/{sessionId}", resource == AgentCore::Gateway::"<gw-arn>" ) when { principal.hasTag("sub") && context has input && context.input has actorId && context.input.actorId == principal.getTag("sub") };

Isolasi namespace - pemanggil hanya dapat mengambil catatan di bawah namespace mereka sendiri

Kebijakan ini memungkinkan pemanggil OAuth mengambil catatan memori hanya jika permintaan tersebut cocok dengan jalur namespace namespacePath pemanggil itu sendiri, yang dibawa dalam klaim token.

Cedar tidak mendukung penggabungan string — + operator hanya berlaku untuk operan integer, dan pola like wildcard harus berupa literal string. Oleh karena itu, Anda tidak dapat membangun nilai namespace dari klaim di dalam kebijakan (misalnya, Cedar ("/actors/" + principal.getTag("sub") + "/") tidak valid). Sebagai gantinya, mintalah penyedia identitas Anda mengeluarkan klaim yang sudah menyimpan jalur namespace lengkap pemanggil, memetakannya ke tag utama, dan bandingkan dengan tag namespacePath itu. Dalam contoh ini token memberikan namespace klaim yang berisi jalur namespace pemanggil (seperti/actors/<sub>/).

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/retrieve", resource == AgentCore::Gateway::"<gw-arn>" ) when { principal.hasTag("namespace") && context has input && context.input has namespacePath && context.input.namespacePath == principal.getTag("namespace") };

Pelingkupan tindakan - hanya mengizinkan satu set operasi Memori

Berikan daftar tetap operasi Memori - misalnya, izinkan daftar acara dan mengambil catatan, tetapi tidak ada yang lain. Kelompokkan beberapa tindakan Memori denganaction in […​]; wildcard action-id tidak didukung.

permit( principal, action in [ AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/actor/{actorId}/sessions/{sessionId}", AgentCore::Action::"<target-name>___POST:/memories/{memoryId}/retrieve" ], resource == AgentCore::Gateway::"<gw-arn>" );

Untuk memastikan Memori hanya dapat dijangkau melalui gateway Anda — dan bukan oleh kepala sekolah yang memanggil bidang data Memori secara langsung — lihat Bat asi akses langsung ke Memori.