Configurare il provider di credenziali
I provider di credenziali di risorse in AgentCore Identity fungono da intermediari intelligenti che gestiscono le complesse relazioni tra agenti, provider di identità e server di risorse. Ogni provider incapsula la configurazione specifica degli endpoint richiesta per un particolare servizio o sistema di identità. Il servizio fornisce provider integrati per i servizi più diffusi, tra cui Google, GitHub Slack e Salesforce, con endpoint del server di autorizzazione e parametri specifici del provider preconfigurati per ridurre lo sforzo di sviluppo. AgentCore Identity supporta configurazioni personalizzate tramite provider di credenziali OAuth2 configurabili che possono essere personalizzati per funzionare con qualsiasi server di risorse. OAuth2-compatible Per informazioni sui limiti dei provider di credenziali OAuth2, vedere Identity Service AgentCore Quotas.
I provider di credenziali di risorse si integrano profondamente con il token vault per fornire una gestione fluida del ciclo di vita delle credenziali. Quando un agente richiede l'accesso a una risorsa, il provider gestisce il flusso di autenticazione, archivia le credenziali risultanti nel token vault e fornisce all'agente i token di accesso necessari.
Creazione di un provider di credenziali OAuth 2.0
Le configurazioni dei provider in AgentCore Identity definiscono i parametri di base necessari per la gestione delle credenziali con risorse e sistemi di autenticazione diversi.
Se si utilizza la AgentCore CLI, è possibile creare un provider di credenziali OAuth 2.0 con il comando: 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
La CLI memorizza la configurazione delle credenziali agentcore/agentcore.json e salva i valori sensibili (ID client e client secret) in. agentcore/.env.local
In alternativa, puoi aggiungere il tuo segreto fornendo un riferimento a un segreto client già memorizzato in 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
In alternativa, puoi utilizzare l' AgentCore SDK per configurare un provider di credenziali OAuth 2.0 a livello di codice. L'esempio seguente configura un provider per. 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"
}
}
})
Per configurare lo scambio di token on-behalf-of (OBO) su un provider di credenziali OAuth 2.0, aggiungi un alla configurazione del provider. onBehalfOfTokenExchangeConfig Per le modalità, i parametri e gli esempi supportati, consulta lo scambio di token. On-behalf-of
Creazione di un provider di credenziali per chiavi API
Per i servizi che utilizzano chiavi API per l'autenticazione anziché OAuth, AgentCore Identity archivierà e recupererà in modo sicuro le chiavi per i tuoi agenti. Per informazioni sui limiti dei provider di credenziali delle chiavi API, consulta AgentCore Identity Service Quotas.
Se utilizzi la AgentCore CLI, puoi memorizzare una chiave API con un solo comando:
agentcore add credential --name your-service-name --api-key your-api-key
In alternativa, puoi aggiungere il tuo segreto fornendo un riferimento a una chiave API già archiviata in 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
In alternativa, puoi utilizzare l' AgentCore SDK per archiviare una chiave API a livello di codice:
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"
})
Creazione di un fornitore di credenziali di pagamento
Per i servizi che utilizzano credenziali di elaborazione dei pagamenti come Coinbase CDP o Stripe Privy, AgentCore Identity archivia in modo sicuro le chiavi API, i segreti delle app e i segreti associati in wallet/authorization Secrets Manager e mostra solo i relativi ARN ai tuoi agenti. Per informazioni sui limiti dei fornitori di credenziali di pagamento, consulta AgentCore Identity Service Quotas.
I fornitori di credenziali di pagamento attualmente supportano due fornitori: e. CoinbaseCDP StripePrivy Fornisci esattamente un blocco di configurazione corrispondente a providerConfigurationInput quello che credentialProviderVendor hai scelto. In alternativa, puoi aggiungere il tuo segreto fornendo un riferimento a un segreto già memorizzato in AWS Secrets Manager.
Esempio
- AWS CLI
-
L'esempio seguente crea un fornitore di credenziali di pagamento per 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
L'esempio seguente crea un provider di credenziali di pagamento Coinbase CDP con segreti archiviati in 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
L'esempio seguente crea un fornitore di credenziali di pagamento per 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
L'esempio seguente crea un provider di credenziali di pagamento Stripe Privy con segreti archiviati in 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
-
L'esempio seguente configura un provider per 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"
}
}
)
L'esempio seguente configura un provider CDP Coinbase con segreti archiviati in 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"
}
}
}
)
L'esempio seguente configura un provider per 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"
}
}
)
L'esempio seguente configura un provider Stripe Privy con segreti archiviati in 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
-
L'esempio seguente configura un provider per 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"
}
}
)
L'esempio seguente configura un provider CDP Coinbase con segreti archiviati in 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"
}
}
}
)
L'esempio seguente configura un provider per 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"
}
}
)
L'esempio seguente configura un provider Stripe Privy con segreti archiviati in 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"
}
}
)