View a markdown version of this page

Praktik terbaik keamanan untuk AgentCore Runtime - Batu Dasar Amazon AgentCore

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

Praktik terbaik keamanan untuk AgentCore Runtime

Topik ini mengkonsolidasikan praktik terbaik keamanan untuk Amazon Bedrock Runtime AgentCore . Gunakan rekomendasi ini untuk mengamankan penerapan agen Anda, melindungi data, dan mengikuti prinsip hak istimewa terendah.

Isolasi sesi dan perlindungan data

Amazon Bedrock AgentCore Runtime menyediakan batas isolasi yang kuat melalui microVM khusus. Ikuti praktik berikut untuk menjaga perlindungan data:

  • Memahami batas isolasi — Setiap sesi pengguna berjalan di microVM khusus dengan CPU, memori, dan sistem file yang terisolasi. Perintah dan kode agen tidak dapat mengakses beban kerja pelanggan lain atau keluar dari batas VM. Setelah sesi selesai, seluruh microVM dihentikan dan memori dibersihkan.

  • Menerapkan pemetaan sesi-ke-pengguna di backend Anda — AgentCore tidak menerapkan pemetaan sesi-ke-pengguna. Backend klien Anda harus menjaga hubungan antara pengguna dan ID sesi mereka, dan menerapkan manajemen siklus hidup seperti jumlah sesi maksimum per pengguna.

  • Waspadai perilaku izin sistem file — Saat menggunakan sistem file persist en, izin disimpan tetapi tidak diberlakukan dalam sesi. chmoddan stat bekerja dengan benar, tetapi pemeriksaan akses selalu berhasil karena agen berjalan sebagai satu-satunya pengguna di microVM.

  • Memahami eksposur kredenSIAL dalam VM — Setiap kode atau aktor yang berjalan di dalam microVM dapat mengakses kredentif peran eksekusi dengan memanggil titik akhir metadata (MMDS). Lingkup izin peran eksekusi Anda dengan hati-hati. Untuk informasi selengkapnya, lihat Manajemen KredenSIAL.

IAM dan hak istimewa terkecil

Terapkan prinsip hak istimewa terkecil ke semua kebijakan IAM yang terkait dengan sumber daya AgentCore Runtime Anda:

  • Jangan gunakan CLI-generated kebijakan dalam produksi — Kebijakan IAM yang dibuat oleh AgentCore CLI dirancang untuk tujuan pengembangan dan pengujian. Izin ini memberikan akses luas dan tidak cocok untuk produksi. Buat kebijakan IAM khusus yang membatasi izin hanya pada sumber daya dan tindakan tertentu yang diperlukan. Untuk referensi lengkapnya, lihat Iz in IAM untuk AgentCore Runtime.

  • Izin cakupan untuk ARN runtime tertentu — Hindari pernyataan sumber daya wildcard. Gunakan ARN lengkap sumber daya runtime Anda di Resource bidang kebijakan IAM.

  • Batasi InvokeAgentRuntimeForUser - Hanya prinsipal tepercaya yang harus memiliki izin ini. Cakupan ke sumber daya runtime tertentu menggunakan kondisi sumber daya IAM.

  • Tolak delegasi id pengguna jika tidak diperlukan — Untuk runtime di mana delegasi id pengguna tidak diperlukan, tolak tindakan secara eksplisit:

    { "Statement": [ { "Sid": "DenyUserIdDelegation", "Effect": "Deny", "Action": "bedrock-agentcore:InvokeAgentRuntimeForUser", "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" } ] }
  • Mencegah eskalasi hak istimewa — Pastikan bahwa peran eksekusi yang terkait dengan runtime Anda memiliki hak istimewa yang sama atau lebih sedikit daripada kepala sekolah yang dapat memanggilnya. Untuk informasi selengkapnya, lihat Manajemen KredenSIAL.

  • Gunakan kunci kondisi IAM untuk menerapkan penerapan VPC — Gunakan bedrock-agentcore:subnets dan kunci bedrock-agentcore:securityGroups kondisi untuk mengharuskan semua runtime digunakan di VPC yang disetujui. Sebagai contoh, lihat Menggunakan kunci kondisi VPC dengan AgentCore Runtime.

  • Gunakan Penganalisis Akses IAM — Validasi kebijakan IAM Anda untuk memastikan kebijakan tersebut mematuhi praktik terbaik dan prinsip hak istimewa terendah.

Resource-based kebijakan dan akses lintas akun

Resource-based kebijakan menyediakan kontrol akses halus langsung pada sumber daya runtime Anda:

  • Memahami otorisasi hierarkis — Untuk operasi API runtime seperti InvokeAgentRuntimeInvokeAgentRuntimeCommand,InvokeAgentRuntimeCommandShell, dan, AWS mengevaluasi kebijakan pada runtime agen dan titik akhir agen. Keduanya harus mengizinkan tindakan.

  • Konfigurasikan kedua sumber daya untuk akses lintas akun — Untuk memberikan akses lintas akun, buat kebijakan berbasis sumber daya pada runtime agen dan titik akhir agen. Jika salah satu sumber daya tidak memiliki izin eksplisit, permintaan ditolak.

  • Ingatlah bahwa penolakan eksplisit selalu menang — Jika ada kebijakan (berbasis identitas atau berbasis sumber daya) secara eksplisit menolak tindakan, akses ditolak terlepas dari kebijakan lainnya.

Untuk detail lengkap, lihat Resource-based kebijakan untuk Amazon Bedrock AgentCore.

Pencegahan wakil yang bingung

Lindungi peran eksekusi Anda dari masalah wakil yang membingungkan dengan menggunakan kunci konteks kondisi global dalam kebijakan kepercayaan:

  • Gunakan aws:SourceArn dan aws:SourceAccount — Tambahkan kondisi ini ke kebijakan kepercayaan peran eksekusi Anda untuk membatasi AgentCore sumber daya mana yang dapat mengambil peran tersebut:

    { "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:*" } } } ] }
  • Gunakan ARN penuh bila memungkinkan — Jika Anda mengetahui sumber daya runtime tertentu, gunakan ARN lengkapnya sebagai aws:SourceArn pengganti wildcard.

Untuk informasi lebih lanjut, lihat pencegahan wakil yang Cross-service bingung.

Validasi masukan

Validasi semua input yang diterima titik masuk agen Anda sebelum meneruskannya ke kerangka kerja agen:

  • Terapkan jenis string pada bidang prompt —Penerimaan titik masuk payload Anda diurai dari JSON arbitrer. Seorang pemanggil dapat mengirim nilai non-string (seperti daftar atau objek) di prompt bidang. Jika kerangka kerja agen Anda menerima blok konten non-string — terutama toolUse blok — kerangka kerja mungkin mengirimkan alat secara langsung. Ini melewati penalaran model, pagar pembatas, dan penegakan cepat sistem. Selalu validasi bahwa prompt adalah string sebelum meneruskannya ke agen:

    @app.entrypoint def invoke(payload, context): user_message = payload.get("prompt", "") if not isinstance(user_message, str) or not user_message.strip(): return {"error": "Invalid input: 'prompt' must be a non-empty string"} result = agent(user_message) return {"response": result.message}
  • Tolak atau hapus blok toolUse konten — Jika agen Anda menerima array pesan terstruktur (untuk percakapan multi-putaran), filter blok toolUse konten apa pun dari pesan yang disediakan pengguna. toolUseBlok dalam riwayat pesan dapat menyebabkan loop peristiwa kerangka kerja agen untuk mengeksekusi alat bernama segera tanpa evaluasi model.

  • Validasi struktur muatan dengan skema —Gunakan Pydantic, Zod, atau pustaka skema yang setara untuk menegakkan bahwa badan permintaan sesuai dengan struktur yang Anda harapkan. Tentukan prompt sebagai str (tidakAny) dalam skema Anda:

    from pydantic import BaseModel class InvocationRequest(BaseModel): prompt: str # Enforces string type at the schema level
  • Jangan mengandalkan nilai default sebagai validasi —Pola seperti payload.get("prompt", "Hello") menyediakan default tetapi tidak menolak input non-string. Nilai yang dikembalikan adalah apa pun yang dikirim pemanggil, yang mungkin berupa dict atau list yang berisi blok konten.

Memajukan runtime Anda dengan AgentCore Gateway

Pola umum adalah memaj AgentCore ukan Runtime Anda dengan AgentCore Gateway sehingga gateway menjadi titik masuk tunggal yang diatur ke runtime. Menempatkan gateway di depan memungkinkan Anda menerapkan kontrol di luar lingkungan agen sendiri:

  • Policy-based otorisasi — Gunakan mesin kebijakan gateway untuk mengontrol pemanggil mana yang dapat memanggil target mana dan dalam kondisi apa. Untuk informasi selengkapnya, lihat Menggunakan kebijakan untuk mengontrol akses ke target gateway.

  • Guardrails — Terapkan Amazon Bedrock Guardrails melalui mesin kebijakan untuk menyaring permintaan dan tanggapan. Untuk informasi selengkapnya, lihat Menggunakan pagar pembatas dalam kebijakan.

  • Pencegat permintaan dan respons — Periksa atau ubah lalu lintas dengan fungsi pencegat Lambda yang dikonfigurasi pada gateway.

Kontrol ini hanya melindungi Anda jika semua lalu lintas benar-benar mengalir melalui gateway. Jika pemanggil dapat mencapai runtime secara langsung, ia melewati kebijakan gateway, pagar pembatas, dan pencegat sepenuhnya. Untuk mencegah hal ini, batasi runtime untuk menerima pemanggilan hanya ketika mereka berasal dari gateway Anda. Cara Anda melakukannya tergantung pada jenis otorisasi inbound runtime:

Untuk mengatur ini, Anda membuat gateway, menerapkan runtime Anda, dan kemudian menambahkan runtime sebagai target gateway pada gateway itu. Untuk konfigurasi target, otorisasi keluar, dan format URL pemanggilan, lihat Target AgentCore Runtime.

Praktik terbaik otentikasi

AgentCore Runtime mendukung otentikasi token pembawa IAM SigV4 dan JWT. Ikuti praktik berikut untuk mengamankan akses:

  • Pilih metode otentikasi yang tepat — Gunakan IAM SIGv4 untuk panggilan layanan-ke-layanan di dalamnya. AWS Gunakan otentikasi token pembawa JWT saat pengguna akhir mengotentikasi langsung melalui penyedia identitas. Runtime dapat mendukung satu metode pada satu waktu; membuat versi terpisah untuk jenis otentikasi yang berbeda.

  • Lebih suka identifikasi JWT-based pengguna untuk produksi — Saat agen Anda mengambil token OAuth atas nama pengguna akhir, pilih jalur token pembawa JWT (GetWorkloadAccessTokenForJWT), yang memvalidasi penerbit, tanda tangan, dan kedaluwarsa token. Jal UserId ur (GetWorkloadAccessTokenForUserId/X-Amzn-Bedrock-AgentCore-Runtime-User-Idheader) memperlakukan pengidentifikasi pengguna sebagai string buram tanpa verifikasi IdP — gunakan hanya untuk pengembangan, skenario awal cepat, atau arsitektur perusahaan yang menyelesaikan identitas pengguna di hulu. Untuk informasi selengkapnya, lihat M endapatkan token akses beban kerja.

  • Konfigurasikan otorisasi JWT sepenuhnya - Saat menggunakan otentikasi JWT, konfigurasikan semua bidang validasi yang tersedia: URL penemuan, audiens yang diizinkan, klien yang diizinkan, cakupan yang diizinkan, dan klaim kustom yang diperlukan.

  • Jangan pernah hardcode token dalam kode produksi — Gunakan mekanisme pengambilan token yang aman. Token hardcode adalah risiko keamanan dalam kontrol sumber dan artefak yang digunakan.

  • Turunkan id pengguna dari prinsipal yang diautentikasi — Jika Anda menggunakan X-Amzn-Bedrock-AgentCore-Runtime-User-Id header, nilainya harus diturunkan dari konteks prinsipal yang diautentikasi (identitas pemanggil IAM atau klaim token pengguna), bukan dari nilai yang disediakan klien secara arbitrer. Ini mencegah pengguna yang diautentikasi menyamar sebagai pengguna lain.

  • Tolak ForUserId jika tidak diperlukan - Untuk beban kerja yang selalu memiliki JWT tersedia, tolak secara eksplisit bedrock-agentcore:GetWorkloadAccessTokenForUserId dan bedrock-agentcore:InvokeAgentRuntimeForUser dalam kebijakan IAM. Ini memastikan semua identifikasi pengguna melewati jalur JWT yang diverifikasi secara kriptografis.

  • Konfigurasikan kebijakan titik akhir VPC untuk metode autentikasi Anda — Kebijakan titik akhir VPC hanya dapat membatasi pemanggil berdasarkan prinsipal IAM, bukan pengguna OAuth. Untuk OAuth-based permintaan, set Principal el ke * dalam kebijakan titik akhir. Untuk SigV4-based otentikasi, tentukan identitas IAM yang diizinkan.

Untuk detail implementasi, lihat Meng autentikasi dan mengotorisasi dengan Auth Masuk dan Auth Keluar.

Manajemen kredensi dan rahasia

Lindungi kredenSIAL yang digunakan oleh agen dan lingkungan runtime Anda:

  • Gunakan AgentCore Identitas untuk otentikasi keluar — AgentCore Identity mengelola kredenSIAL OAuth dan kunci API dengan aman, mencegah paparan kredenSIAL dalam kode agen atau log. Gunakan untuk semua akses layanan pihak ketiga (Slack, GitHub, Zoom).

  • Memahami eksposur kredensi MMDS — Layanan Metadata MicroVM (MMDS) menyediakan kredentif peran eksekusi untuk kode apa pun yang berjalan di VM, mirip dengan IMDS EC2. Cakupan izin peran eksekusi hanya untuk apa yang dibutuhkan agen Anda.

  • Aktifkan MMDSv2 — Mulai 30 Juni 2026, runtime agen Anda harus mengaktifkan MMDSv2. Runtime tanpa MMDSv2 diaktifkan tidak dapat dipanggil dan mengembalikan a. ValidationException Untuk mengaktifkan, panggil UpdateAgentRuntime dengan requireMMDSV2 set to true inmetadataConfiguration. Untuk informasi selengkapnya tentang menyelesaikan kesalahan ini, lihat pemecahan masalah MMDSv2. ValidationException

  • Jalankan kontainer sebagai pengguna non-root — Saat membuat gambar kontainer khusus, konfigurasikan agar dijalankan sebagai pengguna non-root. Ini membatasi dampak potensi kerentanan eksekusi kode.

  • Pisahkan kredentif yang didelegasikan pengguna dan otonom — Gunakan otentikasi yang didelegasikan pengguna (Pemberian Kode Otorisasi) saat agen Anda bertindak atas nama pengguna tertentu. Gunakan otentikasi otonom (Client Credentials Grant) saat agen beroperasi secara independen.

Untuk informasi selengkapnya, lihat Manajemen Kredensi dan AgentCore Identitas.

Keamanan jaringan

Akses jaringan aman ke dan dari lingkungan AgentCore Runtime Anda:

  • Menyebarkan runtime di VPC untuk akses sumber daya pribadi — Konfigurasikan konektivitas VPC untuk mengakses database pribadi, API internal, dan layanan tanpa mengeksposnya ke internet. Untuk detail konfigurasi, lihat Meng onfigurasi AgentCore Runtime untuk VPC.

  • Gunakan AWS PrivateLink untuk akses API - Buat titik akhir VPC antarmuka untuk bidang AgentCore data (com.amazonaws.region.bedrock-agentcore) dan bidang kontrol (com.amazonaws.region.bedrock-agentcore-control) untuk menghindari penjelajahan internet. Untuk informasi selengkapnya, lihat Gunakan AWS PrivateLink.

  • Terapkan hak istimewa terkecil ke grup keamanan — Tentukan aturan keluar yang hanya mengizinkan lalu lintas minimum yang diperlukan. Jangan membuka akses keluar luas kecuali diperlukan.

  • Konfigurasikan titik akhir VPC yang diperlukan untuk agen kontainer — Untuk agen VPC-mode kontainer, konfigurasikan titik akhir VPC untuk ECR (com.amazonaws.region.ecr.dkr,com.amazonaws.region.ecr.api), S3 (titik akhir com.amazonaws.region.s3 gateway), dan CloudWatch Log (). com.amazonaws.region.logs Titik akhir gateway S3 menghilangkan biaya pemrosesan data gateway NAT untuk penarikan lapisan gambar ECR.

  • Cakupan kebijakan titik akhir gateway S3 untuk agen kontainer — Batasi kebijakan titik akhir gateway S3 hanya ke bucket yang digunakan Amazon ECR untuk penyimpanan lapisan gambar:

    { "Statement": [ { "Sid": "AllowECRLayerAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::prod-region-starport-layer-bucket/*"] } ] }

    Ganti region dengan pengen AWS al Wilayah Anda (misalnya,us-east-2).

  • Cakupan kebijakan titik akhir gateway S3 untuk agen penerapan kode langsung — Untuk penerapan berbasis zip, batasi kebijakan ke bucket artefak kode milik layanan internal. Tambahkan aws:PrincipalServiceName kondisi untuk memastikan hanya prinsipal AgentCore layanan yang dapat mengakses bucket melalui kebijakan titik akhir ini:

    { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::acr-code-*-region-an", "arn:aws:s3:::acr-code-*-region-an/*" ], "Condition": { "StringEquals": { "aws:PrincipalServiceName": "bedrock-agentcore.amazonaws.com" } } } ] }

    Ganti region dengan pengen AWS al Wilayah Anda (misalnya,us-west-2). Buc AgentCore ket artefak kode dibuat di bucket tujuan umum namespace regional Akun. Hanya AWS dapat memiliki nama bucket aktual yang digunakan oleh layanan. aws:PrincipalServiceNameKondisi ini memastikan bahwa hanya prinsipal AgentCore layanan yang dapat mengakses bucket melalui kebijakan titik akhir ini. Jika Anda juga menggunakan sistem file persist en, tambahkan bucket penyimpanan sesi ke kebijakan ini. Untuk informasi selengkapnya, lihat Meng onfigurasi AgentCore Runtime untuk VPC.

  • Gunakan subnet pribadi dengan NAT gateway — Subnet publik tidak menyediakan akses internet untuk Runtime. AgentCore Selalu tempatkan ENI runtime di subnet pribadi dengan rute ke gateway NAT untuk akses internet keluar.

  • Keamanan transportasi — Semua koneksi menggunakan TLS 1.2 atau lebih tinggi. WebSocket koneksi, termasukInvokeAgentRuntimeCommandShell, menggunakan WSS (WebSocket Secure) melalui HTTPS secara eksklusif. Kon ws:// eksi plaintext tidak didukung.

  • Menerapkan batas header - Header khusus dibatasi hingga 4KB per nilai dan 20 header per runtime. AuthorizationHeader dicadangkan untuk agen dengan akses masuk OAuth.

Enkripsi

AgentCore Runtime melindungi data dengan enkripsi saat istirahat dan dalam transit:

  • Enkripsi dalam transit — Semua komunikasi antara klien dan AgentCore Runtime, dan antara AgentCore Runtime dan dependensinya, dilindungi menggunakan TLS 1.2 atau lebih tinggi. Ini dikonfigurasi secara default dan tidak memerlukan pengaturan tambahan.

  • Enkripsi saat diam — Data diam dienkripsi menggunakan kunci enkripsi yang AWS dimiliki dari AWS Key Management Service (AWS KMS) secara default.

  • Gunakan TLS 1.3 jika memungkinkan — Meskipun TLS 1.2 adalah minimum, AWS merekomendasikan TLS 1.3 untuk peningkatan keamanan dan kinerja.

Untuk informasi selengkapnya tentang enkripsi saat istirahat, lihat.

Audit dan pemantauan

Menerapkan audit komprehensif untuk mendeteksi dan menyelidiki peristiwa keamanan:

  • Akti CloudTrail fkan logging — AWS CloudTrail merekam panggilan API termasuk InvokeAgentRuntimeInvokeAgentRuntimeCommand,InvokeAgentRuntimeCommandShell,, dan operasi pesawat kontrol. Setiap catatan mencakup identitas pemanggil, stempel waktu, alamat IP sumber, dan status respons.

  • Gunakan CloudWatch Log untuk audit perintah — AgentCore Runtime mengirimkan ID permintaan dan perintah input ke grup log CloudWatch log agen Anda. Gunakan log ini untuk memelihara jejak audit perintah yang dieksekusi dalam sesi Anda.

  • Korelasikan log menggunakan ID permintaan — Gunakan ID permintaan untuk mengkorelasikan CloudTrail catatan (siapa yang memanggil API) dengan CloudWatch Log (perintah apa yang dijalankan).

  • Menyiapkan filter dan alarm metrik — Konfigurasikan filter metrik CloudWatch Log untuk mendeteksi pola perintah yang tidak terduga atau upaya akses yang tidak sah. Buat alarm untuk memberi tahu tim Anda tentang anomali.

  • Log hubungan delegasi id pengguna — Saat menggunakan X-Amzn-Bedrock-AgentCore-Runtime-User-Id header, catat hubungan antara prinsipal IAM yang diautentikasi dan nilai id pengguna untuk tujuan audit.

  • Aktifkan Log Aliran VPC — Untuk VPC-connected runtime, aktifkan Log Aliran VPC untuk mengaudit lalu lintas tingkat jaringan dan mengidentifikasi pola komunikasi yang tidak terduga.

  • Tinjau CloudTrail log secara berkala — Tinjau log secara berkala untuk upaya akses yang tidak sah, terutama untuk beban kerja sensitif.

Model tanggung jawab bersama

Memahami pembagian tanggung jawab keamanan antara AWS dan Anda:

AWS tanggung jawab:
  • Infrastruktur aman dan isolasi microVM di tingkat perangkat keras

  • Patching kernel OS untuk semua mode penerapan

  • Penambalan runtime bahasa untuk penerapan kode langsung

  • Keamanan infrastruktur jaringan

  • Ketersediaan dan ketahanan layanan

Tanggung jawab Anda:
  • Keamanan kode agen dan manajemen ketergantungan

  • Kontrol akses IAM dan kebijakan sumber daya

  • Keamanan perintah yang dieksekusi dalam sesi runtime

  • Session-to-user penegakan pemetaan

  • Pembaruan gambar kontainer (untuk penerapan kontainer) - bangun kembali dengan image dasar aman terbaru secara teratur

  • Validasi input dan pencegahan injeksi cepat — termasuk memvalidasi InvokeHarness input saat menggunakan harness terkelola (lihat Harness berbagi batas kepercayaan AgentCore Runtime)

  • Konfigurasi jaringan (grup keamanan, titik akhir VPC, tabel rute)

penting

Untuk penerapan kode langsung, AgentCore Runtime menerapkan patch keamanan ke OS runtime secara otomatis. AgentCore Runtime tidak menerapkan patch keamanan ke runtime bahasa pemrograman setelah mencapai tanggal akhir dukungan. Runtime yang tidak digunakan lagi disediakan apa adanya dan mungkin berisi kerentanan yang tidak ditambal. Untuk runtime yang didukung, lihat Runtime yang didukung untuk penerapan kode.

catatan

Patch keamanan dapat mengekspos masalah dengan kode yang ada yang bergantung pada perilaku tidak aman sebelumnya. Jika risiko ini tidak dapat diterima, gunakan image kontainer untuk menyebarkan agen Anda.

Harness berbagi batas kepercayaan AgentCore Runtime

Harness yang dikelola dibangun di AgentCore Runtime. Itu tidak menambahkan lapisan keamanan antara pemanggil dan microVM. Batas keamanan sama dengan AgentCore Runtime: otentikasi IAM atau JWT dikombinasikan dengan isolasi microVM.

Untuk model keamanan harness lengkap, termasuk detail batas kepercayaan, risiko parameter konfigurasi model, dan panduan validasi input, lihat Harness Shared Responsibility Model.

Keamanan eksekusi perintah

AgentCore Runtime menyediakan dua API eksekusi perintah:

  • InvokeAgentRuntimeCommand— One-shot, eksekusi perintah non-interaktif berakhir HTTP/2. Tindakan IAM:bedrock-agentcore:InvokeAgentRuntimeCommand.

  • InvokeAgentRuntimeCommandShell— WebSocket Sesi shell interaktif dengan akses PTY persisten. Tindakan IAM:bedrock-agentcore:InvokeAgentRuntimeCommandShell.

Kedua API beroperasi dalam batas isolasi microVM yang sama dan berbagi model keamanan yang sama. Terapkan praktik ini untuk keduanya:

  • Memahami batas keamanan - Perintah memiliki akses penuh ke sistem file kontainer dan kredenSIAL atau rahasia yang dikonfigurasi dalam MicroVM. Batas isolasi adalah microVM itu sendiri. Di bawah model tanggung jawab bersama, Anda bertanggung jawab atas keamanan kode apa pun yang dieksekusi dalam wadah runtime Anda.

  • Gunakan operasi deterministik untuk tugas deterministik — Gunakan InvokeAgentRuntimeCommand atau InvokeAgentRuntimeCommandShell untuk operasi seperti tes, git, dan build. Jangan merutekan operasi deterministik melalui LLM via. InvokeAgentRuntime

  • Batasi siapa yang dapat menjalankan perintah — Gunakan kebijakan IAM untuk membatasi kepala sekolah mana yang dapat memanggil InvokeAgentRuntimeCommand atau. InvokeAgentRuntimeCommandShell Tidak semua pengguna yang dapat memanggil agen harus dapat menjalankan perintah arbitrer. Contoh sumber daya ARN:arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent.

  • WebSocket shell hanya menggunakan wss://— InvokeAgentRuntimeCommandShell koneksi dibuat secara eksklusif melalui WSS (WebSocket Secure). Kon ws:// eksi plaintext tidak didukung. Penelepon mengotentikasi melalui SIGv4 saat upgrade. WebSocket

  • Menjaga lalu lintas dalam jaringan Anda — Konfigurasikan titik akhir VPC untuk menghindari penjelajahan internet untuk panggilan API eksekusi perintah.

  • Tetapkan batas waktu yang sesuai — Konfigurasikan batas waktu perintah berdasarkan durasi eksekusi yang diharapkan untuk mencegah pemborosan sumber daya dari proses yang tidak berjalan.

Untuk detail lengkap, lihat Menjalankan perintah dalam sesi runtime.

Server platform VM

Setiap AgentCore Runtime MicroVM menyertakan server platform yang berjalan di localhost. Server ini mengelola siklus hidup sesi VM, operasi penyimpanan, dan menyediakan akses shell untuk mendukung operasi runtime. Server platform berjalan sepenuhnya di dalam microVM agen, yang merupakan batas isolasi — tidak berisi kode infrastruktur penting layanan dan tidak memiliki akses ke sesi lain atau beban kerja pelanggan.

penting

Segala sesuatu yang berjalan di dalam microVM, termasuk interaksi dengan server platform, adalah tanggung jawab Anda di bawah model tanggung jawab bersama. Jika kode agen atau alat berinteraksi dengan server platform, dampaknya terbatas pada sesi VM saat ini — itu tidak dapat mempengaruhi sesi lain atau melintasi batas isolasi. Namun, akses yang tidak sah dapat mengganggu siklus hidup VM sesi atau menyediakan akses shell dalam sesi tersebut.

Ikuti praktik berikut untuk membatasi akses yang tidak perlu ke server platform:

  • Batasi akses localhost dalam kode agen - Konfigurasikan agen Anda dan alat jaringan apa pun untuk mencegah akses tidak terbatas ke localhost. Kode agen tidak boleh membuat panggilan HTTP sewenang-wenang ke localhost kecuali diperlukan untuk integrasi tertentu.

  • Izinkan daftar hanya port yang diperlukan untuk pengaturan sidecar — Jika arsitektur Anda menggunakan pola container-in-container atau sidecar di localhost, secara eksplisit hanya mengizinkan daftar port tertentu yang digunakan layanan sidecar Anda. Jangan membuka akses localhost yang luas.

  • Alat jaringan audit untuk jangkauan localhost — Tinjau alat apa pun yang Anda berikan kepada agen Anda (seperti alat permintaan HTTP atau utilitas jaringan umum) untuk memastikan mereka tidak dapat membuat permintaan yang tidak diinginkan ke titik akhir localhost. Terapkan pemfilteran URL atau allowlisting di tingkat alat.