Gunakan titik akhir VPC antarmuka (AWS PrivateLink) untuk membuat koneksi pribadi antara VPC Anda dan sumber daya Amazon Bedrock Anda AgentCore
Anda dapat menggunakan AWS PrivateLink untuk membuat koneksi pribadi antara VPC Anda dan Amazon Bedrock. AgentCore Anda dapat mengakses AgentCore seolah-olah itu ada di VPC Anda, tanpa menggunakan gateway internet, perangkat NAT, koneksi VPN, atau koneksi Direct Connect. Instans di VPC Anda tidak memerlukan alamat IP publik untuk mengakses. AgentCore
Anda membuat koneksi pribadi ini dengan membuat titik akhir antarmuka, yang didukung oleh AWS PrivateLink. Kami membuat antarmuka jaringan endpoint di setiap subnet yang Anda aktifkan untuk titik akhir antarmuka. Ini adalah antarmuka jaringan yang dikelola pemohon yang berfungsi sebagai titik masuk untuk lalu lintas yang ditakdirkan. AgentCore
Untuk informasi selengkapnya, lihat Akses AWS layanan melalui AWS PrivateLink AWS PrivateLink Panduan.
Pertimbangan untuk AgentCore
Sebelum Anda menyiapkan titik akhir antarmuka AgentCore, tinjau Pertimbangan dalam Panduan. AWS PrivateLink
AgentCore menyediakan tiga AWS PrivateLink titik akhir:
-
Titik akhir bidang data - com.amazonaws.region.bedrock-agentcore
-
Titik akhir bidang kontrol - com.amazonaws.region.bedrock-agentcore-control
-
Titik akhir gerbang - com.amazonaws.region.bedrock-agentcore.gateway
Tabel berikut menunjukkan status AWS PrivateLink dukungan untuk setiap AgentCore primitif:
| Primitif |
Bidang data |
Bidang kontrol |
|
Waktu Aktif
|
Didukung
|
Didukung
|
|
Memori
|
Didukung
|
Didukung
|
|
Built-in Alat (Penerjemah Kode, Alat Browser)
|
Didukung
|
Didukung
|
|
Identitas
|
Didukung
|
Didukung
|
|
Gateway
|
Didukung
|
Didukung
|
|
Evaluasi dan Optimasi
|
Didukung
|
Didukung
|
|
Kebijakan
|
Didukung
|
Didukung
|
Untuk daftar AWS Wilayah di mana titik akhir AgentCore antarmuka tersedia, lihat AWS Wilayah yang Didukung.
API bidang data mendukung header AWS Signature Version 4 (SigV4) untuk otentikasi dan otentikasi Bearer Token (OAuth). Kebijakan titik akhir VPC hanya dapat membatasi penelepon berdasarkan prinsip IAM dan bukan pengguna OAuth. Agar OAuth-based permintaan berhasil melalui titik akhir VPC, prinsipal harus disetel ke* dalam kebijakan titik akhir. Jika tidak, hanya penelepon SiGv4 yang diizinkan yang dapat melakukan panggilan berhasil melalui titik akhir VPC.
AWS Kunci konteks kondisi global IAM didukung. Secara default, akses penuh ke AgentCore diizinkan melalui titik akhir antarmuka. Anda dapat mengontrol akses dengan melampirkan kebijakan titik akhir ke titik akhir antarmuka atau dengan mengaitkan grup keamanan dengan antarmuka jaringan titik akhir.
Buat titik akhir antarmuka untuk AgentCore
Anda dapat membuat titik akhir antarmuka untuk AgentCore menggunakan konsol VPC Amazon atau Antarmuka Baris AWS Perintah (AWS CLI). Untuk informasi selengkapnya, lihat Membuat titik akhir antarmuka di AWS PrivateLink Panduan.
Buat titik akhir antarmuka untuk AgentCore menggunakan format nama layanan berikut:
-
Semua primitif bidang data (Runtime, Built-in Tools, Memory, Identity): com.amazonaws.region.bedrock-agentcore
-
Untuk AgentCore Gateway: com.amazonaws.region.bedrock-agentcore.gateway
-
Untuk operasi bidang kontrol (Runtime dan manajemen Memori): com.amazonaws.region.bedrock-agentcore-control
Jika Anda mengaktifkan DNS pribadi untuk titik akhir antarmuka, Anda dapat membuat permintaan API untuk AgentCore menggunakan nama DNS Regional default. Misalnya, bedrock-agentcore.us-east-1.amazonaws.com.
Buat kebijakan titik akhir untuk titik akhir antarmuka Anda
Kebijakan endpoint adalah sumber daya IAM yang dapat Anda lampirkan ke titik akhir antarmuka. Kebijakan endpoint default memungkinkan akses penuh AgentCore melalui titik akhir antarmuka. Untuk mengontrol akses yang diizinkan AgentCore dari VPC Anda, lampirkan kebijakan titik akhir kustom ke titik akhir antarmuka.
kebijakan titik akhir mencantumkan informasi berikut:
-
Prinsipal yang dapat melakukan tindakan (AWS akun, pengguna IAM, dan peran IAM).
-
Untuk AgentCore Gateway, jika masuknya gateway Anda tidak berbasis AWS Signature Version 4 (SigV4) (misalnya, jika Anda menggunakan OAuth sebagai gantinya), Anda harus menentukan Principal bidang sebagai wildcard *. Otentikasi berbasis SiGv4 memungkinkan Anda untuk mendefinisikan Principal sebagai identitas tertentu. AWS Ini juga berlaku untuk AgentCore Runtime.
-
Tindakan yang dapat dilakukan.
-
Sumber daya untuk melakukan tindakan.
Untuk informasi selengkapnya, lihat Mengontrol akses ke layanan menggunakan kebijakan titik akhir di AWS PrivateLink Panduan.
Kebijakan titik akhir untuk berbagai primitif
Contoh berikut menunjukkan kebijakan titik akhir untuk AgentCore komponen yang berbeda:
contoh
- Runtime
-
-
Kebijakan endpoint berikut memungkinkan prinsipal IAM tertentu untuk memanggil sumber daya runtime agen.
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws::iam::ACCOUNT_ID:user/USERNAME"
},
"Action": [
"bedrock-agentcore:InvokeAgentRuntime"
],
"Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/RUNTIME_ID"
}
]
}
Otentikasi IAM dan OAuth campuran
InvokeAgentRuntimeAPI mendukung dua mode otorisasi titik akhir VPC. Kebijakan contoh berikut memungkinkan prinsipal IAM dan penelepon OAuth untuk mengakses sumber daya runtime agen yang berbeda.
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws::iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:InvokeAgentRuntime"
],
"Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/customAgent1"
},
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"bedrock-agentcore:InvokeAgentRuntime"
],
"Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/customAgent2"
}
]
}
Kebijakan di atas hanya mengizinkan kepala sekolah IAM untuk melakukan InvokeAgentRuntime panggilan kecustomAgent1. Ini juga memungkinkan prinsip IAM dan penelepon OAuth untuk melakukan panggilan ke. InvokeAgentRuntime customAgent2
Kebijakan titik akhir Metadata Sumber Daya Terproteksi (PRM)
GetRuntimeProtectedResourceMetadataAPI mengimplementasikan Metadata Sumber Daya yang Dilindungi OAuth 2.0 (RFC 9728). Klien memanggil titik akhir ini sebelum mereka memiliki kredensi, untuk menemukan server otorisasi mana yang melindungi runtime agen tertentu. Titik akhir ini tidak diautentikasi oleh desain, sehingga Principal harus disetel ke* dalam kebijakan titik akhir.
Kebijakan titik akhir VPC diberlakukan pada permintaan PRM. Jika kebijakan titik akhir Anda tidak mengizinkan secara eksplisitbedrock-agentcore:GetRuntimeProtectedResourceMetadata, permintaan PRM melalui titik akhir tersebut ditolak dengan HTTP 403. Setiap runtime OAuth-configured agen yang diakses melalui titik akhir VPC memerlukan akses PRM untuk penemuan server otorisasi.
Jika Anda memiliki kebijakan deny-all endpoint untuk penegakan perimeter data dan tidak menggunakan otentikasi OAuth atau JWT, permintaan PRM ditolak secara otomatis. Tidak diperlukan konfigurasi tambahan.
Kebijakan endpoint berikut memungkinkan pemanggil untuk menemukan server otorisasi (PRM) sambil membatasi pemanggilan runtime ke prinsipal IAM tertentu:
{
"Statement": [
{
"Sid": "AllowPRMDiscovery",
"Effect": "Allow",
"Principal": "*",
"Action": [
"bedrock-agentcore:GetRuntimeProtectedResourceMetadata"
],
"Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*"
},
{
"Sid": "AllowInvoke",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:InvokeAgentRuntime"
],
"Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/RUNTIME_ID"
}
]
}
Untuk memblokir pencarian PRM lintas akun melalui titik akhir VPC Anda (penegakan perimeter data), lingkup pernyataan izin PRM hanya untuk runtime akun Anda:
{
"Statement": [
{
"Sid": "AllowPRMOwnAccountOnly",
"Effect": "Allow",
"Principal": "*",
"Action": [
"bedrock-agentcore:GetRuntimeProtectedResourceMetadata"
],
"Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*"
},
{
"Sid": "DenyCrossAccountPRM",
"Effect": "Deny",
"Principal": "*",
"Action": [
"bedrock-agentcore:GetRuntimeProtectedResourceMetadata"
],
"NotResource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*"
},
{
"Sid": "AllowInvoke",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:InvokeAgentRuntime"
],
"Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*"
}
]
}
- Code Interpreter Tool
-
-
Kebijakan endpoint berikut memungkinkan prinsipal IAM tertentu untuk memanggil sumber daya Code Interpreter.
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws::iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:InvokeCodeInterpreter"
],
"Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:code-interpreter/CODE_INTERPRETER_ID"
}
]
}
- Memory
-
-
====== Semua operasi pesawat data
Kebijakan endpoint berikut memungkinkan prinsipal IAM tertentu untuk mengakses operasi bidang data us-east-1 untuk Memori tertentu. AgentCore
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws::iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:CreateEvent",
"bedrock-agentcore:DeleteEvent",
"bedrock-agentcore:GetEvent",
"bedrock-agentcore:ListEvents",
"bedrock-agentcore:DeleteMemoryRecord",
"bedrock-agentcore:GetMemoryRecord",
"bedrock-agentcore:ListMemoryRecords",
"bedrock-agentcore:RetrieveMemoryRecords",
"bedrock-agentcore:ListActors",
"bedrock-agentcore:ListSessions",
"bedrock-agentcore:BatchCreateMemoryRecords",
"bedrock-agentcore:BatchDeleteMemoryRecords",
"bedrock-agentcore:BatchUpdateMemoryRecords"
],
"Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/MEMORY_ID"
}
]
}
Akses ke semua kenangan
Kebijakan endpoint berikut memungkinkan prinsipal IAM tertentu akses ke semua memori.
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws::iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:CreateEvent",
"bedrock-agentcore:DeleteEvent",
"bedrock-agentcore:GetEvent",
"bedrock-agentcore:ListEvents",
"bedrock-agentcore:DeleteMemoryRecord",
"bedrock-agentcore:GetMemoryRecord",
"bedrock-agentcore:ListMemoryRecords",
"bedrock-agentcore:RetrieveMemoryRecords",
"bedrock-agentcore:ListActors",
"bedrock-agentcore:ListSessions",
"bedrock-agentcore:BatchCreateMemoryRecords",
"bedrock-agentcore:BatchDeleteMemoryRecords",
"bedrock-agentcore:BatchUpdateMemoryRecords"
],
"Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/*"
}
]
}
Pembatasan akses oleh API
Kebijakan endpoint berikut memberikan izin untuk prinsipal IAM tertentu untuk membuat peristiwa dalam sumber daya Memori tertentu AgentCore .
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws::iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:CreateEvent"
],
"Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/MEMORY_ID"
}
]
}
- Browser Tool
-
-
Kebijakan endpoint berikut memungkinkan prinsipal IAM tertentu untuk terhubung ke sumber daya Alat Browser.
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws::iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:ConnectBrowserAutomationStream"
],
"Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:browser/BROWSER_ID"
}
]
}
- Gateway
-
-
Berikut ini adalah contoh kebijakan endpoint kustom. Saat Anda melampirkan kebijakan ini ke titik akhir antarmuka Anda, kebijakan ini memungkinkan semua prinsipal untuk memanggil gateway yang ditentukan di bidang. Resource
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"bedrock:InvokeGateway"
],
"Resource": "arn:aws::bedrock-agentcore:us-east-1::gateway/my-gateway"
}
]
}
- Identity
-
-
Kebijakan endpoint berikut memungkinkan akses ke sumber daya Identity.
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"*"
],
"Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:workload-identity-directory/default/workload-identity/WORKLOAD_IDENTITY_ID"
}
]
}
- Evaluations and Optimizations
-
-
Kebijakan endpoint berikut memungkinkan prinsipal IAM tertentu untuk mengakses operasi Evaluasi dan Optimisasi.
{
"Statement": [
{
"Sid": "AllowBatchEvaluations",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:StartBatchEvaluation",
"bedrock-agentcore:GetBatchEvaluation",
"bedrock-agentcore:ListBatchEvaluations",
"bedrock-agentcore:StopBatchEvaluation",
"bedrock-agentcore:DeleteBatchEvaluation"
],
"Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:batch-evaluate/*"
},
{
"Sid": "AllowRecommendations",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:StartRecommendation",
"bedrock-agentcore:GetRecommendation",
"bedrock-agentcore:ListRecommendations",
"bedrock-agentcore:DeleteRecommendation"
],
"Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:recommendation/*"
},
{
"Sid": "AllowEvaluators",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:CreateEvaluator",
"bedrock-agentcore:GetEvaluator",
"bedrock-agentcore:ListEvaluators",
"bedrock-agentcore:UpdateEvaluator",
"bedrock-agentcore:DeleteEvaluator"
],
"Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:evaluator/*"
},
{
"Sid": "AllowOnlineEvaluationConfigs",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:CreateOnlineEvaluationConfig",
"bedrock-agentcore:GetOnlineEvaluationConfig",
"bedrock-agentcore:ListOnlineEvaluationConfigs",
"bedrock-agentcore:UpdateOnlineEvaluationConfig",
"bedrock-agentcore:DeleteOnlineEvaluationConfig"
],
"Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:online-evaluation-config/*"
},
{
"Sid": "AllowABTests",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:CreateABTest",
"bedrock-agentcore:GetABTest",
"bedrock-agentcore:ListABTests",
"bedrock-agentcore:UpdateABTest",
"bedrock-agentcore:DeleteABTest"
],
"Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:ab-test/*"
},
{
"Sid": "AllowConfigurationBundles",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_ID:root"
},
"Action": [
"bedrock-agentcore:CreateConfigurationBundle",
"bedrock-agentcore:GetConfigurationBundle",
"bedrock-agentcore:GetConfigurationBundleVersion",
"bedrock-agentcore:ListConfigurationBundles",
"bedrock-agentcore:ListConfigurationBundleVersions",
"bedrock-agentcore:UpdateConfigurationBundle",
"bedrock-agentcore:DeleteConfigurationBundle"
],
"Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:configuration-bundle/*"
}
]
}