View a markdown version of this page

API 金鑰 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

API 金鑰

Amazon Bedrock API 金鑰可讓您使用承載字符而非 AWS 登入資料來驗證 API 請求。受管字首清單有兩種類型:

  • 短期 – 最長持續 12 小時 (或工作階段持續時間,以較短者為準)。從用於產生它的 IAM 主體繼承許可。建議用於生產用途。

  • 長期 – 持續到設定的過期日期。建立已連接政策的 IAM 使用者。建議僅用於探勘。

注意

所有 API 呼叫都會登入 AWS CloudTrail。API 金鑰會以授權標頭的形式傳遞,不會記錄。

產生短期 API 金鑰

選擇您偏好方法的索引標籤,然後遵循下列步驟:

Console
  1. AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著,開啟位於 https://console.aws.amazon.com/bedrock 的 Amazon Bedrock 主控台。

  2. 在左側導覽窗格中,選取API 金鑰

  3. 短期 API 金鑰索引標籤中,選擇產生短期 API 金鑰

金鑰會在主控台工作階段過期時過期 (最長 12 小時)。若要為不同區域產生金鑰,請先在主控台中切換區域。

Python

安裝字符產生器:

pip install aws-bedrock-token-generator

產生權杖:

from aws_bedrock_token_generator import provide_token token = provide_token() print(f"Token: {token}")
Javascript

安裝字符產生器:

npm install @aws/bedrock-token-generator

產生權杖:

import { getTokenProvider } from "@aws/bedrock-token-generator"; const provideToken = getTokenProvider(); const token = await provideToken(); console.log(`Bearer Token: ${token}`);
Java

新增相依性 (Maven):

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

產生權杖:

import software.amazon.bedrock.token.BedrockTokenGenerator; BedrockTokenGenerator tokenGenerator = BedrockTokenGenerator.builder().build(); String token = tokenGenerator.getToken();

產生長期 API 金鑰

警告

長期金鑰僅適用於探勘。對於生產,請使用短期金鑰。如需詳細資訊,請參閱長期存取金鑰的替代方案

選擇您偏好方法的索引標籤,然後遵循下列步驟:

Console
  1. AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著,開啟位於 https://console.aws.amazon.com/bedrock 的 Amazon Bedrock 主控台。

  2. 在左側導覽窗格中,選取API 金鑰

  3. 長期 API 金鑰索引標籤中,選擇產生長期 API 金鑰

  4. 選擇過期時間,並選擇性地在進階許可中新增許可

  5. 選擇 Generate (產生)

CLI
# Create an IAM user aws iam create-user --user-name bedrock-api-user # Attach permissions aws iam attach-user-policy --user-name bedrock-api-user \ --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess # Generate the API key (replace 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}

回應ServiceApiKeyValue中的 是您的 API 金鑰。

若要稍後停用或刪除金鑰,ServiceSpecificCredentialId請從回應中使用 :

# Deactivate the key aws iam update-service-specific-credential \ --user-name bedrock-api-user \ --service-specific-credential-id ${ServiceSpecificCredentialId} \ --status Inactive # Delete the key permanently aws iam delete-service-specific-credential \ --user-name bedrock-api-user \ --service-specific-credential-id ${ServiceSpecificCredentialId}
Python
import boto3 iam_client = boto3.client("iam") # Create IAM user iam_client.create_user(UserName="bedrock-api-user") # Attach permissions iam_client.attach_user_policy( UserName="bedrock-api-user", PolicyArn="arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess" ) # Generate API key response = iam_client.create_service_specific_credential( UserName="bedrock-api-user", ServiceName="bedrock.amazonaws.com", CredentialAgeDays=30 ) api_key = response["ServiceSpecificCredential"]["ServiceApiKeyValue"] print(api_key)

使用 API 金鑰

將金鑰設定為環境變數:

# macOS/Linux export AWS_BEARER_TOKEN_BEDROCK=${api-key} # Windows setx AWS_BEARER_TOKEN_BEDROCK "${api-key}"

或直接在 Authorization標頭中傳遞:

Authorization: Bearer ${api-key}
範例:提出 Converse 請求

選擇您偏好方法的索引標籤,然後遵循下列步驟:

cURL
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-sonnet-4-6/converse" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \ -d '{ "messages": [{"role": "user", "content": [{"text": "Hello"}]}] }'
Python (boto3)
import os import boto3 os.environ['AWS_BEARER_TOKEN_BEDROCK'] = "${api-key}" client = boto3.client("bedrock-runtime", region_name="us-east-1") response = client.converse( modelId="us.anthropic.claude-sonnet-4-6", messages=[{"role": "user", "content": [{"text": "Hello"}]}] )

自動重新整理短期金鑰

對於長時間執行的應用程式,請在每個請求之前呼叫字符產生器。如果仍然有效或自動產生新的權杖,它會傳回快取的權杖:

Python
from aws_bedrock_token_generator import provide_token import requests url = "https://bedrock-runtime.us-west-2.amazonaws.com/model/us.anthropic.claude-sonnet-4-6/converse" payload = {"messages": [{"role": "user", "content": [{"text": "Hello"}]}]} # Call provide_token() before each request — it handles caching/refresh token = provide_token() headers = {"Content-Type": "application/json", "Authorization": f"Bearer {token}"} response = requests.post(url, headers=headers, json=payload) print(response.json())
Javascript
import { getTokenProvider } from "@aws/bedrock-token-generator"; const provideToken = getTokenProvider(); const url = "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-sonnet-4-6/converse"; const payload = {messages: [{role: "user", content: [{text: "Hello"}]}]}; // provideToken() handles caching/refresh automatically const headers = { "Content-Type": "application/json", "Authorization": `Bearer ${await provideToken()}` }; await fetch(url, {method: 'POST', headers, body: JSON.stringify(payload)});

如需更多範例,請參閱字符產生器文件:Python | Javascript | Java

修改許可

長期 API 金鑰與 IAM 使用者相關聯。若要變更其許可,請修改連接至該使用者的政策。請參閱新增和移除 IAM 身分許可

從主控台:前往 API 金鑰 > 長期 API 金鑰 > 選取您的金鑰 > 在 IAM 主控台中管理

已遭入侵的金鑰

如果金鑰遭到入侵,請採取下列其中一個動作:

Action Key type 方法
停用 長期 主控台:API 金鑰 > 選取金鑰 > 動作 > 停用。API:UpdateServiceSpecificCredential使用 Status=Inactive
重設 長期 主控台:動作 > 重設金鑰。API:ResetServiceSpecificCredential
刪除 長期 主控台:動作 > 刪除。API:DeleteServiceSpecificCredential
使工作階段失效 短期 將 IAM 政策連接至拒絕 的身分bedrock:CallWithBearerToken,或使用於產生金鑰的工作階段失效。

控制誰可以產生和使用 API 金鑰

兩個 IAM 動作控制 API 金鑰的產生和用量:

  • iam:CreateServiceSpecificCredential – 控制長期金鑰的產生。使用 iam:ServiceSpecificCredentialAgeDays 條件金鑰來限制過期 (例如,最長 90 天)。

  • bedrock:CallWithBearerToken – 控制任何 API 金鑰的用量。使用 bedrock:bearerTokenType條件索引鍵搭配 值SHORT_TERMLONG_TERM ,以特定索引鍵類型為目標。

範例:防止身分使用任何 API 金鑰

將此政策連接至身分:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "bedrock:CallWithBearerToken", "Resource": "*" } ] }
範例:僅允許短期金鑰 (最多 90 天)

將此政策連接至身分:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceSpecificCredential", "Resource": "*", "Condition": { "NumericLessThanEquals": { "iam:ServiceSpecificCredentialAgeDays": "90" }, "StringEquals": { "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com" } } } ] }

如需更詳細的政策範例,請參閱 API 金鑰參考