View a markdown version of this page

Konfigurasikan penyedia kredensi - Batuan Dasar Amazon AgentCore

Konfigurasikan penyedia kredensi

Penyedia kredensi sumber daya dalam AgentCore Identitas bertindak sebagai perantara cerdas yang mengelola hubungan kompleks antara agen, penyedia identitas, dan server sumber daya. Setiap penyedia merangkum konfigurasi titik akhir spesifik yang diperlukan untuk layanan atau sistem identitas tertentu. Layanan ini menyediakan penyedia bawaan untuk layanan populer termasuk Google,, Slack GitHub, dan Salesforce, dengan titik akhir server otorisasi dan parameter khusus penyedia yang telah dikonfigurasi sebelumnya untuk mengurangi upaya pengembangan. AgentCore Identity mendukung konfigurasi khusus melalui penyedia kredensi OAuth2 yang dapat dikonfigurasi yang dapat disesuaikan untuk bekerja dengan server sumber daya apa pun. OAuth2-compatible Untuk informasi tentang batas penyedia kredensi OAuth2, lihat Identity Service AgentCore Quotas.

Penyedia kredensi sumber daya berintegrasi secara mendalam dengan token vault untuk menyediakan manajemen siklus hidup kredenal yang mulus. Saat agen meminta akses ke sumber daya, penyedia menangani alur otentikasi, menyimpan kredensi yang dihasilkan di brankas token, dan menyediakan token akses yang diperlukan kepada agen.

Membuat penyedia kredensi OAuth 2.0

Konfigurasi penyedia di AgentCore Identity menentukan parameter dasar yang diperlukan untuk manajemen kredensi dengan sumber daya dan sistem otentikasi yang berbeda.

Jika Anda menggunakan AgentCore CLI, Anda dapat membuat penyedia kredensi OAuth 2.0 dengan perintah: agentcore add credential

agentcore add credential --type oauth \ --name github-provider \ --discovery-url https://your-idp/.well-known/openid-configuration \ --client-id your-github-client-id \ --client-secret your-github-client-secret \ --scopes repo,user

CLI menyimpan konfigurasi kredensi agentcore/agentcore.json dan menyimpan nilai sensitif (ID klien dan rahasia klien) ke. agentcore/.env.local

Atau, Anda dapat membawa rahasia Anda sendiri dengan memberikan referensi ke rahasia klien yang sudah disimpan di AWS Secrets Manager:

aws bedrock-agentcore-control create-oauth2-credential-provider \ --name "github-provider" \ --credential-provider-vendor "GithubOauth2" \ --oauth2-provider-config-input '{ "githubOauth2ProviderConfig": { "clientId": "your-github-client-id", "clientSecretSource": "EXTERNAL", "clientSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret", "jsonKey": "clientSecret" } } }' \ --region us-east-1

Atau, Anda dapat menggunakan AgentCore SDK untuk mengonfigurasi penyedia kredensi OAuth 2.0 secara terprogram. Contoh berikut mengkonfigurasi penyedia untuk GitHub.

from bedrock_agentcore.services.identity import IdentityClient identity_client = IdentityClient("us-east-1") github_provider = identity_client.create_oauth2_credential_provider({ "name": "github-provider", "credentialProviderVendor": "GithubOauth2", "oauth2ProviderConfigInput": { "githubOauth2ProviderConfig": { "clientId": "your-github-client-id", "clientSecret": "your-github-client-secret" } } })

Untuk mengonfigurasi pertukaran token on-behalf-of (OBO) pada penyedia kredensi OAuth 2.0, tambahkan ke konfigurasi penyedia. onBehalfOfTokenExchangeConfig Untuk mode, parameter, dan contoh yang didukung, lihat pertukaran On-behalf-of token.

Membuat penyedia kredensi kunci API

Untuk layanan yang menggunakan kunci API untuk otentikasi dan bukan OAuth, AgentCore Identity akan menyimpan dan mengambil kunci dengan aman untuk agen Anda. Untuk informasi tentang batas penyedia kredensi kunci API, lihat Service Quotas AgentCore Identity.

Jika Anda menggunakan AgentCore CLI, Anda dapat menyimpan kunci API dengan satu perintah:

agentcore add credential --name your-service-name --api-key your-api-key

Atau, Anda dapat membawa rahasia Anda sendiri dengan memberikan referensi ke kunci API yang sudah disimpan di AWS Secrets Manager:

aws bedrock-agentcore-control create-api-key-credential-provider \ --name "your-service-name" \ --api-key-secret-source EXTERNAL \ --api-key-secret-config secretId=arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret,jsonKey=api_key \ --region us-east-1

Atau, Anda dapat menggunakan AgentCore SDK untuk menyimpan kunci API secara terprogram:

from bedrock_agentcore.services.identity import IdentityClient identity_client= IdentityClient("us-east-1") apikey_provider= identity_client.create_api_key_credential_provider({ "name": "your-service-name", "apiKey": "your-api-key" })

Membuat penyedia kredensi pembayaran

Untuk layanan yang menggunakan kredensi pemroses pembayaran seperti Coinbase CDP atau Stripe Privy, AgentCore Identity menyimpan kunci API, rahasia aplikasi, dan rahasia terkait dengan aman di wallet/authorization Secrets Manager dan hanya menampilkan ARN mereka ke agen Anda. Untuk informasi tentang batas penyedia kredensi pembayaran, lihat Service Quotas AgentCore Identity.

Penyedia kredensi pembayaran saat ini mendukung dua vendor: dan. CoinbaseCDP StripePrivy Berikan tepat satu blok konfigurasi di bawah providerConfigurationInput yang cocok dengan yang credentialProviderVendor Anda pilih. Atau, Anda dapat membawa rahasia Anda sendiri dengan memberikan referensi ke rahasia yang sudah disimpan di AWS Secrets Manager.

contoh
AWS CLI

Contoh berikut membuat penyedia kredensi pembayaran untuk Coinbase CDP:

aws bedrock-agentcore-control create-payment-credential-provider \ --name "coinbase-provider" \ --credential-provider-vendor CoinbaseCDP \ --provider-configuration-input '{ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecret": "your-coinbase-api-key-secret", "walletSecret": "your-coinbase-wallet-secret" } }' \ --region us-east-1

Contoh berikut membuat penyedia kredensi pembayaran CDP Coinbase dengan rahasia yang disimpan di Secrets Manager AWS :

aws bedrock-agentcore-control create-payment-credential-provider \ --name "coinbase-provider" \ --credential-provider-vendor "CoinbaseCDP" \ --provider-configuration-input '{ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecretSource": "EXTERNAL", "apiKeySecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-api-secret", "jsonKey": "apiKeySecret" }, "walletSecretSource": "EXTERNAL", "walletSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-wallet-secret", "jsonKey": "walletSecret" } } }' \ --region us-east-1

Contoh berikut membuat penyedia kredensi pembayaran untuk Stripe Privy:

aws bedrock-agentcore-control create-payment-credential-provider \ --name "stripe-privy-provider" \ --credential-provider-vendor StripePrivy \ --provider-configuration-input '{ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecret": "your-stripe-privy-app-secret", "authorizationPrivateKey": "your-stripe-privy-authorization-private-key", "authorizationId": "your-stripe-privy-authorization-id" } }' \ --region us-east-1

Contoh berikut membuat penyedia kredensi pembayaran Stripe Privy dengan rahasia yang disimpan di Secrets Manager AWS :

aws bedrock-agentcore-control create-payment-credential-provider \ --name "stripe-privy-provider" \ --credential-provider-vendor "StripePrivy" \ --provider-configuration-input '{ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecretSource": "EXTERNAL", "appSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-app-secret", "jsonKey": "appSecret" }, "authorizationPrivateKeySource": "EXTERNAL", "authorizationPrivateKeyConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-auth-key-secret", "jsonKey": "authorizationPrivateKey" }, "authorizationId": "your-stripe-privy-authorization-id" } }' \ --region us-east-1
AWS SDK

Contoh berikut mengonfigurasi penyedia untuk Coinbase CDP:

import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") coinbase_provider = client.create_payment_credential_provider( name="coinbase-provider", credentialProviderVendor="CoinbaseCDP", providerConfigurationInput={ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecret": "your-coinbase-api-key-secret", "walletSecret": "your-coinbase-wallet-secret" } } )

Contoh berikut mengonfigurasi penyedia CDP Coinbase dengan rahasia yang disimpan di Secrets Manager AWS :

import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") coinbase_provider = client.create_payment_credential_provider( name="coinbase-provider", credentialProviderVendor="CoinbaseCDP", providerConfigurationInput={ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecretSource": "EXTERNAL", "apiKeySecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-api-secret", "jsonKey": "apiKeySecret" }, "walletSecretSource": "EXTERNAL", "walletSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-wallet-secret", "jsonKey": "walletSecret" } } } )

Contoh berikut mengonfigurasi penyedia untuk Stripe Privy:

import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") stripe_privy_provider = client.create_payment_credential_provider( name="stripe-privy-provider", credentialProviderVendor="StripePrivy", providerConfigurationInput={ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecret": "your-stripe-privy-app-secret", "authorizationPrivateKey": "your-stripe-privy-authorization-private-key", "authorizationId": "your-stripe-privy-authorization-id" } } )

Contoh berikut mengonfigurasi penyedia Stripe Privy dengan rahasia yang disimpan di Secrets Manager AWS :

import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") stripe_privy_provider = client.create_payment_credential_provider( name="stripe-privy-provider", credentialProviderVendor="StripePrivy", providerConfigurationInput={ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecretSource": "EXTERNAL", "appSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-app-secret", "jsonKey": "appSecret" }, "authorizationPrivateKeySource": "EXTERNAL", "authorizationPrivateKeyConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-auth-key-secret", "jsonKey": "authorizationPrivateKey" }, "authorizationId": "your-stripe-privy-authorization-id" } } )
AgentCore SDK

Contoh berikut mengonfigurasi penyedia untuk Coinbase CDP:

from bedrock_agentcore.services.identity import IdentityClient identity_client = IdentityClient("us-east-1") coinbase_provider = identity_client.create_payment_credential_provider( name="coinbase-provider", credential_provider_vendor="CoinbaseCDP", provider_configuration_input={ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecret": "your-coinbase-api-key-secret", "walletSecret": "your-coinbase-wallet-secret" } } )

Contoh berikut mengonfigurasi penyedia CDP Coinbase dengan rahasia yang disimpan di Secrets Manager AWS :

from bedrock_agentcore.services.identity import IdentityClient identity_client = IdentityClient("us-east-1") coinbase_provider = identity_client.create_payment_credential_provider( name="coinbase-provider", credential_provider_vendor="CoinbaseCDP", provider_configuration_input={ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecretSource": "EXTERNAL", "apiKeySecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-api-secret", "jsonKey": "apiKeySecret" }, "walletSecretSource": "EXTERNAL", "walletSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-wallet-secret", "jsonKey": "walletSecret" } } } )

Contoh berikut mengonfigurasi penyedia untuk Stripe Privy:

from bedrock_agentcore.services.identity import IdentityClient identity_client = IdentityClient("us-east-1") stripe_privy_provider = identity_client.create_payment_credential_provider( name="stripe-privy-provider", credential_provider_vendor="StripePrivy", provider_configuration_input={ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecret": "your-stripe-privy-app-secret", "authorizationPrivateKey": "your-stripe-privy-authorization-private-key", "authorizationId": "your-stripe-privy-authorization-id" } } )

Contoh berikut mengonfigurasi penyedia Stripe Privy dengan rahasia yang disimpan di Secrets Manager AWS :

from bedrock_agentcore.services.identity import IdentityClient identity_client = IdentityClient("us-east-1") stripe_privy_provider = identity_client.create_payment_credential_provider( name="stripe-privy-provider", credential_provider_vendor="StripePrivy", provider_configuration_input={ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecretSource": "EXTERNAL", "appSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-app-secret", "jsonKey": "appSecret" }, "authorizationPrivateKeySource": "EXTERNAL", "authorizationPrivateKeyConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-auth-key-secret", "jsonKey": "authorizationPrivateKey" }, "authorizationId": "your-stripe-privy-authorization-id" } } )