生成 Amazon Bedrock API 密钥 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

生成 Amazon Bedrock API 密钥

您可以使用 AWS Management Console 或 API 生成 Amazon Bedrock AWS API 密钥。我们建议您使用通过几个步骤轻松生成 Amazon Bedrock API 密钥。 AWS Management Console

使用控制台生成 Amazon Bedrock API 密钥

要使用控制台生成 Amazon Bedrock API 密钥,请执行以下操作:

  1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS Management Console 然后,打开 Amazon Bedrock 控制台,网址为https://console.aws.amazon.com/bedrock/

  2. 在左侧导航窗格中,选择 API 密钥

  3. 生成以下类型的密钥之一:

    • 短期 API 密钥-在 “短期 API 密钥” 选项卡中,选择 “生成短期 API 密钥”。密钥将在您的控制台会话过期(且不超过 12 小时)时过期,并允许您调用生成控制台会话的。 AWS 区域 您可以直接在生成的密钥中修改区域。

    • 长期 API 密钥-在 “长期 API 密钥” 选项卡中,选择 “生成长期 API 密钥”。

      1. API 密钥过期部分,选择密钥过期的时间。

      2. (可选)默认情况下,授予对核心 Amazon Bedrock API 操作的访问权限的AmazonBedrockLimitedAccess AWS托管策略将附加到与密钥关联的 IAM 用户。要选择更多要附加到用户的策略,请展开 “高级权限” 部分,然后选择要添加的策略。

      3. 选择 生成

      警告

      我们强烈建议限制使用长期密钥来探索 Amazon Bedrock。当您准备将 Amazon Bedrock 整合到具有更高安全要求的应用程序中时,应查看以下文档:

使用 API 生成 Amazon Bedrock API 密钥

我们建议您使用 AWS Management Console 来生成 Amazon Bedrock API 密钥,以获得轻松的体验。但是,您也可以通过 API 生成密钥。展开与您的用例相对应的部分。

在 API 中创建长期的 Amazon Bedrock API 密钥的一般步骤如下:

  1. 通过发送带有 IAM 终端节点的CreateUser请求来创建 IAM 用户。

  2. 通过 IAM 终端节点发送AttachUserPolicy请求,将附加AmazonBedrockLimitedAccess到 IAM 用户。您可以重复此步骤,根据需要向用户附加其他托管或自定义策略。

    注意

    作为最佳安全实践,我们强烈建议您将 IAM 策略附加到 IAM 用户,以限制使用 Amazon Bedrock API 密钥。有关限时策略和限制可以使用密钥的 IP 地址的示例,请参阅通过向 IAM 用户附加内联策略来控制访问密钥的使用

  3. 通过发送带有 IA M 终端节点CreateServiceSpecificCredential请求并指定bedrock.amazonaws.com为,生成长期的 Amazon Bedrock API 密钥。ServiceName

    • 响应中ServiceApiKeyValue返回的是您的长期亚马逊 Bedrock API 密钥。

    • 响应中ServiceSpecificCredentialId返回的内容可用于执行与密钥相关的 API 操作。

要了解如何生成长期的 Amazon Bedrock API 密钥,请选择您的首选方法选项卡,然后按照以下步骤操作:

CLI

要创建长期的 Amazon Bedrock API 密钥,您需要使用 AWS Identity and Access Management API 操作。首先,请确保您已满足先决条件:

先决条件

确保您的设置 AWS CLI 允许自动识别您的 AWS 凭据。要了解更多信息,请参阅配置设置 AWS CLI

打开一个终端,并运行以下命令:

  1. 创建 IAM 用户。你可以用你选择的名字替换这个名字:

    aws iam create-user --user-name bedrock-api-user
  2. 将附加AmazonBedrockLimitedAccess到用户。您可以对要添加到 API 密钥 ARNs 中的任何其他 AWS托管策略或自定义策略重复此步骤:

    aws iam attach-user-policy --user-name bedrock-api-user --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess
  3. 创建长期 Amazon Bedrock API 密钥,${NUMBER-OF-DAYS}替换为你希望密钥持续的天数:

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

要创建长期的 Amazon Bedrock API 密钥,您需要使用 AWS Identity and Access Management API 操作。首先,请确保您已满足先决条件:

先决条件

确保您的设置允许 Python 自动识别您的 AWS 凭证。要了解更多信息,请参阅配置设置 AWS CLI

运行以下脚本创建 IAM 用户,附加执行 Amazon Bedrock 操作的权限,并生成与该用户关联的长期 Amazon Bedrock API 密钥:

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)

您可以生成一个短期 Amazon Bedrock API 密钥,该密钥的持续时间与生成该密钥的会话一样长(且不超过 12 小时)。

先决条件
  • 确保您的设置允许 Python 自动识别您的 AWS 凭证。要了解更多信息,请参阅配置设置 AWS CLI

  • 打开终端,使用与你正在使用的软件开发工具包对应的命令下载 Amazon Bedrock 令牌生成器:

    • Python

      python3 -m pip install aws-bedrock-token-generator
    • Javascript

      npm install @aws/bedrock-token-generator
  • 确保您用于进行 API 调用的 IAM 身份具有代入角色和创建角色会话的权限:

    • IAM 身份必须具有代入该角色的权限。如果身份的权限受限,则可以将以下基于身份的策略附加到身份(${arn:aws:iam::111122223333:role/SessionRole}替换为会话中角色的实际 ARN):

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "${arn:aws:iam::111122223333:role/SessionRole}" } ] }

      有关向身份授予担任角色的权限的更多信息,请参阅向用户授予切换角色的权限

    • IAM 角色必须具有允许 IAM 身份代入该角色的信任策略。您可以将以下信任策略附加到 IAM 角色,以允许该Principal字段中指定的委托人担任创建密钥的角色。此示例将 IAM 用户指定为委托人。将其替换为用户的实际 ARN。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "${arn:aws:iam::111122223333:user/UserId}" }, "Action": "sts:AssumeRole" } ] }

      有关委托人的更多信息,请参阅 AWS JSON 策略元素:委托人。要了解如何更新角色的信任策略,请参阅更新角色信任策略

选择与您正在使用的软件开发工具包对应的选项卡,然后运行脚本以根据您的会话凭证生成短期 Amazon Bedrock API 密钥:

Python
from aws_bedrock_token_generator import BedrockTokenGenerator import boto3 # Replace with a region of your choice region = "us-east-1" # Fetch credentials session = boto3.Session() credentials = session.get_credentials() # Initialize token generator generator = BedrockTokenGenerator() # Generate one-time token token = generator.get_token(credentials, region)
Javascript
import { BedrockTokenGenerator } from '@aws/bedrock-token-generator'; import { fromNodeProviderChain } from '@aws-sdk/credential-providers'; async function example() { // Set region const region = 'us-east-1' // Create token generator const generator = new BedrockTokenGenerator(); // Get credentials from default provider chain const credentials = fromNodeProviderChain(); // Generate token const token = await generator.generateToken(credentials, region); // Use the token for API calls (valid for 12 hours) console.log(`Bearer Token: ${token}`); }
Java

Maven 导入

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

Gradle 导入

implementation 'software.amazon.bedrock:aws-bedrock-token-generator:1.0.0'

用法

import software.amazon.bedrock.token.BedrockTokenGenerator; import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; import software.amazon.awssdk.regions.Region; // Create token generator BedrockTokenGenerator tokenGenerator = new BedrockTokenGenerator(); // Generate token using default credentials String bearerToken = tokenGenerator.getToken( DefaultCredentialsProvider.create().resolveCredentials(), Region ); // Use the token for API calls (valid for 12 hours) System.out.println("Bearer Token: " + bearerToken);
注意

短期密钥的权限将是以下各项的交集: