View a markdown version of this page

Memulai dengan Kebijakan di AgentCore - Batu Dasar Amazon AgentCore

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

Memulai dengan 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 menegakkan aturan bisnis untuk jumlah pengembalian dana.

Prasyarat

Sebelum memulai, pastikan Anda memiliki yang berikut:

  • AWS Akun dengan kredenSIAL dikonfigurasi. Untuk mengkonfigurasi kredenSIAL, Anda dapat menginstal dan menggunakan AWS Command Line Interface dengan mengikuti langkah-langkah di Mem ulai dengan AWS CLI.

  • Node.js 20+ 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.

AgentCore CLI memeriksa tumpukan bootstrap CDK selama penerapan. Jika bootstrap diperlukan, penerapan interaktif meminta konfirmasi. Gunakan agentcore deploy --yes untuk mengotorisasinya secara otomatis.

Langkah 1: Setup dan instal

Instal AgentCore CLI:

npm install -g @aws/agentcore

Buat AgentCore proyek baru:

contoh
AgentCore CLI
  1. agentcore create --name PolicyDemo --language Python --framework Strands \ --model-provider Bedrock --memory none cd PolicyDemo

    Opsi ini membuat agen Python Strands yang menggunakan Amazon Bedrock dan tanpa memori. Per cd intah 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 melalui pemilihan 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. J agentcore alankan untuk membuka TUI, lalu pilih add dan pilih Gateway:

  2. Masukkan nama gateway:

    Wizard gateway: masukkan nama
  3. Pilih jenis otorisasi. Untuk tutorial ini, pilih TIDAK ADA:

    Wizard gateway: pilih NONE Authorizer
  4. Konfigurasikan opsi lanjutan atau terima default:

    Wizard gateway: konfigurasi lanjutan
  5. Tinjau konfigurasi dan tekan Enter untuk mengonfirmasi:

    Wizard gateway: 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. Buat refund_tools.json file di direktori proyek Anda dengan konten berikut:

[ { "name": "process_refund", "description": "Process a customer refund request for a given dollar amount", "inputSchema": { "type": "object", "description": "Input for processing a refund", "properties": { "amount": { "type": "integer", "description": "The refund amount in dollars" } }, "required": ["amount"] } } ]
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. Jalan agentcore kan 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 jalur file Lambda ARN dan 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. J agentcore alankan untuk membuka TUI, lalu pilih add dan pilih Policy Engine:

  2. Masukkan nama mesin kebijakan:

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

    Wizard mesin kebijakan: lampirkan gateway
  4. Pilih mode penegakan. Pilih EN FORCE:

    Wizard mesin kebijakan: pilih mode penegakan

Buat kebijakan Cedar

Berikan file kebijakan Cedar secara langsung. Cedar tidak mengizinkan sumber daya wildcard dalam pernyataan kebijakan. Ini memerlukan penyebaran dua fase: pertama penerapan tanpa kebijakan untuk membuat gateway, lalu ambil gateway ARN. Kemudian tambahkan kebijakan dan gunakan kembali.

  1. Terapkan gateway terlebih dahulu (lihat Langkah 3: Deplo y), lalu jalankan status agentcore untuk mendapatkan gateway ARN.

  2. Buat refund_policy.cedar file di direktori proyek Anda, ganti gateway ARN dari langkah sebelumnya:

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

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

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 ia memanggil AWS API yang membutuhkan gateway ARN untuk mengubah bahasa alami menjadi Cedar. Pendekatan ini secara otomatis menyelesaikan ARN gateway, menjadikannya jalur paling sederhana untuk membuat kebijakan.

Memahami penyiapannya

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

Buat Gateway

Per intah 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

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

Buat Mesin Kebijakan

Per intah agentcore add policy-engine membuat 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. Per intah 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 mengizinkan pengembalian uang di bawah USD $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_return)

  • resource— Instance gateway tempat kebijakan berlaku

  • whenKondisi — Persyaratan tambahan (jumlah harus < USD $1000)

Lampirkan Kebijakan ke Gateway

--attach-mode ENFORCEF --attach-to-gateways lag 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 dilarang 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, dan menyediakan mesin kebijakan. Jika Anda menyediakan file kebijakan ARN-based Cedar, tambahkan setelah penerapan ini dan jalankan agentcore deploy lagi untuk melampirkannya. Proses ini memakan waktu sekitar 2-3 menit per penerapan.

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

agentcore status

Langkah 4: Uji kebijakan

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

URL gateway yang ditampilkan dalam output status agentcore adalah titik akhir dasar. Permintaan MCP pergi ke /mcp jalur pada titik akhir itu, jadi tambahkan /mcp ke URL sebelum mengirim permintaan.

Tes 1: Pengembalian uang USD $500 (harus diizinkan)

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

curl -X POST ++<GATEWAY_URL>++/mcp \ -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 uang USD $2000 (harus ditolak)

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

curl -X POST ++<GATEWAY_URL>++/mcp \ -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 ditampilkan dalam output status agentcore, lalu tambahkan. /mcp

Apa yang telah Anda bangun

Melalui tutorial ini, Anda telah membuat:

  • MCP Server (Gateway) - Titik akhir yang dikelola untuk alat

  • Target lambda — Alat pemrosesan pengembalian dana terdaftar di gateway

  • Mesin Cedar-based kebijakan — sistem evaluasi kebijakan

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

Pemecahan masalah

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

Isu Solusi

"AccessDeniedException"

Periksa izin IAM untuk bedrock-agentcore: *

Gateway tidak merespons

Tunggu 30-60 detik setelah penerapan untuk propagasi DNS

Penerapan gagal

Jalan kan status agentcore untuk memeriksa status sumber daya dan meninjau pesan kesalahan

Kebijakan tidak ditegakkan

Verifikasi mesin kebijakan dilampirkan 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 gateway ARN dari status agentcore di resource bidang kebijakan Cedar Anda.

Panggilan alat ditolak secara tak terduga

Mesin kebijakan menegakkan dan kebijakan Cedar menolak permintaan. Pastikan kebijakan action dan resource bidang sesuai dengan panggilan alat yang 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 yang terlampir. Anda harus menghapus mesin kebijakan secara terpisah menggunakanagentcore remove policy-engine.