View a markdown version of this page

Esempio: autorizzazione per il gateway e la destinazione predefiniti creati dalla AgentCore CLI - Fondamento Amazon AgentCore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempio: autorizzazione per il gateway e la destinazione predefiniti creati dalla AgentCore CLI

Se hai utilizzato la AgentCore CLI per creare un gateway e un target Lambda, la CLI configura automaticamente l'autorizzazione in JWT-based entrata e IAM-based l'autorizzazione in uscita.

Nota

Se richiami il gateway utilizzando, la CLI gestisce automaticamente l'autenticazioneagentcore invoke. I passaggi seguenti sono necessari solo se si desidera richiamare il gateway a livello di codice (ad esempio, utilizzando l'SDK o). AWS curl

Per l'accesso programmatico, autorizzerai con quanto segue:

  • Autorizzazione in entrata tramite JWT: ottieni il token di accesso dall'autorizzazione Amazon Cognito che è stata impostata automaticamente per te e includilo nell'intestazione dell'autorizzazione. Guarda l'esempio seguente per scoprire come ottenere il token.

  • Autorizzazione in uscita tramite IAM: la AgentCore CLI configura automaticamente le seguenti autorizzazioni, quindi non è necessaria alcuna configurazione aggiuntiva:

    • Il tuo ruolo di servizio gateway dispone delle autorizzazioni per richiamare tutte le funzioni in Lambda (fornite dalla policy gestita). BedrockAgentCoreFullAccess

    • La funzione Lambda creata è configurata con il ruolo del servizio gateway in quanto può richiamarlaPrincipal.

Puoi ottenere il token di accesso creato per il tuo gateway dalla AgentCore CLI con l'aiuto di Amazon Cognito raccogliendo le seguenti informazioni:

  • Endpoint del token: si trova nell'URL di scoperta nella configurazione dell'autorizzatore per il gateway. Se utilizzi l'API, puoi trovare l'URL di scoperta inviando una ListGateways richiesta o una GetGateway richiesta per il tuo gateway.

  • ID cliente: trova le informazioni sul pool di utenti di Amazon Cognito. Se utilizzi l'API, puoi inviare una ListUserPools richiesta o una DescribeUserPool richiesta per il pool di utenti associato al tuo gateway.

  • Segreto del cliente: trova le informazioni sul client dell'app del pool di utenti di Amazon Cognito. Se utilizzi l'API, puoi inviare una DescribeUserPoolClient richiesta, specificando l'ID client e l'ID del pool di utenti associati al tuo gateway.

Innanzitutto, raccogli questi valori con uno dei seguenti metodi. Selezionate uno dei seguenti metodi:

Esempio
Console
  1. Ottieni l'endpoint del token:

    1. Apri la AgentCore console all'indirizzo https://console.aws.amazon.com/bedrock-agentcore/home #.

    2. Dal pannello di navigazione a sinistra, scegli Gateway.

    3. Nella sezione Gateway, seleziona il tuo gateway.

    4. Nella sezione Inbound Identity, nota i seguenti valori:

      • Client consentiti: gli ID client che possono accedere al gateway.

      • Discovery URL: il formato deve esserehttps://cognito-idp.${Region}.amazonaws.com/${UserPoolId}/.well-known/openid-configuration. Memorizza i seguenti valori:

        • ${UserPoolId}— Estratto dall'URL di scoperta.

        • Endpoint del token: seleziona il link Discovery URL e trova il valore nel token_endpoint campo.

  2. Ottieni l'ID e il segreto del cliente:

    1. Apri la console Amazon Cognito su https://console.aws.amazon.com/cognito.

    2. Dal riquadro di navigazione a sinistra, seleziona Pool di utenti.

    3. Seleziona l'ID del pool di utenti associato al tuo gateway.

    4. Dal riquadro di navigazione a sinistra, scegli App Clients.

    5. Seleziona un client dell'app il cui ID client corrisponda ai client consentiti per l'endpoint del token. Memorizza il valore dell'ID.

    6. In Client secret, seleziona Mostra il segreto del cliente e memorizza quel valore.

AWS CLI
  1. Esegui il AgentCore get-gateway comando in un terminale e specifica l'ID del tuo gateway nell'--gateway-identifierargomento, come nell'esempio seguente:

    aws bedrock-agentcore-control get-gateway --gateway-identifier my-gateway-id
  2. Dalla risposta, annota il discoveryUrl authorizerConfiguration campo:

    • Memorizza il codice ${UserPoolId} dall'URL. Il formato dovrebbe esserehttps://cognito-idp.${Region}.amazonaws.com/${UserPoolId}/.well-known/openid-configuration.

    • Memorizza i allowedClients valori. Questi sono gli ID client che possono accedere all'endpoint del token.

    • discoveryUrlAccedi al browser e memorizza il token_endpoint valore.

  3. Esegui il describe-user-pool-client comando Amazon Cognito in un terminale e specifica l'ID del pool di utenti nell'--user-pool-idargomento e un ID client consentito nel --client-id campo, come nell'esempio seguente:

    aws cognito-idp describe-user-pool-client --user-pool-id my-user-pool-id --client-id my-client-id
  4. Memorizza il ClientSecret valore.

AWS Python SDK (Boto3)
  1. Esegui il seguente codice Python per memorizzare l'endpoint del token, l'ID del client e il segreto del client come variabili:

    import requests import boto3 # Initialize AWS clients agentcore_client = boto3.client("bedrock-agentcore-control") cognito_client = boto3.client("cognito-idp") # Replace with your actual gateway ID gateway_id = "my-gateway-id" # Get discovery URL and first allowed client auth_config = agentcore_client.get_gateway(gatewayIdentifier=gateway_id)["authorizerConfiguration"]["customJWTAuthorizer"] discovery_url, client_id = auth_config["discoveryUrl"], auth_config["allowedClients"][0] # Get token endpoint from discovery URL discovery_url_json = requests.get(discovery_url).json() token_endpoint, user_pool_id = discovery_url_json["token_endpoint"], discovery_url_json["issuer"].split("/")[-1] # Get client secret client_secret = cognito_client.describe_user_pool_client( UserPoolId=user_pool_id, ClientId=client_id )["UserPoolClient"]["ClientSecret"]

In secondo luogo, usa i valori che hai raccolto per accedere al token dall'endpoint del token. Seleziona uno dei seguenti metodi:

Esempio
curl
  1. Esegui il seguente comando in un terminale, sostituendo l'endpoint del token, l'ID client e i valori segreti del client.

    curl --http1.1 -X POST ${TokenEndpoint} \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id=${ClientId}&client_secret=${ClientSecret}"

    Il token si trova nel access_token campo della risposta, mentre il token_type campo deve specificareBearer.

Python requests package
  1. Esegui il seguente codice Python per ottenere il tuo token di accesso. Il codice presuppone che tu abbia memorizzato i client_secret valori token_endpointclient_id, e del passaggio precedente:

    import requests import json def get_access_token(token_endpoint, client_id, client_secret): headers={ "Content-Type": "application/x-www-form-urlencoded" } payload={ "grant_type": "client_credentials", "client_id": client_id, "client_secret": client_secret } response = requests.post(token_endpoint, headers=headers, data=payload) return response.json() # Replace the argument values as necessary, if you didn't previously store them as these variables access_token_response = get_access_token( token_endpoint=token_endpoint, client_id=client_id, client_secret=client_secret ) access_token = access_token_response["access_token"]