View a markdown version of this page

Menyiapkan otorisasi keluar untuk gateway Anda - Batu Dasar Amazon AgentCore

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

Menyiapkan otorisasi keluar untuk gateway Anda

Otorisasi keluar memungkinkan gateway Amazon Bedrock mengakses target AgentCore gateway dengan aman atas nama pengguna yang diautentikasi dan diotorisasi selama otorisasi masuk.

AgentCore Gateway mendukung jenis otorisasi keluar berikut:

  • Tidak ada otorisasi (tidak disarankan) - Beberapa jenis target memberi Anda opsi untuk melewati otorisasi keluar. Opsi yang kurang aman ini tidak disarankan.

  • IAM-based otorisasi keluar — Gunakan peran layanan gateway untuk mengotentikasi akses ke target gateway dengan AWS Signature Version 4 (Sig V4).

  • KredenSIAL IAM pemang gil — Gateway menggunakan kredenSIAL IAM pemanggil untuk menandatangani permintaan ke target. Gateway mengambil peran atas nama penelepon menggunakan Layanan Akses Federasi (FAS) dan menandatangani permintaan keluar dengan identitas penelepon. Ini berguna ketika layanan target perlu mengotorisasi berdasarkan identitas penelepon asli daripada peran layanan gateway.

  • OAuth — Kerangka kerja otorisasi terbuka yang memungkinkan aplikasi klien untuk mengakses sumber daya. Anda dapat menggunakan OAuth dengan penyedia identitas bawaan atau dengan yang khusus. Untuk informasi selengkapnya, lihat OAuth 2.0. Anda dapat menggunakan jenis hibah otorisasi OAuth berikut:

    • Pemberian kreden tif klien — Machine-to-machine otentikasi (juga dikenal sebagai OAuth 2-kaki). Aplikasi klien mengakses sumber daya atas nama aplikasi, bukan atas nama pengguna.

    • Pemberian kode otorisasi — User-delegated akses (juga dikenal sebagai OAuth 3-kaki). Pengguna memberikan persetujuan untuk aplikasi klien untuk mengakses sumber daya atas nama pengguna.

    • Token exchange grant (On-behalf-of) — Gateway menukar token akses pengguna masuk dengan token akses baru yang tercakupan yang menargetkan sumber daya hilir. Token yang dipertukarkan membawa identitas pengguna dan identitas agen, memungkinkan layanan hilir untuk menerapkan otorisasi berbutir halus di setiap lompatan tanpa memicu aliran persetujuan tambahan. Untuk informasi selengkapnya, lihat pertukaran On-behalf-of token.

  • Token passthrough — Gateway meneruskan token otorisasi masuk langsung ke target tanpa modifikasi. Layanan target bertanggung jawab untuk memvalidasi token. Ini mengharuskan gateway untuk menggunakan AUTHENTICATE_ONLY otorisasi masuk sehingga token divalidasi tetapi dipertahankan untuk diteruskan.

  • Kunci API — Gunakan AgentCore layanan untuk menghasilkan kunci API untuk mengotentikasi akses ke target gateway.

Jenis otorisasi keluar yang dapat Anda atur tergantung pada jenis target gateway yang Anda otorisasi aksesnya:

Tipe target Tidak ada otorisasi Peran layanan gateway Kredensibilitas IAM penelepon OAuth (kredenSIAL klien) OAuth (kode otorisasi) OAuth (pertukaran token) Passthrough token Kunci API

Tahap API Gateway

Ya

Ya

Tidak

Tidak

Tidak

Tidak

Tidak

Ya

Fungsi lambda

Tidak

Ya

Tidak

Tidak

Tidak

Tidak

Tidak

Tidak

Server MCP

Ya

Ya

Tidak

Ya

Ya

Ya

Tidak

Ya

Skema OpenAPI

Ya

Ya

Tidak

Ya

Ya

Ya

Tidak

Ya

Skema Smithy

Tidak

Ya

Tidak

Ya

Tidak

Tidak

Tidak

Tidak

AgentCore periode waktu pelaksanaan (HTTP)

Tidak

Ya

Ya

Ya

Tidak

Tidak

Ya

Tidak

catatan

Jika Anda menggunakan templat penyedia integrasi sebagai target, tinjau jenis otorisasi yang didukung untuk templat yang berbeda di Built-in templat dari penyedia integrasi sebagai target.

Sebelum menambahkan target ke gateway Anda, Anda harus mengatur otorisasi untuk itu melalui salah satu metode yang didukung.

catatan

Anda dapat melewati prasyarat ini jika Anda berencana menggunakan Konsol AWS Manajemen atau AgentCore CLI untuk membuat gateway Anda. Jika Anda menggunakan salah satu alat ini, Anda dapat membiarkan AgentCore secara otomatis membuat peran layanan untuk Anda dengan izin yang diperlukan untuk mengakses target. Setiap kali Anda menambahkan target, izin yang diperlukan akan secara otomatis dilampirkan ke peran layanan Anda.

Pilih topik untuk mempelajari cara mengatur jenis otorisasi tersebut:

Menyi IAM-based apkan otorisasi keluar dengan peran layanan gateway

IAM-based otorisasi keluar memungkinkan Anda menggunakan kredentif IAM peran layanan gateway untuk mengotorisasi dengan AWS Tanda Tangan Versi 4 (Sig V4). Opsi ini memungkinkan AgentCore layanan Amazon Bedrock melakukan otentikasi ke target gateway atas nama penelepon gateway Anda.

Jika Anda menggunakan opsi ini, verifikasi bahwa peran layanan gateway memiliki bedrock-agentcore:InvokeGateway izin. Gateway menggunakan kredentif peran layanan untuk otentikasi selama pemanggilan.

Konfigurasi tambahan untuk server MCP dan target OpenAPI

Saat Anda menggunakan otor IAM-based isasi keluar dengan server MCP atau target OpenAPI, Anda harus memberikan konfigurasi tambahan untuk penandatanganan SIGv4. Di dalamcredentialProviderConfigurations, sertakan iamCredentialProvider dengan bidang berikut:

  • service (required) — Nama AWS layanan yang digunakan untuk penandatanganan SIGv4. Misalnya, bedrock-agentcore untuk server MCP yang dihosting di Amazon Bed AgentCore rock.

  • wilayah (opsional) — Wil AWS ayah untuk penandatanganan SIGv4. Jika Anda tidak menentukan Wilayah, gateway menggunakan Wilayahnya sendiri.

Untuk target Lambda, API Gateway, dan Smithy, jangan sertakan bidang. iamCredentialProvider Jenis target ini hanya mendukung GATEWAY_IAM_ROLE konfigurasi dasar dengan credentialProviderType saja. Untuk informasi selengkapnya tentang menentukan konfigurasi penyedia kredensia, lihat Otor AgentCore isasi peran layanan gateway (IAM).

Praktik terbaik keamanan untuk otor IAM-based isasi keluar

Peran eksekusi gateway dibagikan di semua target yang dikonfigurasi denganGATEWAY_IAM_ROLE. Izinnya adalah batas atas untuk apa yang dapat dilakukan oleh penelepon resmi melalui gateway. Ikuti praktik terbaik berikut untuk membatasi paparan:

  • Lingkup peran eksekusi ke izin minimum — Berikan hanya izin yang diperlukan di semua target yang dikonfigurasi. Hindari karakter lebar Action atau Resource wildcard.

  • Gunakan gateway terpisah untuk batas kepercayaan yang berbeda — Jika target memiliki tingkat sensitivitas yang berbeda atau melayani beban kerja yang berbeda, terapkan di belakang gateway terpisah dengan peran eksekusi yang berbeda.

  • Gunakan mesin kebijakan untuk membatasi akses pemanggil — Pada gateway bersama, gunakan mesin kebijakan untuk mengontrol pemanggil mana yang dapat memanggil target mana, membatasi radius ledakan dari izin penelepon tunggal mana pun.

Siapkan otorisasi keluar dengan klien OAuth

Untuk mengatur otorisasi keluar dengan klien OAuth, Anda menggunakan layanan AgentCore Identitas dan menentukan kredentif klien yang Anda terima dari membuat klien di penyedia identitas bawaan (lihat Penyiapan dan konfigurasi Penyedia atau penyedia identitas kustom.

Untuk mengatur otorisasi keluar dengan klien OAuth

  1. Daftarkan aplikasi klien Anda dengan penyedia pihak ketiga yang didukung.

  2. Anda akan menerima ID klien, rahasia klien, dan mungkin nilai lain yang akan Anda rujuk saat mengatur otorisasi keluar.

  3. Ikuti salah satu langkah di bawah ini, tergantung pada kebutuhan Anda:

  4. Catat kredenSIAL ARN yang dihasilkan (credentialProviderArndi API) dan AWS rahasia Manajer Rahasia ARN (secretArndi API). Anda akan menggunakan nilai-nilai ini saat membuat target gateway Anda.

  5. (Jika Anda menggunakan peran layanan gateway khusus) Lampirkan kebijakan berbasis identitas berikut ke peran layanan gateway Anda:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "GetWorkloadAccessToken", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default/workload-identity/GatewayName-*" ] }, { "Sid": "GetResourceOauth2Token", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceOauth2Token", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/TokenVaultId/oauth2credentialprovider/CredentialName" ] }, { "Sid": "GetSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": [ "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId" ] } ] }

    Ganti nilai bidang berikut:

    • Dalam GetWorkloadAccessToken pernyataan, ganti GatewayName dalam Resource daftar dengan nama gateway Anda.

    • Dalam GetResourceOauth2Token pernyataan, ganti nilai dalam Resource daftar dengan ARN dari kredenSIAL yang baru saja Anda buat.

    • Dalam GetSecretValue pernyataan, ganti nilai dalam Resource daftar dengan ARN AWS rahasia yang dikembalikan dalam respons saat Anda membuat kredenSIAL.

Contoh untuk mengatur otorisasi klien OAuth

Contoh berikut menunjukkan cara mengatur otorisasi melalui klien OAuth untuk target gateway Anda:

contoh
AgentCore CLI
  1. Perintah kredensi AgentCore CLI harus dijalankan di dalam proyek agentcore yang ada. Jika Anda belum memilikinya, buat proyek terlebih dahulu denganagentcore create.

    agentcore add credential \ --name oauth-credential-provider \ --type oauth \ --discovery-url <DiscoveryUrl> \ --client-id <ClientId> \ --client-secret <ClientSecret> agentcore deploy
AWS CLI
  1. aws bedrock-agentcore-control create-oauth2-credential-provider \ --name oauth-credential-provider \ --credential-provider-vendor CustomOAuth2 \ --oauth2-provider-config-input '{ "customOAuth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "<DiscoveryUrl>" }, "clientId": "<ClientId>", "clientSecret": "<ClientSecret>" } }'
Boto3
  1. import boto3 client = boto3.client("bedrock-agentcore-control") client.create_oauth2_credential_provider( name="oauth-credential-provider", credentialProviderVendor="CustomOAuth2", oauth2ProviderConfigInput={ "oauthDiscovery": { "discoveryUrl": "<DiscoveryUrl>" }, "clientId": "<ClientId>", "clientSecret": "<ClientSecret>" } )

Menyiapkan otorisasi keluar dengan kunci API

Untuk mengatur otorisasi keluar dengan kunci API, Anda menggunakan layanan AgentCore Identitas dan menentukan kunci API yang Anda terima dari penyedia identitas yang didukung.

Untuk mengatur otorisasi keluar dengan klien OAuth

  1. Daftarkan aplikasi klien Anda dengan penyedia pihak ketiga yang didukung.

  2. Siapkan kunci API untuk layanan penyedia. Perhatikan nilai-nilai berikut, yang akan Anda tentukan saat menambahkan target gateway:

    • Lokasi kreden si — Apakah kunci API harus ditempatkan di header atau sebagai parameter kueri.

    • Awalan kreden si — Awalan untuk kredensi (mis. Pembawa).

  3. Ikuti salah satu langkah di bawah ini, tergantung pada kebutuhan Anda:

  4. Perhatikan nilai-nilai berikut, yang akan Anda tentukan saat menambahkan target gateway:

    • Penyedia kredensi ARN — Nama Sumber Daya Amazon (ARN) yang dibuat untuk penyedia kredensia.

    • Nama — Nama yang Anda berikan ke kunci API.

    • ARN Rahasia — ARN AWS rahasia Manajer Rahasia yang dihasilkan untuk kunci API.

  5. (Jika Anda menggunakan peran layanan gateway khusus) Lampirkan kebijakan berbasis identitas berikut ke peran layanan gateway Anda:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "GetWorkloadAccessToken", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default/workload-identity/GatewayName-*" ] }, { "Sid": "GetResourceApiKey", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/TokenVaultId/apikeycredentialprovider/Name" ] }, { "Sid": "GetSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": [ "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId" ] } ] }

    Ganti nilai bidang berikut:

    • Dalam GetWorkloadAccessToken pernyataan, ganti GatewayName dalam Resource daftar dengan nama gateway Anda.

    • Dalam GetResourceApiKey pernyataan, ganti nilai dalam Resource daftar dengan ARN dari kredenSIAL yang baru saja Anda buat.

    • Dalam GetSecretValue pernyataan, ganti nilai dalam Resource daftar dengan ARN AWS rahasia yang dikembalikan dalam respons saat Anda membuat kredenSIAL.

Contoh untuk mengatur kunci API

Contoh berikut menunjukkan cara mengatur kunci API untuk target gateway Anda:

contoh
AgentCore CLI
  1. Perintah kredensi AgentCore CLI harus dijalankan di dalam proyek agentcore yang ada. Jika Anda belum memilikinya, buat proyek terlebih dahulu denganagentcore create.

    agentcore add credential \ --name api-key-credential-provider \ --type api-key \ --api-key <API_KEY_VALUE> agentcore deploy
AWS CLI
  1. aws bedrock-agentcore-control create-api-key-credential-provider \ --name api-key-credential-provider \ --api-key <API_KEY_VALUE>
Boto3
  1. import boto3 client = boto3.client("bedrock-agentcore-control") client.create_api_key_credential_provider( name="api-key-credential-provider", apiKey="<API_KEY_VALUE>" )