View a markdown version of this page

Memulai Kebijakan di AgentCore - Batuan Dasar Amazon AgentCore

Memulai Kebijakan di AgentCore

Dalam tutorial ini, Anda akan belajar cara mengatur Kebijakan AgentCore dan mengintegrasikannya dengan Amazon Bedrock AgentCore Gateway menggunakan AgentCore CLI. Anda akan membuat alat pemrosesan pengembalian dana dengan kebijakan Cedar yang memberlakukan aturan bisnis untuk jumlah pengembalian dana.

Prasyarat

Sebelum memulai, pastikan Anda memiliki yang berikut:

  • AWS Akun dengan kredensi dikonfigurasi. Untuk mengkonfigurasi kredensi, Anda dapat menginstal dan menggunakan Antarmuka Baris AWS Perintah dengan mengikuti langkah-langkah di Memulai dengan CLI AWS.

  • Node.js 18+ terpasang

  • Izin IAM untuk membuat peran, fungsi Lambda, mesin kebijakan, dan menggunakan Amazon Bedrock AgentCore

  • Fungsi Lambda yang memproses permintaan pengembalian dana. Anda dapat menggunakan fungsi yang ada atau membuat satu untuk tutorial ini. Perhatikan fungsi ARN untuk digunakan pada Langkah 2.

Langkah 1: Pengaturan dan instal

Instal AgentCore CLI:

npm install -g @aws/agentcore

Buat AgentCore proyek baru:

contoh
AgentCore CLI
  1. agentcore create --name PolicyDemo --defaults cd PolicyDemo

    --defaultsBendera membuat proyek dengan agen Python Strands default. Perintah cd bergerak ke direktori proyek di mana perintah berikutnya harus dijalankan.

Interactive
  1. Anda juga dapat menjalankan agentcore create tanpa bendera untuk menggunakan wizard interaktif. Wizard memandu Anda dalam memilih nama proyek, kerangka kerja agen, penyedia model, dan opsi lainnya. Setelah pembuatan proyek, ubah ke direktori proyek dengan cd PolicyDemo.

Langkah 2: Tambahkan gateway dengan mesin kebijakan

Gunakan AgentCore CLI untuk menambahkan gateway, target fungsi Lambda, dan mesin kebijakan ke proyek Anda.

Tambahkan gateway

Buat gateway tanpa otorisasi masuk (untuk kesederhanaan dalam tutorial ini) dan lampirkan agen Anda ke dalamnya:

contoh
AgentCore CLI
  1. agentcore add gateway --name PolicyGateway --authorizer-type NONE --runtimes PolicyDemo
Interactive
  1. Jalankan agentcore untuk membuka TUI, lalu pilih tambah dan pilih Gateway:

  2. Masukkan nama gateway:

    Wisaya gerbang: masukkan nama
  3. Pilih jenis otorisasi. Untuk tutorial ini, pilih NONE:

    Wisaya gerbang: pilih NONE authorizer
  4. Konfigurasikan opsi lanjutan atau terima default:

    Wisaya gerbang: konfigurasi lanjutan
  5. Tinjau konfigurasi dan tekan Enter untuk mengonfirmasi:

    Gateway wizard: tinjau konfigurasi

Tambahkan target fungsi Lambda dengan alat pengembalian dana

Daftarkan fungsi Lambda Anda sebagai target gateway dengan skema alat yang mendefinisikan alat pemrosesan pengembalian dana:

contoh
AgentCore CLI
  1. agentcore add gateway-target --name RefundTarget --type lambda-function-arn \ --lambda-arn ++<YOUR_LAMBDA_ARN>++ \ --tool-schema-file refund_tools.json \ --gateway PolicyGateway

    Ganti <YOUR_LAMBDA_ARN> dengan ARN fungsi Lambda Anda. refund_tools.jsonFile mendefinisikan skema alat untuk alat pengembalian dana.

Interactive
  1. Jalankan agentcore untuk membuka TUI, lalu pilih add dan pilih Gateway Target:

  2. Masukkan nama target.

  3. Pilih fungsi Lambda sebagai tipe target:

    Wisaya target gateway: pilih fungsi Lambda
  4. Masukkan Lambda ARN dan jalur file skema alat, lalu konfirmasikan.

Menambahkan mesin kebijakan

Buat mesin kebijakan dan lampirkan ke gateway dalam mode ENFORCE:

contoh
AgentCore CLI
  1. agentcore add policy-engine --name RefundPolicyEngine \ --attach-to-gateways PolicyGateway \ --attach-mode ENFORCE
Interactive
  1. Jalankan agentcore untuk membuka TUI, lalu pilih add dan pilih Policy Engine:

  2. Masukkan nama mesin kebijakan:

    Wisaya mesin kebijakan: masukkan nama
  3. Pilih gateway untuk melampirkan mesin kebijakan ke:

    Wisaya mesin kebijakan: lampirkan gateway
  4. Pilih mode penegakan. Pilih TEGAKKAN:

    Wisaya mesin kebijakan: pilih mode penegakan

Buat kebijakan Cedar

Berikan file kebijakan Cedar secara langsung:

agentcore add policy --name RefundLimit \ --engine RefundPolicyEngine \ --source refund_policy.cedar
catatan

Kebijakan cedar yang mereferensikan ARN gateway tertentu di resource bidang (seperti yang ditunjukkan pada contoh di bawah) memerlukan penerapan dua fase: penerapan pertama tanpa kebijakan untuk membuat gateway, lalu ambil ARN gateway dari status agentcore, perbarui file Cedar, dan tambahkan kebijakan sebelum menerapkan ulang. Cedar tidak mengizinkan sumber daya wildcard dalam pernyataan kebijakan.

Atau, setelah menerapkan sumber daya Anda di Langkah 3, Anda dapat membuat kebijakan Cedar dari deskripsi bahasa alami:

agentcore add policy --name RefundLimit \ --engine RefundPolicyEngine \ --generate "Only allow refunds under 1000 dollars" \ --gateway PolicyGateway

--generateBendera mengharuskan gateway untuk digunakan terlebih dahulu, karena memanggil AWS API yang membutuhkan ARN gateway untuk mengonversi bahasa alami menjadi Cedar. Pendekatan ini secara otomatis menyelesaikan ARN gateway, menjadikannya jalur paling sederhana untuk membuat kebijakan.

Memahami pengaturan

Perintah CLI di atas mengkonfigurasi beberapa sumber daya dalam proyek Anda AgentCore . Berikut penjelasan rinci dari masing-masing komponen.

Buat Gateway

Perintah agentcore add gateway membuat gateway yang bertindak sebagai titik akhir server MCP Anda. Pengaturan --authorizer-type NONE menonaktifkan otorisasi masuk untuk kesederhanaan dalam tutorial ini. Dalam produksi, gunakan otorisasi IAM atau JWT untuk mengamankan gateway Anda.

Tambahkan target Lambda

Perintah agentcore add gateway-target mendaftarkan fungsi Lambda sebagai target di gateway. File skema alat mendefinisikan input yang dapat diteruskan agen ke fungsi, seperti jumlah pengembalian dana.

Buat Mesin Kebijakan

Perintah agentcore add policy-engine menciptakan mesin kebijakan — kumpulan kebijakan Cedar yang mengevaluasi dan mengotorisasi panggilan alat agen. Mesin kebijakan mencegat semua permintaan di batas gateway dan menentukan apakah akan mengizinkan atau menolak setiap tindakan berdasarkan kebijakan yang ditentukan. Ini memberikan otorisasi deterministik di luar kode agen, memastikan penegakan keamanan yang konsisten terlepas dari bagaimana agen diimplementasikan.

Buat Kebijakan Cedar

Cedar adalah bahasa kebijakan sumber terbuka yang dikembangkan oleh AWS untuk menulis kebijakan otorisasi. Perintah agentcore add policy membuat kebijakan Cedar yang mengatur panggilan alat melalui gateway. Anda dapat membuat kebijakan dari deskripsi bahasa alami menggunakan--generate, atau menyediakan file kebijakan Cedar secara langsung menggunakan. --source

Berikut ini adalah contoh kebijakan Cedar yang memungkinkan pengembalian uang di bawah $1000:

permit(principal, action == AgentCore::Action::"RefundTarget___process_refund", resource == AgentCore::Gateway::"<gateway-arn>") when { context.input.amount < 1000 };

Kebijakan ini menggunakan:

  • permit— Memungkinkan tindakan (Cedar juga mendukung forbid untuk menolak tindakan)

  • principal— Entitas yang membuat permintaan

  • action— Alat khusus yang dipanggil (RefundTarget___process_refund)

  • resource— Instance gateway di mana kebijakan berlaku

  • whenkondisi - Persyaratan tambahan (jumlah harus < $1000)

Lampirkan Kebijakan ke Gateway

--attach-mode ENFORCETanda --attach-to-gateways dan pada perintah agentcore add policy-engine melampirkan mesin kebijakan ke gateway dalam mode ENFORCE. Dalam mode ini:

  • Setiap panggilan alat dicegat dan dievaluasi terhadap semua kebijakan

  • Secara default, semua tindakan ditolak kecuali diizinkan secara eksplisit

  • Jika ada forbid kebijakan yang cocok, akses ditolak (semantik larang-menang)

  • Keputusan kebijakan dicatat CloudWatch untuk pemantauan dan kepatuhan

Ini memastikan semua operasi agen melalui gateway diatur oleh kebijakan keamanan Anda.

Langkah 3: Deploy

Menyebarkan semua sumber daya ke AWS:

agentcore deploy

AgentCore CLI membuat gateway, mendaftarkan target Lambda, menyediakan mesin kebijakan, dan melampirkan kebijakan Cedar. Proses ini memakan waktu sekitar 2-3 menit.

Setelah penerapan selesai, Anda dapat memverifikasi status sumber daya Anda:

agentcore status

Langkah 4: Uji kebijakan

Uji kebijakan dengan mengirimkan permintaan ke gateway. Karena gateway menggunakan--authorizer-type NONE, Anda dapat mengirim permintaan langsung dengan curl.

Tes 1: Pengembalian dana $500 (harus diizinkan)

Jumlah pengembalian dana sebesar $500 berada di bawah batas $1000, sehingga mesin kebijakan mengizinkan permintaan:

curl -X POST ++<GATEWAY_URL>++ \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"RefundTarget___process_refund","arguments":{"amount":500}}}'

Tes 2: Pengembalian dana $2000 (harus ditolak)

Jumlah pengembalian dana $2000 melebihi batas $1000, sehingga mesin kebijakan menolak permintaan:

curl -X POST ++<GATEWAY_URL>++ \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"RefundTarget___process_refund","arguments":{"amount":2000}}}'
catatan

Ganti <GATEWAY_URL> dengan URL gateway yang ditunjukkan pada output status agentcore.

Apa yang telah Anda bangun

Melalui tutorial ini, Anda telah membuat:

  • MCP Server (Gateway) — Titik akhir terkelola untuk alat

  • Target Lambda — Alat pemrosesan pengembalian dana yang terdaftar di gateway

  • Mesin Cedar-based kebijakan — sistem evaluasi kebijakan

  • Kebijakan Cedar - Aturan tata kelola yang memungkinkan pengembalian uang di bawah $1000

Pemecahan masalah

Jika Anda mengalami masalah selama penyiapan atau pengujian, lihat masalah dan solusi umum berikut:

Isu Solusi

"AccessDeniedException"

Periksa izin IAM untuk batuan-agentcore: *

Gateway tidak merespons

Tunggu 30-60 detik setelah penerapan untuk propagasi DNS

Penerapan gagal

Jalankan status agentcore untuk memeriksa status sumber daya dan meninjau pesan kesalahan

Kebijakan tidak ditegakkan

Verifikasi mesin kebijakan terpasang dalam mode ENFORCE dengan menjalankan status agentcore

Kesalahan validasi Cedar selama penerapan

Kebijakan cedar harus menggunakan ARN sumber daya tertentu — sumber daya wildcard (misalnya,permit(principal, action, resource);) ditolak. Gunakan ARN gateway dari status agentcore di bidang kebijakan Cedar Anda. resource

Panggilan alat ditolak secara tak terduga

Mesin kebijakan sedang menegakkan dan kebijakan Cedar menolak permintaan tersebut. Verifikasi bahwa kebijakan action dan resource bidang sesuai dengan panggilan alat yang sedang dilakukan.

Penerapan gagal dengan kesalahan validasi kebijakan

Mode validasi default FAIL_ON_ANY_FINDINGS menjalankan pemeriksaan skema dan validasi semantik, menolak kebijakan jika salah satu menghasilkan temuan. Anda dapat mengatur mode validasi IGNORE_ALL_FINDINGS untuk menjalankan hanya pemeriksaan skema jika Anda tidak memerlukan validasi semantik. Untuk produksi, perbaiki kebijakan Cedar untuk lulus pemeriksaan skema dan validasi semantik.

Bersihkan

Untuk menghapus sumber daya yang dibuat dalam tutorial ini, hapus gateway dan mesin kebijakan, lalu gunakan kembali:

agentcore remove gateway --name PolicyGateway agentcore remove policy-engine --name RefundPolicyEngine agentcore deploy

Menghapus gateway tidak secara otomatis menghapus mesin kebijakan terlampirnya. Anda harus menghapus mesin kebijakan secara terpisah menggunakanagentcore remove policy-engine.