View a markdown version of this page

Kunci API - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kunci API

Kunci Amazon Bedrock API memungkinkan Anda mengautentikasi permintaan API menggunakan token pembawa, bukan kredensional. AWS Ada dua jenis:

  • Short-term— Berlangsung hingga 12 jam (atau durasi sesi Anda, mana yang lebih pendek). Mewarisi izin dari prinsipal IAM yang digunakan untuk menghasilkannya. Direkomendasikan untuk penggunaan produksi.

  • Long-term— Berlangsung hingga tanggal kedaluwarsa yang dikonfigurasi. Membuat pengguna IAM dengan kebijakan terlampir. Direkomendasikan hanya untuk eksplorasi.

catatan

Semua panggilan API masuk AWS CloudTrail. Kunci API diteruskan sebagai header otorisasi dan tidak dicatat.

Menghasilkan kunci API jangka pendek

Pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

Console
  1. Masuk ke Konsol Manajemen AWS dengan identitas IAM yang memiliki izin untuk menggunakan konsol Amazon Bedrock. Kemudian, buka konsol Amazon Bedrock di https://console.aws.amazon.com/bedrock.

  2. Di panel navigasi kiri, pilih kunci API.

  3. Di tab Kunci Short-term API, pilih Hasilkan kunci API jangka pendek.

Kunci kedaluwarsa saat sesi konsol Anda kedaluwarsa (maks 12 jam). Untuk membuat kunci untuk Wilayah yang berbeda, alihkan Wilayah di konsol terlebih dahulu.

Python

Instal generator token:

pip install aws-bedrock-token-generator

Menghasilkan token:

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

Instal generator token:

npm install @aws/bedrock-token-generator

Menghasilkan token:

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

Tambahkan ketergantungan (Maven):

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

Menghasilkan token:

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

Hasilkan kunci API jangka panjang

Awas

Long-term kunci hanya untuk eksplorasi. Untuk produksi, gunakan kunci jangka pendek. Untuk informasi selengkapnya, lihat Alternatif untuk kunci akses jangka panjang.

Pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

Console
  1. Masuk ke Konsol Manajemen AWS dengan identitas IAM yang memiliki izin untuk menggunakan konsol Amazon Bedrock. Kemudian, buka konsol Amazon Bedrock di https://console.aws.amazon.com/bedrock.

  2. Di panel navigasi kiri, pilih kunci API.

  3. Di tab Kunci Long-term API, pilih Hasilkan kunci API jangka panjang.

  4. Pilih waktu kedaluwarsa dan secara opsional tambahkan izin di Izin lanjutan.

  5. Pilih Hasilkan.

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}

Responsnya adalah kunci API Anda. ServiceApiKeyValue

Untuk menonaktifkan atau menghapus kunci nanti, gunakan ServiceSpecificCredentialId dari respons:

# 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)

Menggunakan kunci API

Tetapkan kunci sebagai variabel lingkungan:

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

Atau berikan langsung di Authorization header:

Authorization: Bearer ${api-key}
Contoh: Membuat permintaan Converse

pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

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"}]}] )

Auto-refresh kunci jangka pendek

Untuk aplikasi yang berjalan lama, hubungi generator token sebelum setiap permintaan. Ia mengembalikan token cache jika masih valid atau menghasilkan yang baru secara otomatis:

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

Untuk contoh lainnya, lihat dokumentasi generator token: Python | Javascript | Java.

Ubah izin

Kunci API jangka panjang dikaitkan dengan pengguna IAM. Untuk mengubah izinnya, ubah kebijakan yang dilampirkan pada pengguna tersebut. Lihat Menambahkan dan menghapus izin identitas IAM.

Dari konsol: buka kunci API> kunci API> Long-term pilih kunci Anda> Kelola di Konsol IAM.

Kunci yang dikompromikan

Jika kunci dikompromikan, lakukan salah satu tindakan berikut:

Tindakan Tipe Kunci Bagaimana
Nonaktifkan Long-term Konsol: Kunci API> pilih kunci> Tindakan > Nonaktifkan. API: UpdateServiceSpecificCredential denganStatus=Inactive.
Setel ulang Long-term Konsol: Tindakan> Tombol reset. API:ResetServiceSpecificCredential.
Delete Long-term Konsol: Tindakan> Hapus. API:DeleteServiceSpecificCredential.
Sesi tidak valid Short-term Lampirkan kebijakan IAM ke identitas yang menyangkalbedrock:CallWithBearerToken, atau membatalkan sesi yang digunakan untuk menghasilkan kunci.

Kontrol siapa yang dapat membuat dan menggunakan kunci API

Dua tindakan IAM mengontrol pembuatan dan penggunaan kunci API:

  • iam:CreateServiceSpecificCredential— Mengontrol pembuatan kunci jangka panjang. Gunakan tombol iam:ServiceSpecificCredentialAgeDays kondisi untuk membatasi kedaluwarsa (misalnya, maks 90 hari).

  • bedrock:CallWithBearerToken— Mengontrol penggunaan kunci API apa pun. Gunakan tombol bedrock:bearerTokenType kondisi dengan nilai SHORT_TERM atau LONG_TERM untuk menargetkan jenis kunci tertentu.

Contoh: Mencegah identitas menggunakan kunci API apa pun

Lampirkan kebijakan ini pada identitas:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "bedrock:CallWithBearerToken", "Resource": "*" } ] }
Contoh: Izinkan hanya kunci berumur pendek (maks 90 hari)

Lampirkan kebijakan ini pada identitas:

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

Untuk contoh kebijakan yang lebih rinci, lihatReferensi kunci API.