Generación de una clave de API de Amazon Bedrock - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Generación de una clave de API de Amazon Bedrock

Puede generar una clave de API de Amazon Bedrock mediante la Consola de administración de AWS o la AWS. Le recomendamos que utilice la Consola de administración de AWS para generar fácilmente una clave de API de Amazon Bedrock en unos pocos pasos.

aviso

Le recomendamos encarecidamente que restrinja el uso de las claves de API de Amazon Bedrock para la exploración de Amazon Bedrock. Cuando esté preparado para incorporar Amazon Bedrock en aplicaciones con mayores requisitos de seguridad, debería cambiar a credenciales de corta duración. Para obtener más información, consulte Alternativas para las claves de acceso a largo plazo en la Guía del usuario de IAM.

Generación de una clave de API de Amazon Bedrock mediante la consola

Para generar una clave de API de Amazon Bedrock mediante la consola, haga lo siguiente:

  1. Inicie sesión en la Consola de administración de AWS con una identidad de IAM que tenga permisos para usar la consola de Amazon Bedrock. A continuación, abra la consola de Amazon Bedrock en https://console.aws.amazon.com/bedrock/.

  2. En el panel de navegación izquierdo, seleccione Claves de API.

  3. Genere uno de los siguientes tipos de claves:

    • Clave de API de larga duración: en la pestaña Claves de API de corta duración, seleccione Generar claves de API de corta duración. La clave caduca cuando caduca la sesión de la consola (y no más de 12 horas) y le permite realizar llamadas a la Región de AWS desde la que la generó. Puede modificar la región directamente en la clave generada.

    • Clave de API de larga duración: en la pestaña Claves de API de larga duración, seleccione Generar claves de API de larga duración.

      1. En la sección Caducidad de la clave de API, elija una hora a partir de la cual caducará la clave.

      2. (Opcional) De forma predeterminada, la política administrada de AWS AmazonBedrockLimitedAccess, que concede acceso a las operaciones principales de la API de Amazon Bedrock, se adjunta al usuario de IAM asociado a la clave. Para seleccionar más políticas para adjuntarlas al usuario, amplíe la sección Permisos avanzados y seleccione las políticas que desee añadir.

      3. Seleccione Generar.

      aviso

      Le recomendamos encarecidamente que restrinja el uso de las claves de API de Amazon Bedrock para la exploración de Amazon Bedrock. Cuando esté preparado para incorporar Amazon Bedrock en aplicaciones con mayores requisitos de seguridad, debería cambiar a credenciales de corta duración. Para obtener más información, consulte Alternativas para las claves de acceso a largo plazo en la Guía del usuario de IAM.

Generación de una clave de API de Amazon Bedrock de larga duración con la API

Los pasos generales para crear una clave de API de Amazon Bedrock de larga duración en la API son los siguientes:

  1. Cree un usuario de IAM enviando una solicitud CreateUser con un punto de conexión de IAM.

  2. Asocie AmazonBedrockLimitedAccess al usuario de IAM enviando una solicitud AttachUserPolicy con un punto de conexión de IAM. Puede repetir este paso para asociar al usuario otras políticas administradas o personalizadas, según sea necesario.

    nota

    Como práctica recomendada de seguridad, le recomendamos encarecidamente que asocie políticas de IAM al usuario de IAM para restringir el uso de las claves de API de Amazon Bedrock. Para ver ejemplos de políticas con límites de tiempo y que restringen las direcciones IP que pueden utilizar la clave, consulte Control del uso de las claves de acceso asociando una política integrada a un usuario de IAM.

  3. Genere la clave de API de Amazon Bedrock de larga duración enviando una solicitud CreateServiceSpecificCredential con un punto de conexión de IAM y especificando bedrock.amazonaws.com como ServiceName.

    • El ServiceApiKeyValue devuelto en la respuesta es su clave de API de Amazon Bedrock de larga duración.

    • El ServiceSpecificCredentialId devuelto en la respuesta se puede utilizar para realizar operaciones de API relacionadas con la clave.

Para obtener más información sobre cómo generar una clave de API de Amazon Bedrock de larga duración, seleccione la pestaña correspondiente al método que prefiera y siga los pasos:

CLI

Para crear una clave de API de Amazon Bedrock a largo plazo, se utilizan las operaciones de la API de AWS Identity and Access Management. Primero, asegúrese de que ha cumplido el requisito previo:

Requisito previo

Asegúrese de que su configuración permita que la AWS CLI reconozca automáticamente sus credenciales de AWS. Para obtener más información, consulte Configuración de los ajustes de AWS CLI.

Abra una ventana de terminal y ejecute los siguientes comandos:

  1. Cree un usuario de IAM. Puede sustituir el nombre por uno de su elección:

    aws iam create-user --user-name bedrock-api-user
  2. Asocie AmazonBedrockLimitedAccess al usuario. Puede repetir este paso con los ARN de cualquier otra política administrada de AWS o personalizada que desee añadir a la clave de API:

    aws iam attach-user-policy --user-name bedrock-api-user --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess
  3. Cree la clave API de Amazon Bedrock de larga duración sustituyendo ${NUMBER-OF-DAYS} por el número de días que desee que dure la clave:

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

Para crear una clave de API de Amazon Bedrock a largo plazo, se utilizan las operaciones de la API de AWS Identity and Access Management. Primero, asegúrese de que ha cumplido el requisito previo:

Requisito previo

Asegúrese de que su configuración permita que Python reconozca automáticamente sus credenciales de AWS. Para obtener más información, consulte Configuración de los ajustes de AWS CLI.

Ejecute el siguiente script para crear un usuario de IAM, asociar permisos para realizar acciones de Amazon Bedrock y generar una clave de API de Amazon Bedrock de larga duración para asociarla al usuario:

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)

Generación de una clave de API de Amazon Bedrock de corta duración mediante una biblioteca cliente

Las claves de corta duración tienen las propiedades siguientes:

  • Válido para el menor de los siguientes valores:

    • 12 horas

    • La duración de la sesión generada por la entidad principal de IAM utilizada para generar la clave

  • Hereda los permisos asociados a la entidad principal utilizada para generar la clave.

  • Solo se puede usar en la región de AWS desde la que se generó.

Para aplicaciones de larga duración, la biblioteca cliente aws-bedrock-token-generator puede crear nuevas claves de API de corta duración de Amazon Bedrock según sea necesario al actualizar las credenciales. Para obtener más información, consulte Configuración de la actualización automática de las claves de API de Amazon Bedrock de corta duración.

Requisitos previos
  • Asegúrese de que la entidad principal de IAM que utiliza para generar la clave esté configurada con los permisos adecuados para utilizar Amazon Bedrock. Para la experimentación, puede asociar la política administrada de AWS AmazonBedrockLimitedAccess a la entidad principal. Puede consultar las Prácticas recomendadas de seguridad de IAM para proteger sus credenciales.

  • Asegúrese de que su configuración permita que Python reconozca automáticamente sus credenciales de AWS. El método predeterminado por el que se recuperan las credenciales sigue una jerarquía definida. Puede consultar la jerarquía de un SDK o una herramienta específicos en Proveedores de credenciales estandarizados de SDK y herramientas de AWS.

  • Instale el generador de tokens de Amazon Bedrock. Elija la pestaña del método que prefiera y siga estos pasos:

Python

Abra una ventana de terminal y ejecute el siguiente comando:

pip install aws-bedrock-token-generator
Javascript

Abra una ventana de terminal y ejecute el siguiente comando:

npm install @aws/bedrock-token-generator
Java

Si utiliza Maven, añada la siguiente dependencia a su pom.xml:

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

Si usa Gradle, añada lo siguiente a su build.gradle:

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

Para ver ejemplos de uso del generador de tokens para generar una clave de API de Amazon Bedrock de corta duración con sus credenciales predeterminadas en diferentes lenguajes, elija la pestaña correspondiente al método que prefiera y, a continuación, siga los pasos:

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();

Para ver más ejemplos de distintos casos de uso de generación de tokens, consulte los siguientes enlaces:

Configuración de la actualización automática de las claves de API de Amazon Bedrock de corta duración

Puede crear un script con la ayuda del paquete aws-bedrock-token-generator para volver a generar mediante programación una nueva clave de corta duración cada vez que la actual haya caducado. Primero, asegúrese de que ha cumplido el requisito previo en Generación de una clave de API de Amazon Bedrock de corta duración mediante una biblioteca cliente: Para ver ejemplos de scripts que recuperan un token y realizan una solicitud Converse, seleccione la pestaña correspondiente al método que prefiera y, a continuación, siga los pasos:

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()); } }