Genera una chiave API Amazon Bedrock - Amazon Bedrock

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à.

Genera una chiave API Amazon Bedrock

Puoi generare una chiave API Amazon Bedrock utilizzando l' AWS Management Console o l' AWS API. Ti consigliamo di utilizzare il AWS Management Console per generare facilmente una chiave API Amazon Bedrock in pochi passaggi.

avvertimento

Consigliamo vivamente di limitare l'uso delle chiavi API di Amazon Bedrock per l'esplorazione di Amazon Bedrock. Quando sei pronto a incorporare Amazon Bedrock in applicazioni con requisiti di sicurezza più elevati, dovresti passare a credenziali a breve termine. Per ulteriori informazioni, consulta Alternative alle chiavi di accesso a lungo termine nella Guida per l'utente IAM.

Genera una chiave API Amazon Bedrock utilizzando la console

Per generare una chiave API Amazon Bedrock utilizzando la console, procedi come segue:

  1. Accedi a AWS Management Console con un'identità IAM che dispone delle autorizzazioni per utilizzare la console Amazon Bedrock. Quindi, apri la console Amazon Bedrock in https://console.aws.amazon.com/bedrock.

  2. Nel riquadro di navigazione a sinistra, seleziona Chiavi API.

  3. Genera uno dei seguenti tipi di chiavi:

    • Chiave API a breve termine: nella scheda Chiavi API a breve termine, scegli Genera chiavi API a breve termine. La chiave scade alla scadenza della sessione della console (e non più di 12 ore) e ti consente di effettuare chiamate verso la piattaforma da Regione AWS cui l'hai generata. Puoi modificare la regione direttamente nella chiave generata.

    • Chiave API a lungo termine: nella scheda Chiavi API a lungo termine, scegli Genera chiavi API a lungo termine.

      1. Nella sezione Scadenza della chiave API, scegli l'ora dopo la quale la chiave scadrà.

      2. (Facoltativo) Per impostazione predefinita, la policy AmazonBedrockLimitedAccess AWS gestita, che garantisce l'accesso alle operazioni principali dell'API Amazon Bedrock, è allegata all'utente IAM associato alla chiave. Per selezionare altre politiche da allegare all'utente, espandi la sezione Autorizzazioni avanzate e seleziona le politiche che desideri aggiungere.

      3. Scegliere Generate (Genera).

      avvertimento

      Consigliamo vivamente di limitare l'uso delle chiavi API di Amazon Bedrock per l'esplorazione di Amazon Bedrock. Quando sei pronto a incorporare Amazon Bedrock in applicazioni con requisiti di sicurezza più elevati, dovresti passare a credenziali a breve termine. Per ulteriori informazioni, consulta Alternative alle chiavi di accesso a lungo termine nella Guida per l'utente IAM.

Genera una chiave API Amazon Bedrock a lungo termine utilizzando l'API

I passaggi generali per creare una chiave API Amazon Bedrock a lungo termine nell'API sono i seguenti:

  1. Crea un utente IAM inviando una CreateUserrichiesta con un endpoint IAM.

  2. Collegalo AmazonBedrockLimitedAccessall'utente IAM inviando una AttachUserPolicyrichiesta con un endpoint IAM. Puoi ripetere questo passaggio per allegare all'utente altre policy gestite o personalizzate, se necessario.

    Nota

    Come best practice di sicurezza, consigliamo vivamente di allegare le policy IAM all'utente IAM per limitare l'uso delle chiavi API Amazon Bedrock. Per esempi di politiche di limitazione temporale e di limitazione degli indirizzi IP che possono utilizzare la chiave, consulta Controllare l'uso delle chiavi di accesso allegando una policy in linea a un utente IAM.

  3. Genera la chiave API Amazon Bedrock a lungo termine inviando una CreateServiceSpecificCredentialrichiesta con un endpoint IAM e specificando bedrock.amazonaws.com come. ServiceName

    • La risposta ServiceApiKeyValue restituita è la tua chiave API Amazon Bedrock a lungo termine.

    • Il ServiceSpecificCredentialId valore restituito nella risposta può essere utilizzato per eseguire operazioni API relative alla chiave.

Per scoprire come generare una chiave API Amazon Bedrock a lungo termine, scegli la scheda relativa al tuo metodo preferito, quindi segui i passaggi:

CLI

Per creare una chiave API Amazon Bedrock a lungo termine, utilizzi le operazioni AWS Identity and Access Management API. Innanzitutto, assicurati di aver soddisfatto il prerequisito:

Prerequisito

Assicurati che la configurazione consenta loro di riconoscere automaticamente AWS CLI le tue AWS credenziali. Per ulteriori informazioni, consulta Configurazione delle impostazioni per. AWS CLI

Aprire una finestra del terminale ed eseguire i comandi seguenti:

  1. Crea un utente IAM. Puoi sostituire il nome con uno a tua scelta:

    aws iam create-user --user-name bedrock-api-user
  2. Allega il AmazonBedrockLimitedAccessall'utente. Puoi ripetere questo passaggio con qualsiasi altra politica AWS gestita o personalizzata che desideri aggiungere alla chiave API: ARNs

    aws iam attach-user-policy --user-name bedrock-api-user --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess
  3. Crea la chiave API Amazon Bedrock a lungo termine, sostituendola ${NUMBER-OF-DAYS} con il numero di giorni per i quali desideri che duri la chiave:

    aws iam create-service-specific-credential \ --user-name bedrock-api-user \ --service-name bedrock.amazonaws.com \ --credential-age-days ${NUMBER-OF-DAYS}
Python

Per creare una chiave API Amazon Bedrock a lungo termine, utilizzi le operazioni AWS Identity and Access Management API. Innanzitutto, assicurati di aver soddisfatto il prerequisito:

Prerequisito

Assicurati che la tua configurazione consenta a Python di riconoscere automaticamente le tue AWS credenziali. Per ulteriori informazioni, consulta Configurazione delle impostazioni per. AWS CLI

Esegui lo script seguente per creare un utente IAM, allegare le autorizzazioni per eseguire azioni Amazon Bedrock e generare una chiave API Amazon Bedrock a lungo termine da associare all'utente:

import boto3 from datetime import datetime, timedelta # Replace with name for your IAM user username = "bedrock-api-user" # Add any AWS-managed or custom policies that you want to the user bedrock_policies = [ "arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess", # Limited access # "arn:aws:iam::aws:policy/AmazonBedrockMarketplaceAccess", # Optional: Access to Amazon Bedrock Marketplace actions ] # Set the key expiration time to a number of your choice expiration_time_in_days = 30 iam_client = boto3.client("iam") # Create IAM user user = iam_client.create_iam_user(username) # Attach policies to user for policy_arn in bedrock_policies: iam_client.attach_managed_policy(username, policy_arn) # Create long-term Amazon Bedrock API key and return it service_credentials = iam_client.create_service_specific_credential( user_name=username, service_name="bedrock", credential_age_days=expiration_time_in_days ) api_key = service_credentials["ServiceApiKeyValue"] print(api_key)

Genera una chiave API Amazon Bedrock a breve termine utilizzando una libreria client

Le chiavi a breve termine hanno le seguenti proprietà:

  • Valido per il più breve dei seguenti valori:

    • 12 ore

    • La durata della sessione generata dal principale IAM utilizzato per generare la chiave.

  • Eredita le autorizzazioni associate al principale utilizzato per generare la chiave.

  • Può essere utilizzato solo nella AWS regione da cui è stato generato.

Per le applicazioni a lunga durata, la libreria aws-bedrock-token-generatorclient può creare nuove chiavi API a breve termine di Amazon Bedrock, se necessario, quando le credenziali vengono aggiornate. Per ulteriori informazioni, consulta Configura l'aggiornamento automatico delle chiavi API Amazon Bedrock a breve termine.

Prerequisiti
  • Assicurati che il principale IAM utilizzato per generare la chiave sia configurato con le autorizzazioni appropriate per utilizzare Amazon Bedrock. Per la sperimentazione, puoi allegare la AmazonBedrockLimitedAccesspolicy AWS-managed al principale. Puoi fare riferimento alle best practice di sicurezza di IAM per proteggere le tue credenziali.

  • Assicurati che la tua configurazione consenta a Python di riconoscere automaticamente le tue AWS credenziali. Il metodo predefinito con cui vengono recuperate le credenziali segue una gerarchia definita. Puoi visualizzare la gerarchia per un SDK o uno strumento specifico nei provider di credenziali standardizzati AWS SDKs and Tools.

  • Installa il generatore di token Amazon Bedrock. Scegli la scheda relativa al metodo che preferisci, quindi segui i passaggi:

Python

Apri un terminale ed esegui il seguente comando:

pip install aws-bedrock-token-generator
Javascript

Apri un terminale ed esegui il seguente comando:

npm install @aws/bedrock-token-generator
Java

Se usi Maven, aggiungi la seguente dipendenza al tuo: pom.xml

<dependency> <groupId>software.amazon.bedrock</groupId> <artifactId>aws-bedrock-token-generator</artifactId> <version>1.1.0</version> </dependency>

Se usi Gradle, aggiungi quanto segue al tuo: build.gradle

implementation 'software.amazon.bedrock:aws-bedrock-token-generator:1.1.0'
Esempi

Per vedere esempi di utilizzo del generatore di token per generare una chiave API Amazon Bedrock a breve termine con le tue credenziali predefinite in diverse lingue, scegli la scheda relativa al tuo metodo preferito e segui i passaggi:

Python
from aws_bedrock_token_generator import provide_token token = provide_token() print(f"Token: {token}")
Javascript
import { getTokenProvider } from "@aws/bedrock-token-generator"; // Create a token provider that uses default credentials and region providers. // You can configure it to use other credential providers. const provideToken = getTokenProvider(); async function example() { const token = await provideToken(); // Use the token for API calls. The token has a default expiration of 12 hour. // If the expiresInSeconds parameter is specified during token creation, the // expiration can be configured up to a maximum of 12 hours. However, the actual // token validity period will always be the minimum of the requested expiration // time and the AWS credentials' expiry time console.log(`Bearer Token: ${token}`); }
Java
import software.amazon.bedrock.token.BedrockTokenGenerator; // Credentials and region will be picked up from the default provider chain BedrockTokenGenerator tokenGenerator = BedrockTokenGenerator.builder().build(); tokenGenerator.getToken();

Per vedere altri esempi di diversi casi d'uso per la generazione di token, consulta i seguenti link:

Configura l'aggiornamento automatico delle chiavi API Amazon Bedrock a breve termine

Puoi creare uno script con l'aiuto del aws-bedrock-token-generator pacchetto per rigenerare a livello di codice una nuova chiave a breve termine ogni volta che quella attuale è scaduta. Innanzitutto, assicurati di aver soddisfatto i prerequisiti in. Genera una chiave API Amazon Bedrock a breve termine utilizzando una libreria client Per vedere esempi di script che recuperano un token ed effettuano una richiesta Converse, scegli la scheda relativa al tuo metodo preferito, quindi segui i passaggi:

Python
from aws_bedrock_token_generator import provide_token import requests def get_new_token(): url = "https://bedrock-runtime.us-west-2.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse" payload = { "messages": [ { "role": "user", "content": [{"text": "Hello"}] } ] } # Create a token provider that uses default credentials and region providers. # You can configure it to use other credential providers. # https://github.com/aws/aws-bedrock-token-generator-python/blob/main/README.md # It can be used for each API call as it is inexpensive. token = provide_token() headers = { "Content-Type": "application/json", "Authorization": f"Bearer {token}" } response = requests.post(url, headers=headers, json=payload) print(response.json()) if __name__ == "__main__": get_new_token()
Javascript
import { getTokenProvider } from "@aws/bedrock-token-generator"; // Create a token provider that uses default credentials and region providers. // You can configure it to use other credential providers. // https://github.com/aws/aws-bedrock-token-generator-js/blob/main/README.md // This can be created just once. Use await provideToken() to fetch the token const provideToken = getTokenProvider(); async function example() { const url = "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse"; const payload = { messages: [ { role: "user", content: [{ text: "Hello" }] } ] }; const headers = { "Content-Type": "application/json", // provideToken retrieves a valid token. It can be used for each API call as it is inexpensive. "Authorization": `Bearer ${await provideToken()}` }; await fetch(url, { method: 'POST', headers: headers, body: JSON.stringify(payload) }) }
Java
package com.amazon.bedrocktoken; import software.amazon.bedrock.token.BedrockTokenGenerator; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class GetNewToken { public static void main(String[] args) throws Exception { // Use default credentials and region from environment/profile chain // Create a token generator that uses default credentials and region providers. // You can configure it to use other credential providers. // https://github.com/aws/aws-bedrock-token-generator-java/blob/main/README.md BedrockTokenGenerator tokenGenerator = BedrockTokenGenerator.builder().build(); // getToken() retrieves a valid token. It can be used for each API call as it is inexpensive. String token = tokenGenerator.getToken(); String url = "https://bedrock-runtime.us-west-2.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse"; String payload = "{\n" + " \"messages\": [\n" + " {\n" + " \"role\": \"user\",\n" + " \"content\": [{ \"text\": \"Hello\" }]\n" + " }\n" + " ]\n" + "}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .header("Content-Type", "application/json") .header("Authorization", "Bearer " + token) .POST(HttpRequest.BodyPublishers.ofString(payload)) .build(); HttpClient client = HttpClient.newHttpClient(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } }