Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan otorisasi masuk untuk gateway Anda
Sebelum membuat gateway, Anda harus mengatur otorisasi masuk. Otorisasi masuk memvalidasi pengguna yang mencoba mengakses target melalui gateway Anda AgentCore . AgentCore mendukung jenis otorisasi inbound berikut:
-
JSON Web Token (JWT) — Token aman dan ringkas yang digunakan untuk otorisasi. Setelah membuat JWT, Anda menentukannya sebagai konfigurasi otorisasi saat Anda membuat gateway. Anda dapat membuat JWT dengan salah satu penyedia identitas di pengaturan dan konfigurasi Pengaturan dan konfigurasi penyedia Penyedia.
-
Identitas IAM — Mengotorisasi melalui kredenSIAL identitas AWS IAM yang mencoba mengakses gateway.
-
Jenis otorisasi yang diturunkan — Gateway tidak membuat keputusan otorisasi sendiri dan sebagai gantinya melepaskan otorisasi ke komponen lain, seperti target hilir, mesin kebijakan yang terpasang ke gateway, atau fungsi Lambda pencegat. Kategori ini mencakup O tentikasi saja dan Tanpa Otorisasi. Untuk detail dan panduan, lihat Otorisasi masuk yang tidak dimuat.
catatan
Jika Anda menggunakan Konsol AWS Manajemen atau AgentCore CLI untuk membuat gateway, Anda dapat membuat konfigurasi otorisasi masuk default menggunakan Amazon Cognito selama pembuatan gateway. Jika Anda berencana untuk menggunakan konfigurasi otorisasi default, Anda dapat melewati prasyarat ini.
Jika Anda tidak berencana untuk menggunakan konfigurasi otorisasi default menggunakan Amazon Cognito, pilih topik yang sesuai dengan jenis otorisasi yang akan Anda gunakan untuk mempelajari cara mengaturnya:
Topik
IAM-based otorisasi masuk
IAM-based otorisasi masuk memungkinkan Anda menggunakan kredentif IAM pemanggil gateway untuk otorisasi. Anda dapat menggunakan opsi ini jika Anda ingin membuat identitas IAM yang melaluinya pengguna yang memanggil gateway Anda dapat diautentikasi.
Untuk mengatur IAM-based otorisasi masuk
-
Buat atau gunakan identitas IAM yang ada untuk pemanggil gateway Anda.
-
Buat kebijakan IAM berbasis identitas yang berisi izin berikut:
-
bedrock-agentcore:InvokeGatewaySetelah membuat gateway, Anda harus mengubah kebijakan ini sehinggaResourcebidang tersebut dicakup ke gateway yang Anda buat sebagai praktik terbaik keamanan.
-
-
Lampirkan kebijakan ke identitas pemanggil gateway.
Contoh kebijakan
Contoh berikut menunjukkan kebijakan yang dapat Anda lampirkan ke identitas untuk memungkinkannya memanggil gateway dengan ID my-gateway-12345
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGatewayInvocation", "Effect": "Allow", "Action": [ "bedrock-agentcore:InvokeGateway" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway-12345" ] } ] }
Sumber daya
-
Untuk informasi selengkapnya tentang Manajemen AWS Identitas dan Akses, lihat Identitas dan manajemen akses untuk Amazon Bedrock AgentCore.
-
Untuk informasi selengkapnya tentang AgentCore tindakan, sumber daya, dan kunci kondisi Amazon Bedrock yang dapat Anda tentukan di kebijakan IAM, lihat Tindakan, sumber daya, dan kunci kondisi untuk Amazon Bedrock. AgentCore
Otorisasi masuk berbasis JSON Web Token (JWT)
JSON Web Token (JWT) adalah token aman dan ringkas yang digunakan untuk otorisasi. Anda dapat membuat JWT dengan penyedia identitas yang didukung. Setelah Anda membuat JWT, Anda dapat mengambilnya dan menentukannya sebagai konfigurasi otorisasi saat Anda membuat gateway.
penting
Menggunakan otorisasi masuk berdasarkan token JWT akan menghasilkan pencatatan beberapa klaim token JWT. CloudTrail Entri termasuk Sub jek
Anda dapat menggunakan AgentCore CLI untuk mengonfigurasi gateway dengan penyedia identitas JWT yang ada. Untuk mempelajari lebih lanjut tentang metode konfigurasi JWT, pilih dari topik berikut:
Topik
Konfigurasikan otorisasi JWT
Buat aplikasi dan klien dengan penyedia identitas yang didukung. Untuk contoh Amazon Cognito, lihat Mem ulai dengan Amazon Cognit o. Perhatikan URL penemuan OIDC dan ID klien.
Jalankan perintah berikut di direktori AgentCore proyek:
agentcore add gateway \ --name MyGateway \ --protocol-type MCP \ --authorizer-type CUSTOM_JWT \ --discovery-url <OIDC_DISCOVERY_URL> \ --allowed-clients <CLIENT_ID>
AgentCore CLI menggunakan konfigurasi OIDC yang ada; itu tidak membuat sumber daya penyedia identitas. Untuk memanggil gateway, dapatkan token akses dari penyedia Anda. Untuk Amazon Cognito, lihat T itik akhir penerbit token di Panduan Pengembang Amazon Cognito.
Siapkan JWT secara manual
Amazon Bedrock AgentCore mendukung JWT dari semua penyedia identitas. Anda dapat melihat beberapa contoh di Peng aturan dan konfigurasi Penyedia.
Dalam proses pembuatan JWT, perhatikan nilai-nilai berikut, yang akan Anda isi CustomJWTAuthorizerConfiguration saat membuat gateway, jika itu berlaku untuk kasus penggunaan Anda:
-
URL Penemuan — URL tempat kredensi login dan titik akhir token dapat diambil.
-
ID Klien — Pengidentifikasi publik dari aplikasi klien yang meminta token, divalidasi terhadap
client_idklaim. -
Rahasia klien — Kunci pribadi yang mengotentikasi akses untuk aplikasi klien untuk mengambil token.
-
Audiens yang diizinkan — Pengidentifikasi yang memvalidasi penerima atau konsumen token yang dituju melalui
audklaim. -
Cak upan yang diizinkan — Cakupan yang menentukan batasan akses aplikasi ke akun pengguna. Untuk informasi selengkapnya, lihat Cak upan OAuth.
-
Nilai klaim wajib lainnya — Tergantung pada otorisasi yang Anda gunakan, Anda mungkin perlu menentukan bidang dan aturan klaim kustom yang diperlukan agar sesuai dengan nilai bidang klaim untuk otentikasi.
Anda memerlukan nilai-nilai ini untuk melakukan hal berikut:
-
Buat gateway dengan menentukan nilai dalam konfigurasi https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_AuthorizerConfiguration.html otorizer.
-
Dapatkan kredentif otorisasi untuk memanggil gateway. Untuk mempelajari cara mendapatkan kredensi Anda, cari dokumentasi penyedia identitas Anda. Misalnya, jika Anda menggunakan Amazon Cognito, lihat Titik akhir penerbit token di Panduan Pengembang Amazon Cognito.
Lingkup iklan dalam tantangan otentikasi
Ketika klien mengirim permintaan ke JWT-authorized gateway tanpa token akses yang valid, gateway mengembalikan respons kesalahan dengan WWW-Authenticate header yang mengiklankan cakupan OAuth yang diperlukan. Ini mengikuti format tantangan token
Gateway mengembalikan respons berikut tergantung pada kesalahan:
-
401 Tidak S ah - Permintaan tidak memiliki token atau token yang tidak valid.
WWW-AuthenticateHeader termasukresource_metadatadanscopeparameter. -
403 Terlarang - Token valid tetapi tidak berisi cakupan yang diperlukan.
WWW-AuthenticateHeader termasukerror="insufficient_scope",scope, danresource_metadataparameter.
scopeNilai berisi cakupan yang dibatasi spasi yang dikonfigurasi sebagai cakupan yang diizinkan di gateway. CustomJWTAuthorizerConfiguration resource_metadataNilai tersebut menunjuk ke dokumen Metadata Sumber Daya Terlindungi /.well-known/oauth-protected-resource, yang dapat diambil klien untuk menemukan server otorisasi dan cakupan yang didukung.
Gunakan penyedia identitas pribadi (VPC-hosted)
AgentCore Gateway mendukung JWT-based otorisasi masuk dengan penyedia identitas yang dihosting di dalam VPC Anda. Anda dapat mengonfigurasi a privateEndpoint customJWTAuthorizer untuk mengaktifkan AgentCore untuk mencapai penemuan OIDC pribadi, token, dan titik akhir JWKS Anda tanpa mengeksposnya ke internet publik.
Prinsipal IAM Anda harus memiliki iam:CreateServiceLinkedRole izin untukidentity-network.bedrock-agentcore.amazonaws.com, sehingga AgentCore Identity dapat membuat AWSServiceRoleForBedrockAgentCoreIdentity peran terkait layanan atas nama Anda jika itu belum ada.
Ini privateEndpoint berlaku untuk domain didiscoveryUrl. Jika penyedia identitas Anda menggunakan domain yang berbeda untuk titik akhir lain (misalnya, token atau titik akhir JWKS diselesaikan ke domain yang berbeda dari URL penemuan), gunakan privateEndpointOverrides untuk menentukan konfigurasi titik akhir pribadi terpisah untuk setiap domain tambahan.
Contoh berikut membuat gateway dengan penyedia identitas pribadi menggunakan Lattice terkelola:
{ "name": "my-private-idp-gateway", "protocolType": "MCP", "roleArn": "arn:aws:iam::123456789012:role/my-gateway-role", "authorizerType": "CUSTOM_JWT", "authorizerConfiguration": { "customJWTAuthorizer": { "allowedAudience": [ "my-audience" ], "discoveryUrl": "https://my-idp.internal.example.com/.well-known/openid-configuration", "privateEndpoint": { "managedVpcResource": { "vpcIdentifier": "vpc-0abc123def456", "subnetIds": ["subnet-0abc123", "subnet-0def456"], "endpointIpAddressType": "IPV4", "securityGroupIds": ["sg-0abc123def"] } } } } }
Jika token atau titik akhir JWKS Anda menggunakan domain yang berbeda dari URL penemuan, tambahkan privateEndpointOverrides entri untuk setiap domain tambahan. Saat ini, hanya privateEndpointOverrides didukung dengan sumber daya Lattice yang dikelola sendiri:
{ ... "authorizerConfiguration": { "customJWTAuthorizer": { "allowedAudience": ["my-audience"], "discoveryUrl": "https://my-idp.internal.example.com/.well-known/openid-configuration", "privateEndpoint": { "selfManagedLatticeResource": { "resourceConfigurationIdentifier": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-abc123" } }, "privateEndpointOverrides": [ { "domain": "my-token-server.internal.example.com", "privateEndpoint": { "selfManagedLatticeResource": { "resourceConfigurationIdentifier": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-def456" } } } ] } } }
Untuk Lattice yang dikelola sendiri, pengaturan lintas akun, dan konfigurasi lanjutan, lihat Menghubun gkan ke sumber daya pribadi di VPC menggunakan VPC Lattice. Untuk panduan komprehensif yang mencakup skenario IdP pribadi masuk dan keluar, lihat Menghubun gkan ke penyedia identitas pribadi.
Otorisasi masuk yang diturunkan
Dengan otorisasi inbound yang diturunkan, gateway tidak membuat keputusan otorisasi sendiri. Sebagai gantinya, ini menurunkan otorisasi ke komponen lain:
-
Layanan target hilir, yang mengotorisasi permintaan yang diterimanya.
-
Mesin kebijakan yang dilampirkan ke gateway, yang mengevaluasi kebijakan akses.
-
Fungsi Lambda pencegat, yang menjalankan otentikasi kustom atau logika otorisasi Anda sebelum permintaan mencapai target Anda.
AgentCore menawarkan dua jenis yang diturunkan:
-
Authenticate only (
AUTHENTICATE_ONLY) — Gateway memverifikasi tanda tangan SIGv4 pemanggil untuk mengotentikasi pemanggil, tetapi tidak membuat keputusan otorisasi. Permintaan harus ditandatangani, tetapi setiap penelepon yang diautentikasi diteruskan ke target. -
No Authorization (
NONE) — Gateway tidak melakukan otentikasi atau otorisasi masuk. Permintaan dapat tidak diautentikasi, dan setiap penelepon diteruskan ke target.
Dengan salah satu jenis, Anda memutuskan di mana otorisasi sebenarnya diberlakukan:
-
Mesin kebijakan — Lampirkan mesin kebijakan ke gateway untuk mengevaluasi kebijakan akses secara terpusat. Ini adalah pola yang direkomendasikan untuk gateway produksi dan sering digunakan bersama dengan OAuth.
-
Fungsi Interceptor Lambda - Jalankan otentikasi atau logika otorisasi Anda sendiri sebelum permintaan mencapai target Anda. Ini direkomendasikan untuk gateway produksi ketika opsi otorisasi masuk bawaan tidak memenuhi persyaratan Anda.
-
Target hilir — Biarkan target memberlakukan otorisasi pada permintaan yang diterimanya. Ini berguna untuk eksperimen dan orientasi progresif — misalnya, menempatkan gateway di depan runtime yang ada tanpa mengubah otentikasi dan otorisasi runtime — sehingga Anda dapat mengadopsi kemampuan gateway secara bertahap sementara runtime terus menerapkan autentikasi yang sudah dipercaya.
penting
Jika Anda melepaskan otorisasi masuk dengan memilih salah satu AUTHENTICATE_ONLY atauNONE, AgentCore Gateway tidak memberlakukan otorisasi dengan sendirinya. Dalam skenario ini, Anda harus melepaskan otorisasi ke komponen terpisah — mesin kebijakan, fungsi Lambda pencegat, atau target hilir — jika tidak, pemanggil apa pun dapat mencapai target Anda.
Authenticate-only otorisasi
Dengan authenticate-only authentication (AUTHENTICATE_ONLY), gateway memverifikasi tanda tangan Signature Version 4 (SigV4) pemanggil untuk mengkonfirmasi identitas mereka, tetapi tidak membuat keputusan otorisasi sendiri. Setiap prinsipal IAM yang diautentikasi dapat memanggil gateway terlepas dari izin mereka, dan permintaan diteruskan ke target. Otorisasi didelegasikan ke layanan target hilir atau ke mesin kebijakan yang dilampirkan ke gateway.
penting
DenganAUTHENTICATE_ONLY, gateway tidak memberlakukan kebijakan otorisasi apa pun. Setiap SigV4-signed permintaan yang valid akan diteruskan ke target. Pastikan target hilir Anda menerapkan logika otorisasi mereka sendiri, atau melampirkan mesin kebijakan ke gateway untuk mengontrol akses. Tanpa otorisasi yang tepat pada tingkat kebijakan target atau gateway, setiap penelepon yang diautentikasi dapat mencapai layanan backend Anda.
Tidak ada Otorisasi
Anda dapat membuat gateway yang dikonfigurasi tanpa otorisasi dengan menggunakanauthorizerType=NONE. Gateway tidak akan melakukan otorisasi apa pun pada permintaan gateway masuk dan permintaan dapat tidak diautentikasi.
penting
Jangan gunakan gateway Tanpa Otorisasi untuk beban kerja produksi kecuali Anda telah menerapkan semua praktik terbaik keamanan yang tercantum di bawah ini. Jika Anda memerlukan logika otentikasi khusus, pertimbangkan untuk menggunakan fungsi Lam bda penceg at untuk menangani otentikasi sebelum permintaan mencapai target Anda.
Praktik Terbaik Keamanan
-
Gunakan kunci
bedrock-agentcore:GatewayAuthorizerTypekondisi untuk allow/deny mengakses secara selektif dalam organisasi Anda untuk membuat gateway denganauthorizerType=NONE -
Jangan gunakan gateway Tanpa Otorisasi karena kenyamanan untuk pengujian. Mereka harus digunakan untuk gateway yang ingin Anda jadikan publik tetapi telah menerapkan aturan dan pemeriksaan pembatasan khusus Anda sendiri untuk memastikan gateway publik Anda dapat menangani pengguna yang tidak diautentikasi
-
Jangan gunakan gateway Tanpa Otorisasi dengan target yang mungkin merespons dengan informasi sensitif. Meskipun target dikonfigurasi dengan konfigurasi otorisasi mereka sendiri, yang terbaik adalah menambahkan lapisan keamanan lain pada gateway.
Memasukkan runtime yang ada tanpa mengubah autentiknya
Saat Anda memasangkan tipe inbound yang diturunkan dengan jenis otorisasi keluar yang cocok yang meneruskan identitas pemanggil ke runtime, orientasi ke gateway dapat sesederhana menetapkan penggantian titik akhir pada klien Anda yang ada — tidak diperlukan perubahan autentikasi:
-
Runtime IAM — Gabungkan otorisasi masuk dengan kre
AUTHENTICATE_ONLYdenSIAL Caller IAM () otorisasi keluar.CALLER_IAM_CREDENTIALSGateway mengautentikasi pemanggil SIGv4 dan kemudian menandatangani permintaan ke runtime dengan identitas pemanggil yang sama, sehingga otorisasi IAM runtime yang ada terus berlaku tidak berubah. Untuk informasi selengkapnya, lihat kreden si IAM Penelepon. -
Runtime OAuth — Gabungkan otorisasi masuk Tanpa Otorisasi dengan otorisasi keluar Token passthrough ().
JWT_PASSTHROUGHGateway meneruskan JWT masuk ke runtime tanpa modifikasi, sehingga runtime memvalidasi token persis seperti yang dilakukan hari ini. (Token passthrough meneruskan token pembawa, sehingga memerlukan tipe JWT-bearing inbound - otorisasi masuk JWT atau.NONEIni tidak tersedia denganAUTHENTICATE_ONLY, yang merupakan SigV4-based dan tidak membawa token pembawa.) Untuk informasi selengkapnya, lihat Token passthrough.catatan
Token passthrough (
JWT_PASSTHROUGH) bukanlah pendekatan yang direkomendasikan untuk produksi. Saat Anda meneruskan token inbound tidak berubah, token yang sama diterima oleh gateway dan target hilir, jadi token tersebut harus dicakup secara ketat — misalnya, setiap audiens (aud) token harus dibatasi pada sumber daya yang dituju. Pola yang disarankan adalah pertukaran token on-behalf of (OBO), di mana gateway menukar token penelepon dengan token baru dengan cakupan audiens untuk target alih-alih memutar ulang token pemanggil. Gunakan token passthrough untuk eksperimen, pengujian, dan orientasi yang mudah, dan pindah ke OBO untuk beban kerja produksi jangka panjang.
Awas
Konfigurasi penerusan identitas di bagian ini hanya bergantung pada runtime hilir untuk mengotorisasi permintaan; gateway tidak menambahkan otorisasi sendiri. Mereka dimaksudkan untuk pengujian, eksperimen, dan onboarding dengan gangguan rendah. Untuk gateway produksi, terapkan otorisasi di gateway — konfigurasikan otorisasi masuk JWT atau IAM, lampirkan mesin kebijakan, atau gunakan fungsi Lambda pencegat. Untuk memastikan penelepon tidak dapat melewati gateway setelah Anda mengadopsinya, lihat Meneg akkan lalu lintas melalui gateway.