翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Bedrock API キーを生成する
Amazon Bedrock API キーは、 AWS Management Console または AWS API を使用して生成できます。を使用して AWS Management Console 、いくつかのステップで Amazon Bedrock API キーを簡単に生成することをお勧めします。
Amazon Bedrock の探索には、Amazon Bedrock API キーの使用を制限することを強くお勧めします。セキュリティ要件が高いアプリケーションに Amazon Bedrock を組み込む準備ができたら、短期認証情報に切り替える必要があります。詳細については、IAM ユーザーガイドの「長期アクセスキーの代替」を参照してください。
コンソールを使用して Amazon Bedrock API キーを生成する
コンソールを使用して Amazon Bedrock API キーを生成するには、次の手順を実行します。
-
Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS Management Console を使用して にサインインします。次に、https://console.aws.amazon.com/bedrock で Amazon Bedrock コンソールを開きます。
-
左側のナビゲーションペインで、API キーを選択します。
-
次のいずれかのタイプのキーを生成します。
API を使用して長期的な Amazon Bedrock API キーを生成する
API で長期的な Amazon Bedrock API キーを作成する一般的な手順は次のとおりです。
長期 Amazon Bedrock API キーを生成する方法については、任意の方法のタブを選択し、手順に従います。
- CLI
-
長期 Amazon Bedrock API キーを作成するには、 AWS Identity and Access Management API オペレーションを使用します。まず、前提条件を満たしていることを確認します。
前提条件
設定により、 が AWS 認証情報を自動的に認識 AWS CLI できることを確認します。詳細については、「 の設定の構成 AWS CLI」を参照してください。
ターミナルを開き、次のコマンドを実行します。
-
IAM ユーザーを作成します。名前を任意の名前に置き換えることができます。
aws iam create-user --user-name bedrock-api-user
-
AmazonBedrockLimitedAccess をユーザーにアタッチします。API キーに追加する他の AWS管理ポリシーまたはカスタムポリシーの ARNs を使用して、このステップを繰り返すことができます。
aws iam attach-user-policy --user-name bedrock-api-user --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess
-
長期 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 キーを生成する
短期キーには次のプロパティがあります。
長時間実行されるアプリケーションの場合、aws-bedrock-token-generator クライアントライブラリは、認証情報の更新時に必要に応じて新しい Amazon Bedrock 短期 API キーを作成できます。詳細については、「短期 Amazon Bedrock API キーの自動更新を設定する」を参照してください。
前提条件
-
キーの生成に使用する IAM プリンシパルが、Amazon Bedrock を使用するための適切なアクセス許可で設定されていることを確認します。実験のために、 AWS管理の AmazonBedrockLimitedAccess ポリシーをプリンシパルにアタッチできます。認証情報の保護については、IAM のセキュリティのベストプラクティスを参照してください。
-
セットアップにより、Python が AWS 認証情報を自動的に認識できることを確認します。認証情報を取得するデフォルトの方法は、定義された階層に従います。特定の SDK またはツールの階層は、AWS SDKs標準化された認証情報プロバイダーで確認できます。
-
Amazon Bedrock トークンジェネレーターをインストールします。任意の方法のタブを選択し、ステップに従います。
- Python
-
ターミナルを開き、次のコマンドを実行します。
pip install aws-bedrock-token-generator
- Javascript
-
ターミナルを開き、次のコマンドを実行します。
npm install @aws/bedrock-token-generator
- Java
-
Maven を使用する場合は、次の依存関係を に追加しますpom.xml
。
<dependency>
<groupId>software.amazon.bedrock</groupId>
<artifactId>aws-bedrock-token-generator</artifactId>
<version>1.1.0</version>
</dependency>
Gradle を使用する場合は、 に以下を追加しますbuild.gradle
。
implementation 'software.amazon.bedrock:aws-bedrock-token-generator:1.1.0'
例
トークンジェネレーターを使用して、デフォルトの認証情報を持つ短期 Amazon Bedrock API キーを異なる言語で生成する例を確認するには、任意の方法のタブを選択し、ステップに従います。
- 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();
トークンの生成時のさまざまなユースケースのその他の例については、次のリンクを参照してください。
短期 Amazon Bedrock API キーの自動更新を設定する
aws-bedrock-token-generator
パッケージを使用してスクリプトを作成し、現在の短期キーの有効期限が切れるたびにプログラムで新しい短期キーを再生成できます。まず、「」の前提条件を満たしていることを確認しますクライアントライブラリを使用して短期 Amazon Bedrock API キーを生成する。トークンを取得して Converse リクエストを行うスクリプトの例を表示するには、任意のメソッドのタブを選択し、ステップに従います。
- 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());
}
}