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

Generar una clave de API de Amazon Bedrock

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

aviso

Recomendamos encarecidamente restringir 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 corto plazo. Para obtener más información, consulte Alternativas a las claves de acceso a largo plazo en la Guía del usuario de IAM.

Genere 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 AWS Management Console con una identidad de IAM que tenga permisos para usar la consola 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, selecciona las claves de API.

  3. Genera uno de los siguientes tipos de claves:

    • Clave de API a corto plazo: en la pestaña Claves de API a corto plazo, selecciona Generar claves de API a corto plazo. La clave caduca cuando caduca la sesión de la consola (y no más de 12 horas) y te permite realizar llamadas a la fuente desde la Región de AWS que la generaste. Puede modificar la región directamente en la clave generada.

    • Clave de API a largo plazo: en la pestaña Claves de API a largo plazo, selecciona Generar claves de API a largo plazo.

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

      2. (Opcional) De forma predeterminada, la política AmazonBedrockLimitedAccess AWS gestionada, 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 de permisos avanzados y seleccione las políticas que desee añadir.

      3. Seleccione Generar.

      aviso

      Recomendamos encarecidamente restringir 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 corto plazo. Para obtener más información, consulte Alternativas a las claves de acceso a largo plazo en la Guía del usuario de IAM.

Genere una clave de API de Amazon Bedrock a largo plazo mediante la API

Los pasos generales para crear una clave de API de Amazon Bedrock a largo plazo en la API son los siguientes:

  1. Cree un usuario de IAM enviando una CreateUsersolicitud con un punto de enlace de IAM.

  2. Adjunte el AmazonBedrockLimitedAccessnombre al usuario de IAM enviando una AttachUserPolicysolicitud con un punto final de IAM. Puede repetir este paso para adjuntar al usuario otras políticas administradas o personalizadas, según sea necesario.

    nota

    Como práctica recomendada de seguridad, le recomendamos encarecidamente que adjunte 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 plazos determinados y restringir las direcciones IP que pueden utilizar la clave, consulte Controlar el uso de las claves de acceso adjuntando una política en línea a un usuario de IAM.

  3. Genere la clave de API de Amazon Bedrock a largo plazo enviando una CreateServiceSpecificCredentialsolicitud con un punto de enlace de IAM y especificándola bedrock.amazonaws.com como. ServiceName

    • La que se ServiceApiKeyValue devuelve en la respuesta es tu clave de API de Amazon Bedrock a largo plazo.

    • La ServiceSpecificCredentialId información devuelta en la respuesta se puede utilizar para realizar operaciones de API relacionadas con la clave.

Para obtener información sobre cómo generar una clave de API de Amazon Bedrock a largo plazo, elija la pestaña del método que prefiera y, a continuación, siga los pasos:

CLI

Para crear una clave de API de Amazon Bedrock a largo plazo, utilice las operaciones de AWS Identity and Access Management API. En primer lugar, asegúrese de cumplir el requisito previo:

Requisito previo

Asegúrese de que su configuración le permita reconocer automáticamente sus AWS credenciales. AWS CLI Para obtener más información, consulte Configurar los ajustes para 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. Adjunte el nombre AmazonBedrockLimitedAccessal usuario. Puedes repetir este paso con cualquier otra política AWS gestionada o personalizada que desees añadir a la clave de API: ARNs

    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 y ${NUMBER-OF-DAYS} sustitúyala por el número de días que desea 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, utilice las operaciones de AWS Identity and Access Management API. En primer lugar, asegúrese de cumplir el requisito previo:

Requisito previo

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

Ejecute el siguiente script para crear un usuario de IAM, adjuntar permisos para realizar acciones de Amazon Bedrock y generar una clave de API de Amazon Bedrock a largo plazo 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)

Genere una clave de API de Amazon Bedrock a corto plazo mediante una biblioteca de clientes

Las claves de corto plazo tienen las siguientes propiedades:

  • Válido para el valor más corto de los siguientes:

    • 12 horas

    • La duración de la sesión generada por el principal de IAM utilizado para generar la clave.

  • Herede los permisos adjuntos al principal utilizado para generar la clave.

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

Para las aplicaciones de ejecución prolongada, la biblioteca aws-bedrock-token-generatorcliente puede crear nuevas claves de API a corto plazo de Amazon Bedrock según sea necesario cuando se actualicen las credenciales. Para obtener más información, consulte Configurar la actualización automática de las claves de API de Amazon Bedrock a corto plazo.

Requisitos previos
  • Asegúrese de que el principal de IAM que utiliza para generar la clave esté configurado con los permisos adecuados para utilizar Amazon Bedrock. Para experimentar, puede adjuntar la AmazonBedrockLimitedAccesspolítica AWS gestionada al director. 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 AWS credenciales. El método predeterminado por el que se recuperan las credenciales sigue una jerarquía definida. Puedes ver la jerarquía de un SDK o una herramienta específicos en los proveedores AWS SDKs de credenciales estandarizados de Tools.

  • Instala el generador de fichas de Amazon Bedrock. Elige la pestaña del método que prefieras y, a continuación, sigue los pasos:

Python

Abre una terminal y ejecuta el siguiente comando:

pip install aws-bedrock-token-generator
Javascript

Abre una terminal y ejecuta el siguiente comando:

npm install @aws/bedrock-token-generator
Java

Si usas Maven, agrega la siguiente dependencia a tupom.xml:

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

Si usas Gradle, agrega lo siguiente a tu: 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 a corto plazo con sus credenciales predeterminadas en diferentes idiomas, 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 a la hora de generar tokens, consulta los siguientes enlaces:

Configurar la actualización automática de las claves de API de Amazon Bedrock a corto plazo

Puede crear un script con la ayuda del aws-bedrock-token-generator paquete para regenerar mediante programación una nueva clave de corto plazo cada vez que la actual haya caducado. En primer lugar, asegúrate de cumplir los requisitos previos que se indican en. Genere una clave de API de Amazon Bedrock a corto plazo mediante una biblioteca de clientes Para ver ejemplos de scripts que recuperan un token y realizan una solicitud de Converse, selecciona la pestaña del método que prefieras y, a continuación, sigue 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()); } }