

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

# Buat kunci API Amazon Bedrock
<a name="api-keys-generate"></a>

Anda dapat membuat kunci Amazon Bedrock API menggunakan API Konsol Manajemen AWS atau AWS API. Kami menyarankan Anda menggunakan kunci Konsol Manajemen AWS Amazon Bedrock API dengan mudah dengan beberapa langkah.

**Awas**  
Kami sangat menyarankan untuk membatasi penggunaan kunci Amazon Bedrock API untuk eksplorasi Amazon Bedrock. Ketika Anda siap untuk memasukkan Amazon Bedrock ke dalam aplikasi dengan persyaratan keamanan yang lebih besar, Anda harus beralih ke kredensi jangka pendek. Untuk informasi selengkapnya, lihat [Alternatif untuk kunci akses jangka panjang](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys) di Panduan Pengguna IAM.

**Topics**
+ [Buat kunci Amazon Bedrock API menggunakan konsol](#api-keys-generate-console)
+ [Buat kunci API Amazon Bedrock jangka panjang menggunakan API](#api-keys-generate-api-long-term)
+ [Buat kunci API Amazon Bedrock jangka pendek menggunakan pustaka klien](#api-keys-generate-short-term)
+ [Siapkan penyegaran otomatis kunci API Amazon Bedrock jangka pendek](#api-keys-refresh-short-term)

## Buat kunci Amazon Bedrock API menggunakan konsol
<a name="api-keys-generate-console"></a>

Untuk membuat kunci Amazon Bedrock API menggunakan konsol, lakukan hal berikut:

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](https://console.aws.amazon.com/bedrock).

1. Di panel navigasi kiri, pilih **kunci API**.

1. Hasilkan salah satu dari jenis kunci berikut:
   + **Kunci API jangka pendek** — Di tab **Kunci API jangka pendek**, pilih **Hasilkan kunci API jangka pendek**. Kunci kedaluwarsa saat sesi konsol Anda kedaluwarsa (dan tidak lebih dari 12 jam) dan memungkinkan Anda melakukan panggilan ke tempat Wilayah AWS Anda membuatnya. Anda dapat memodifikasi Wilayah secara langsung di kunci yang dihasilkan.
   + **Kunci API jangka panjang** — Di tab **Kunci API jangka panjang**, pilih **Hasilkan kunci API jangka panjang**.

     1. Di bagian **kedaluwarsa kunci API**, pilih waktu setelah kunci akan kedaluwarsa.

     1. (Opsional) Secara default, kebijakan [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) AWS-managed, yang memberikan akses ke operasi inti Amazon Bedrock API, dilampirkan ke pengguna IAM yang terkait dengan kunci. Untuk memilih kebijakan lain yang akan dilampirkan ke pengguna, **perluas bagian Izin lanjutan** dan pilih kebijakan yang ingin ditambahkan.

     1. Pilih **Hasilkan**.
**Awas**  
Kami sangat menyarankan untuk membatasi penggunaan kunci Amazon Bedrock API untuk eksplorasi Amazon Bedrock. Ketika Anda siap untuk memasukkan Amazon Bedrock ke dalam aplikasi dengan persyaratan keamanan yang lebih besar, Anda harus beralih ke kredensi jangka pendek. Untuk informasi selengkapnya, lihat [Alternatif untuk kunci akses jangka panjang](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys) di Panduan Pengguna IAM.



## Buat kunci API Amazon Bedrock jangka panjang menggunakan API
<a name="api-keys-generate-api-long-term"></a>

Langkah-langkah umum untuk membuat kunci Amazon Bedrock API jangka panjang di API adalah sebagai berikut:

1. Buat pengguna IAM dengan mengirimkan [CreateUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html)permintaan dengan titik akhir [IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html).

1. Lampirkan [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess)ke pengguna IAM dengan mengirimkan [AttachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html)permintaan dengan titik akhir [IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html). Anda dapat mengulangi langkah ini untuk melampirkan kebijakan terkelola atau kustom lainnya yang diperlukan kepada pengguna.
**catatan**  
Sebagai praktik keamanan terbaik, kami sangat menyarankan Anda melampirkan kebijakan IAM ke pengguna IAM untuk membatasi penggunaan kunci Amazon Bedrock API. Untuk contoh kebijakan pembatas waktu dan pembatasan alamat IP yang dapat menggunakan kunci, lihat [Mengontrol penggunaan kunci akses dengan melampirkan kebijakan inline ke pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-keys_inline-policy.html) IAM.

1. Buat kunci API Amazon Bedrock jangka panjang dengan mengirimkan [CreateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html.html)permintaan dengan [titik akhir IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html) dan menentukan `bedrock.amazonaws.com` sebagai. `ServiceName`
   + Yang `ServiceApiKeyValue` dikembalikan dalam respons adalah kunci API Amazon Bedrock jangka panjang Anda.
   + Yang `ServiceSpecificCredentialId` dikembalikan dalam respons dapat digunakan untuk melakukan operasi API yang terkait dengan kunci.

Untuk mempelajari cara membuat kunci Amazon Bedrock API jangka panjang, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ CLI ]

Untuk membuat kunci API Amazon Bedrock jangka panjang, Anda menggunakan operasi AWS Identity and Access Management API. Pertama, pastikan bahwa Anda telah memenuhi prasyarat:

**Prasyarat**  
Pastikan bahwa pengaturan Anda memungkinkan AWS CLI untuk secara otomatis mengenali AWS kredensil Anda. Untuk mempelajari selengkapnya, lihat [Mengonfigurasi setelan untuk. AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

Buka terminal dan jalankan perintah berikut:

1. Buat pengguna IAM. Anda dapat mengganti nama dengan salah satu pilihan Anda:

   ```
   aws iam create-user --user-name bedrock-api-user
   ```

1. Lampirkan [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess)ke pengguna. Anda dapat mengulangi langkah ini dengan kebijakan AWS-managed atau custom lainnya yang ingin Anda tambahkan ke kunci API: ARNs 

   ```
   aws iam attach-user-policy --user-name bedrock-api-user --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess
   ```

1. Buat kunci Amazon Bedrock API jangka panjang, ganti *\$1\$1NUMBER-OF-DAYS\$1* dengan jumlah hari yang Anda inginkan kuncinya bertahan:

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

------
#### [ Python ]

Untuk membuat kunci API Amazon Bedrock jangka panjang, Anda menggunakan operasi AWS Identity and Access Management API. Pertama, pastikan bahwa Anda telah memenuhi prasyarat:

**Prasyarat**  
Pastikan bahwa pengaturan Anda memungkinkan Python untuk secara otomatis mengenali kredensil Anda AWS . Untuk mempelajari selengkapnya, lihat [Mengonfigurasi setelan untuk. AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

Jalankan skrip berikut untuk membuat pengguna IAM, melampirkan izin untuk melakukan tindakan Amazon Bedrock, dan buat kunci Amazon Bedrock API jangka panjang untuk diasosiasikan dengan pengguna:

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

------

## Buat kunci API Amazon Bedrock jangka pendek menggunakan pustaka klien
<a name="api-keys-generate-short-term"></a>

Kunci jangka pendek memiliki properti berikut:
+ Berlaku untuk yang lebih pendek dari nilai-nilai berikut:
  + 12 jam
  + Durasi sesi yang dihasilkan oleh prinsipal IAM yang digunakan untuk menghasilkan kunci.
+ Mewarisi izin yang dilampirkan pada prinsipal yang digunakan untuk menghasilkan kunci.
+ Hanya dapat digunakan di AWS Wilayah tempat Anda membuatnya.

Untuk aplikasi yang berjalan lama, pustaka [aws-bedrock-token-generator](https://github.com/aws/aws-bedrock-token-generator-js/blob/main/README.md)klien dapat membuat kunci API jangka pendek Amazon Bedrock baru sesuai kebutuhan saat kredensil di-refresh. Untuk informasi selengkapnya, lihat [Siapkan penyegaran otomatis kunci API Amazon Bedrock jangka pendek](#api-keys-refresh-short-term).

**Prasyarat**
+ Pastikan bahwa prinsip IAM yang Anda gunakan untuk membuat kunci diatur dengan izin yang tepat untuk menggunakan Amazon Bedrock. Untuk eksperimen, Anda dapat melampirkan [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess)kebijakan AWS-managed ke prinsipal. Anda dapat merujuk ke [praktik terbaik Keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) untuk melindungi kredensil Anda.
+ Pastikan bahwa pengaturan Anda memungkinkan Python untuk secara otomatis mengenali kredensil Anda AWS . Metode default dimana kredensil diambil mengikuti hierarki yang ditentukan. Anda dapat melihat hierarki untuk SDK atau alat tertentu di [AWS SDKs dan penyedia kredensi standar Tools](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html).
+ Instal generator token Amazon Bedrock. Pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ Python ]

Buka terminal dan jalankan perintah berikut:

```
pip install aws-bedrock-token-generator
```

------
#### [ Javascript ]

Buka terminal dan jalankan perintah berikut:

```
npm install @aws/bedrock-token-generator
```

------
#### [ Java ]

Jika Anda menggunakan Maven, tambahkan dependensi berikut ke: `pom.xml`

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

Jika Anda menggunakan Gradle, tambahkan yang berikut ini ke`build.gradle`:

```
implementation 'software.amazon.bedrock:aws-bedrock-token-generator:1.1.0'
```

------

**Contoh**  
Untuk melihat contoh penggunaan generator token untuk menghasilkan kunci API Amazon Bedrock jangka pendek dengan kredensi default Anda dalam berbagai bahasa, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ 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();
```

------

Untuk melihat lebih banyak contoh kasus penggunaan yang berbeda saat membuat token, lihat tautan berikut:
+ [Python](https://github.com/aws/aws-bedrock-token-generator-python/blob/main/README.md)
+ [Javascript](https://github.com/aws/aws-bedrock-token-generator-js/blob/main/README.md)
+ [Java](https://github.com/aws/aws-bedrock-token-generator-java/blob/main/README.md)

## Siapkan penyegaran otomatis kunci API Amazon Bedrock jangka pendek
<a name="api-keys-refresh-short-term"></a>

Anda dapat membuat skrip dengan bantuan `aws-bedrock-token-generator` paket untuk membuat ulang kunci jangka pendek baru secara terprogram setiap kali kunci Anda saat ini telah kedaluwarsa. Pertama, pastikan bahwa Anda telah memenuhi prasyarat di. [Buat kunci API Amazon Bedrock jangka pendek menggunakan pustaka klien](#api-keys-generate-short-term) Untuk melihat contoh skrip yang mengambil token dan membuat permintaan Converse, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ 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-sonnet-4-6/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-sonnet-4-6/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-sonnet-4-6/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());
    }
}
```

------