

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

# Kunci API
<a name="api-keys"></a>

Anda dapat dengan mudah melakukan panggilan ke Amazon Bedrock API dengan membuat kunci Amazon Bedrock API dan menggunakannya untuk mengautentikasi identitas Anda saat membuat permintaan ke Amazon Bedrock API.

**catatan**  
Untuk tujuan audit dan kepatuhan, semua panggilan API masuk AWS CloudTrail. Kunci Amazon Bedrock API diteruskan sebagai header otorisasi ke permintaan API dan tidak dicatat.  
Kunci API Amazon Bedrock terbatas pada tindakan Amazon Bedrock dan [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) [Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html). Anda tidak dapat menggunakannya dengan operasi API berikut:  
[InvokeModelWithBidirectionalStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithBidirectionalStream.html).
[Agen untuk Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) atau [Agen untuk operasi Amazon Bedrock Runtime API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html).
[Otomatisasi Data untuk Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Data_Automation_for_Amazon_Bedrock.html) atau [Runtime untuk operasi Amazon Bedrock Data Automation API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Runtime_for_Amazon_Bedrock_Data_Automation).

Amazon Bedrock memungkinkan Anda menghasilkan jenis kunci API Amazon Bedrock berikut:
+ **Jangka Pendek** - Buat kunci Amazon Bedrock API yang bertahan selama sesi Anda (dan tidak lebih dari 12 jam). Anda seharusnya sudah menyiapkan [prinsipal IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html#intro-structure-terms) dengan izin yang tepat untuk menggunakan Amazon Bedrock. Opsi ini lebih disukai daripada kunci jangka panjang untuk lingkungan produksi yang memerlukan perubahan kredensional secara teratur untuk keamanan yang lebih besar.

  Kunci jangka pendek memiliki properti berikut:
  + Berlaku untuk yang lebih pendek dari nilai-nilai berikut:
    + 12 jam
    + Durasi sesi yang dihasilkan oleh prinsipal IAM digunakan untuk menghasilkan kunci.
  + Mewarisi izin yang dilampirkan pada prinsipal yang digunakan untuk menghasilkan kunci.
  + Hanya dapat digunakan di AWS Wilayah tempat Anda membuatnya.
+ **Jangka Panjang** — Buat kunci Amazon Bedrock API dengan izin untuk membuat permintaan API dasar di Amazon Bedrock. Opsi satu klik yang mudah ini memungkinkan Anda dengan cepat mulai menjelajahi Amazon Bedrock API tanpa perlu memahami infrastruktur keamanan yang mendasarinya atau mengonfigurasi izin secara manual. AWS Identity and Access Management Jika Anda mencoba Amazon Bedrock untuk pertama kalinya, Anda dapat mencoba contoh di [Memulai kunci Amazon Bedrock API: Buat kunci 30 hari dan lakukan panggilan API pertama Anda](getting-started-api-keys.md) untuk tutorial mudah untuk membuat kunci jangka panjang dan mulai menggunakan Amazon Bedrock.
**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.

Pilih topik untuk mempelajari selengkapnya tentang kunci Amazon Bedrock API. Ada berbagai opsi untuk berbagai jenis kunci Amazon Bedrock dan cara untuk menyesuaikannya. Untuk tutorial mulai cepat tentang cara membuat kunci API Amazon Bedrock jangka panjang dan menggunakannya untuk tujuan eksplorasi, lihat. [Memulai kunci Amazon Bedrock API: Buat kunci 30 hari dan lakukan panggilan API pertama Anda](getting-started-api-keys.md)

**Topics**
+ [Cara kerja kunci Amazon Bedrock API](api-keys-how.md)
+ [Wilayah yang Didukung dan kit pengembangan AWS perangkat lunak (SDKs) untuk kunci Amazon Bedrock API](api-keys-supported.md)
+ [Buat kunci API Amazon Bedrock](api-keys-generate.md)
+ [Menggunakan kunci Amazon Bedrock API](api-keys-use.md)
+ [Ubah izin untuk kunci API Amazon Bedrock jangka panjang dan jangka pendek](api-keys-modify.md)
+ [Menangani kunci API Amazon Bedrock jangka panjang dan jangka pendek yang dikompromikan](api-keys-revoke.md)
+ [Mengontrol izin untuk membuat dan menggunakan kunci Amazon Bedrock API](api-keys-permissions.md)

# Cara kerja kunci Amazon Bedrock API
<a name="api-keys-how"></a>

Gambar berikut membandingkan proses default untuk mendapatkan kredensional dengan penggunaan kunci Amazon Bedrock API:

![\[Proses penyiapan API default dibandingkan dengan proses penyiapan API menggunakan kunci Amazon Bedrock API\]](http://docs.aws.amazon.com/id_id/bedrock/latest/userguide/images/setup/setup-api.png)


Aliran paling kiri dalam diagram menunjukkan proses default menciptakan identitas di salah satu AWS IAM Identity Center atau IAM. Dengan proses ini, Anda melampirkan kebijakan IAM ke identitas tersebut untuk memberikan izin untuk melakukan operasi API dan kemudian menghasilkan AWS kredensi umum untuk identitas tersebut. Anda kemudian dapat menggunakan kredensialnya untuk melakukan panggilan API. AWS

Node biru menunjukkan dua aliran lagi untuk mengautentikasi secara khusus ke Amazon Bedrock. Kedua alur melibatkan pembuatan kunci Amazon Bedrock API yang dapat digunakan untuk mengautentikasi menggunakan tindakan Amazon Bedrock. Anda dapat menghasilkan jenis kunci berikut:
+ **Kunci jangka pendek** — Opsi aman yang memungkinkan akses sementara untuk menggunakan Amazon Bedrock.

  Kunci jangka pendek memiliki properti berikut:
  + Berlaku untuk yang lebih pendek dari nilai-nilai berikut:
    + 12 jam
    + Durasi sesi yang dihasilkan oleh prinsipal IAM digunakan untuk menghasilkan kunci.
  + Mewarisi izin yang dilampirkan pada prinsipal yang digunakan untuk menghasilkan kunci.
  + Hanya dapat digunakan di AWS Wilayah tempat Anda membuatnya.
+ **Kunci jangka panjang** - Direkomendasikan hanya untuk eksplorasi Amazon Bedrock. Anda dapat mengatur waktu setelah kunci kedaluwarsa. Ketika Anda membuat kunci jangka panjang, itu secara mendasar menciptakan pengguna IAM yang cocok untuk Anda, melampirkan kebijakan IAM yang Anda pilih, dan mengaitkan kunci dengan pengguna. Setelah Anda membuat kunci, Anda dapat menggunakan layanan IAM untuk [mengubah izin bagi pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
**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.

# Wilayah yang Didukung dan kit pengembangan AWS perangkat lunak (SDKs) untuk kunci Amazon Bedrock API
<a name="api-keys-supported"></a>

Daftar berikut menunjukkan kunci Wilayah AWS yang mendukung API:
+ ap-northeast-1
+ ap-northeast-2
+ ap-northeast-3
+ ap-south-1
+ ap-south-2
+ ap-southeast-1
+ ap-southeast-2
+ ca-sentral-1
+ eu-central-1
+ eu-central-2
+ eu-north-1
+ eu-south-1
+ eu-south-2
+ eu-west-1
+ eu-west-2
+ eu-west-3
+ sa-east-1
+ us-east-1
+ us-gov-east-1
+ us-gov-west-1
+ us-west-2

**catatan**  
Kunci API Amazon Bedrock terbatas pada tindakan Amazon Bedrock dan [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) [Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html). Anda tidak dapat menggunakannya dengan operasi API berikut:  
[InvokeModelWithBidirectionalStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithBidirectionalStream.html).
[Agen untuk Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) atau [Agen untuk operasi Amazon Bedrock Runtime API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html).
[Otomatisasi Data untuk Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Data_Automation_for_Amazon_Bedrock.html) atau [Runtime untuk operasi Amazon Bedrock Data Automation API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Runtime_for_Amazon_Bedrock_Data_Automation).

Kunci Amazon Bedrock API didukung dengan yang berikut ini: AWS SDKs
+ Python
+ Javascript
+ Java

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

------

# Menggunakan kunci Amazon Bedrock API
<a name="api-keys-use"></a>

Anda dapat menggunakan kunci Amazon Bedrock API dengan cara berikut:
+ **Tetapkan sebagai variabel lingkungan** - Layanan Amazon Bedrock mengenali variabel lingkungan `AWS_BEARER_TOKEN_BEDROCK` Anda memiliki opsi berikut untuk menyetel kunci:
  + Buka terminal untuk mengaturnya:
    + **MacOS/Linux**

      ```
      export AWS_BEARER_TOKEN_BEDROCK=${api-key}
      ```
    + **Windows**

      ```
      setx AWS_BEARER_TOKEN_BEDROCK "${api-key}"
      ```
  + Tetapkan sebagai variabel lingkungan dalam kode Anda sebelum Anda membuat permintaan API. Misalnya, Anda dapat menyertakan baris berikut sebelum membuat permintaan:
    + **Python**

      ```
      import os                      
      os.environ['AWS_BEARER_TOKEN_BEDROCK'] = "${api-key}"
      ```
+ **Tentukan dalam permintaan** — Anda dapat menyertakan kunci Amazon Bedrock API di header otorisasi dengan cara berikut (ganti *\$1AWS\$1BEARER\$1TOKEN\$1BEDROCK* dengan nilai sebenarnya):
  + **Dalam permintaan HTTP langsung** - Sertakan yang berikut ini sebagai header otorisasi:

    ```
    Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK
    ```
  + **Sebagai parameter dalam SDK yang didukung** — Tentukan nilai dalam parameter saat menyiapkan klien. Misalnya, Anda dapat menentukannya di `api_key` bidang saat menyiapkan klien dengan [OpenAIPython](https://github.com/openai/openai-python?tab=readme-ov-file#usage) SDK.

**catatan**  
Kunci API Amazon Bedrock terbatas pada tindakan Amazon Bedrock dan [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) [Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html). Anda tidak dapat menggunakannya dengan operasi API berikut:  
[InvokeModelWithBidirectionalStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithBidirectionalStream.html).
[Agen untuk Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) atau [Agen untuk operasi Amazon Bedrock Runtime API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html).
[Otomatisasi Data untuk Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Data_Automation_for_Amazon_Bedrock.html) atau [Runtime untuk operasi Amazon Bedrock Data Automation API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Runtime_for_Amazon_Bedrock_Data_Automation).

Untuk melihat contoh penggunaan kunci API untuk mengirim permintaan [Converse guna](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) menghasilkan respons, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

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

Contoh berikut menunjukkan cara mengirim permintaan API dengan AWS SDK untuk Python (Boto3). Jika Anda belum menyetel kunci API sebagai variabel `AWS_BEARER_TOKEN_BEDROCK` lingkungan, tentukan sebagai pengganti *\$1\$1api-key\$1* dalam kode berikut:

```
import os
import boto3
                        
# If you already set the API key as an environment variable, you can comment this line out                        
os.environ['AWS_BEARER_TOKEN_BEDROCK'] = "${api-key}"

# Create an Amazon Bedrock client
client = boto3.client(
    service_name="bedrock-runtime",
    region_name="us-east-1" # If you've configured a default region, you can omit this line
)

# Define the model and message
model_id = "us.anthropic.claude-3-5-haiku-20241022-v1:0"
messages = [{"role": "user", "content": [{"text": "Hello"}]}]

response = client.converse(
    modelId=model_id,
    messages=messages,
)
```

------
#### [ HTTP Client (requests package in Python) ]

**Prasyarat:** Instal `requests` paket dengan membuka terminal dan menjalankan perintah berikut:

```
python3 -m pip install requests
```

Contoh berikut menunjukkan cara langsung mengirim permintaan API dengan klien HTTP. Tentukan *\$1\$1api-key\$1* di header.

```
import requests

url = "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse"

payload = {
    "messages": [
        {
            "role": "user",
            "content": [{"text": "Hello"}]
        }
    ]
}

headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer ${api-key}"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)
```

------
#### [ HTTP request using cURL ]

Contoh berikut menunjukkan cara mengirim permintaan API secara langsung, menggunakan cURL. Jika Anda tidak menyetel kunci API sebagai variabel AWS\$1BEARER\$1TOKEN\$1BEDROCK lingkungan, Anda harus mengganti `$AWS_BEARER_TOKEN_BEDROCK` dalam contoh dengan nilai literal kunci.

```
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \
  -d '{
    "messages": [
        {
            "role": "user",
            "content": [{"text": "Hello"}]
        }
    ]
  }'
```

------

# Ubah izin untuk kunci API Amazon Bedrock jangka panjang dan jangka pendek
<a name="api-keys-modify"></a>

Saat membuat kunci API Amazon Bedrock jangka panjang, Anda membuat pengguna IAM yang terkait dengan kunci tersebut. Untuk mengubah izin yang terkait dengan kunci, ubah izin untuk pengguna IAM melalui layanan IAM. Untuk informasi selengkapnya, lihat [Menambahkan dan menghapus izin identitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) di Panduan Pengguna IAM.

**catatan**  
Jika Anda membuat kunci jangka panjang di Konsol Manajemen AWS, [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess)terlampir padanya secara default. Jika Anda berencana untuk mengubah izin, hapus kebijakan ini terlebih dahulu sebelum menyetel izin khusus.

## Contoh memodifikasi izin untuk kunci API
<a name="api-keys-modify-example"></a>

Prosedur berikut menunjukkan bagaimana Anda dapat mengganti [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess)dengan yang lebih ketat:

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. Dari panel navigasi kiri, pilih **kunci API**.

1. Pilih tab **Kunci API jangka panjang**.

1. Pilih kunci API Anda dan pilih **Kelola di Konsol IAM**.

1. Pilih tab **Izin**, pilih **AmazonBedrockLimitedAccess**kebijakan, dan pilih **Hapus**.
**catatan**  
Pada titik ini, Anda telah menghapus semua izin dari APi kunci dan Anda tidak akan dapat melakukan apa pun dengannya.

1. Di bagian **Kebijakan izin, pilih Buat kebijakan** **sebaris** dari menu tarik-turun **Tambahkan izin**.

1. Di **editor Kebijakan**, pilih **JSON**. Kemudian tempelkan kebijakan berikut ke editor:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "bedrock:CallWithBearerToken"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "bedrock:InvokeModel*"
               ],
               "Resource": [
                   "arn:aws:bedrock:us-west-2:111122223333:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "bedrock:InvokeModel*"
               ],
               "Resource": [
                   "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
                   "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-haiku-20240307-v1:0"
               ],
               "Condition": {
                   "StringLike": {
                       "bedrock:InferenceProfileArn": "arn:aws:bedrock:us-west-2:111122223333:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0"
                   }
               }
           }
       ]
   }
   ```

------

1. Pilih **Berikutnya**, berikan **nama Kebijakan**, lalu pilih **Buat kebijakan**.

1. Dengan kunci API ini, pengguna sekarang hanya dapat menjalankan inferensi dengan profil Anthropic Claude 3 Haiku inferensi AS di US West (Oregon).

# Menangani kunci API Amazon Bedrock jangka panjang dan jangka pendek yang dikompromikan
<a name="api-keys-revoke"></a>

Jika kunci API Anda dikompromikan, Anda harus mencabut izin untuk menggunakannya. Ada berbagai metode yang dapat Anda gunakan untuk mencabut izin kunci Amazon Bedrock API:
+ Untuk kunci Amazon Bedrock API jangka panjang, Anda dapat menggunakan [UpdateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html), [ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html.html), atau [DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html.html)mencabut izin dengan cara berikut:
  + Atur status kunci menjadi tidak aktif. Anda dapat mengaktifkan kembali kunci nanti.
  + Setel ulang kuncinya. Tindakan ini menghasilkan kata sandi baru untuk kunci tersebut.
  + Hapus kunci secara permanen.
**catatan**  
Untuk melakukan tindakan ini melalui API, Anda harus mengautentikasi dengan AWS kredensi dan bukan dengan kunci Amazon Bedrock API.
+ Untuk kunci API Amazon Bedrock jangka panjang dan jangka pendek, Anda dapat melampirkan kebijakan IAM untuk mencabut izin.

**Topics**
+ [Ubah status kunci API Amazon Bedrock jangka panjang](#api-keys-change-status)
+ [Setel ulang kunci Amazon Bedrock API jangka panjang](#api-keys-reset)
+ [Hapus kunci API Amazon Bedrock jangka panjang](#api-keys-delete)
+ [Lampirkan kebijakan IAM untuk menghapus izin penggunaan kunci Amazon Bedrock API](#api-keys-iam-policies)

## Ubah status kunci API Amazon Bedrock jangka panjang
<a name="api-keys-change-status"></a>

Jika Anda perlu mencegah kunci digunakan sementara, nonaktifkan. Setelah Anda siap untuk digunakan lagi, aktifkan kembali.

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

------
#### [ Console ]

**Untuk menonaktifkan kunci**

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. Di bagian **Kunci API jangka panjang**, pilih kunci yang **Statusnya** **Tidak Aktif**.

1. Pilih **Tindakan**.

1. Pilih **Nonaktifkan**.

1. Untuk mengonfirmasi, pilih **Nonaktifkan kunci API**. **Status** kunci menjadi **tidak aktif**.

**Untuk mengaktifkan kembali kunci**

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. Di bagian **Kunci API jangka panjang**, pilih kunci yang **Statusnya** **Tidak Aktif**.

1. Pilih **Tindakan**.

1. Pilih **Aktifkan**.

1. Untuk mengonfirmasi, pilih **Aktifkan kunci API**. **Status** kunci menjadi **aktif**.

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

Untuk menonaktifkan kunci menggunakan API, kirim [UpdateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html)permintaan dengan [titik akhir IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html) dan tentukan sebagai. `Status` `Inactive` Anda dapat menggunakan cuplikan kode berikut untuk menonaktifkan kunci, mengganti *\$1\$1ServiceSpecificCredentialId\$1* dengan nilai yang dikembalikan saat Anda membuat kunci.

```
import boto3
                        
iam_client = boto3.client("iam")
                      
iam_client.update_service_specific_credential(
    service_specific_credential_id=${ServiceSpecificCredentialId},
    status="Inactive"
)
```

Untuk mengaktifkan kembali kunci menggunakan API, kirim [UpdateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html)permintaan dengan [titik akhir IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html) dan tentukan sebagai. `Status` `Active` Anda dapat menggunakan cuplikan kode berikut untuk mengaktifkan kembali kunci, mengganti *\$1\$1ServiceSpecificCredentialId\$1* dengan nilai yang dikembalikan saat Anda membuat kunci.

```
import boto3
                        
iam_client = boto3.client("iam")
                      
iam_client.update_service_specific_credential(
    service_specific_credential_id=${ServiceSpecificCredentialId},
    status="Active"
)
```

------

## Setel ulang kunci Amazon Bedrock API jangka panjang
<a name="api-keys-reset"></a>

Jika nilai kunci Anda telah dikompromikan atau Anda tidak lagi memilikinya, setel ulang. Kuncinya harus belum kedaluwarsa. Jika sudah kedaluwarsa, hapus kunci dan buat yang baru.

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

------
#### [ Console ]

**Untuk mengatur ulang kunci**

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. Di bagian **Kunci API jangka panjang**, pilih kunci.

1. Pilih **Tindakan**.

1. Pilih **tombol Reset**.

1. Pilih **Selanjutnya**.

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

Untuk mengatur ulang kunci menggunakan API, kirim [ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html.html)permintaan dengan titik [akhir IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html). Anda dapat menggunakan cuplikan kode berikut untuk mengatur ulang kunci, mengganti *\$1\$1ServiceSpecificCredentialId\$1* dengan nilai yang dikembalikan saat Anda membuat kunci.

```
import boto3
            
iam_client = boto3.client("iam")
          
iam_client.reset_service_specific_credential(
    service_specific_credential_id=${ServiceSpecificCredentialId}
)
```

------

## Hapus kunci API Amazon Bedrock jangka panjang
<a name="api-keys-delete"></a>

Jika Anda tidak lagi membutuhkan kunci atau sudah kedaluwarsa, hapus.

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

------
#### [ Console ]

**Untuk menghapus kunci**

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. Di bagian **Kunci API jangka panjang**, pilih kunci.

1. Pilih **Tindakan**.

1. Pilih **Hapus**.

1. Konfirmasi penghapusan.

**Kunci API ditautkan dengan pengguna IAM**  
Menghapus kunci API ini tidak menghapus pengguna IAM yang dibuat dengan kunci ini sebagai pemilik. Anda dapat menghapus pengguna IAM dari konsol IAM di langkah berikutnya.

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

Untuk menghapus kunci menggunakan API, kirim [DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html.html)permintaan dengan titik [akhir IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html). Anda dapat menggunakan cuplikan kode berikut untuk menghapus kunci, menggantinya *\$1\$1ServiceSpecificCredentialId\$1* dengan nilai yang dikembalikan saat Anda membuat kunci.

```
import boto3
            
iam_client = boto3.client("iam")
          
iam_client.delete_service_specific_credential(
    service_specific_credential_id=${ServiceSpecificCredentialId}
)
```

------

## Lampirkan kebijakan IAM untuk menghapus izin penggunaan kunci Amazon Bedrock API
<a name="api-keys-iam-policies"></a>

Bagian ini menyediakan beberapa kebijakan IAM yang dapat Anda gunakan untuk membatasi akses ke kunci Amazon Bedrock API.

### Tolak identitas kemampuan untuk melakukan panggilan dengan kunci Amazon Bedrock API
<a name="api-keys-iam-policies-deny-call-with-bearer-token"></a>

Tindakan yang memungkinkan identitas melakukan panggilan dengan kunci Amazon Bedrock API adalah`bedrock:CallWithBearerToken`. Untuk mencegah identitas melakukan panggilan dengan kunci Amazon Bedrock API, Anda dapat melampirkan kebijakan IAM pada identitas tergantung jenis kunci:
+ **Kunci jangka panjang** — Lampirkan kebijakan ke pengguna IAM yang terkait dengan kunci tersebut.
+ **Kunci jangka pendek** - Lampirkan kebijakan ke peran IAM yang digunakan untuk menghasilkan kunci.

Kebijakan IAM yang dapat Anda lampirkan pada identitas IAM adalah sebagai berikut:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "bedrock:CallWithBearerToken",
    "Resource": "*"
  }
}
```

------

### Membatalkan sesi peran IAM
<a name="api-keys-iam-policies-invalidate-session"></a>

Jika kunci jangka pendek dikompromikan, Anda dapat mencegah penggunaannya dengan membatalkan sesi peran yang digunakan untuk menghasilkan kunci. Untuk membatalkan sesi peran, lampirkan kebijakan berikut ke identitas IAM yang menghasilkan kunci. Ganti *2014-05-07T23:47:00Z* dengan waktu setelah itu Anda ingin sesi menjadi tidak valid.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
      "DateLessThan": {"aws:TokenIssueTime": "2014-05-07T23:47:00Z"}
    }
  }
}
```

------

# Mengontrol izin untuk membuat dan menggunakan kunci Amazon Bedrock API
<a name="api-keys-permissions"></a>

Pembuatan dan penggunaan kunci Amazon Bedrock API dikendalikan oleh tindakan dan kunci kondisi di layanan Amazon Bedrock dan IAM.

**Mengontrol pembuatan kunci API Amazon Bedrock**  
CreateServiceSpecificCredentialTindakan [iam:](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html#awsidentityandaccessmanagementiam-actions-as-permissions) mengontrol pembuatan kunci khusus layanan (seperti kunci API Amazon Bedrock jangka panjang). Anda dapat memberikan cakupan tindakan ini kepada pengguna IAM sebagai sumber daya untuk membatasi pengguna yang kuncinya dapat dibuat.

Anda dapat menggunakan tombol kondisi berikut untuk memaksakan kondisi pada izin untuk `iam:CreateServiceSpecificCredential` tindakan:
+ [iam: ServiceSpecificCredentialAgeDays](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_ServiceSpecificCredentialAgeDays) — Memungkinkan Anda menentukan, dalam kondisi, waktu kedaluwarsa kunci dalam beberapa hari. Misalnya, Anda dapat menggunakan kunci kondisi ini untuk hanya mengizinkan pembuatan kunci API yang kedaluwarsa dalam 90 hari.
+ [iam: ServiceSpecificCredentialServiceName](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_ServiceSpecificCredentialAgeDays) — Memungkinkan Anda menentukan, dalam kondisi, nama layanan. Misalnya, Anda dapat menggunakan kunci kondisi ini untuk hanya mengizinkan pembuatan kunci API untuk Amazon Bedrock dan bukan layanan lainnya.

**Mengontrol penggunaan kunci Amazon Bedrock API**  
[Batuan dasar: CallWithBearerToken](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions) tindakan mengontrol penggunaan kunci API Amazon Bedrock jangka pendek atau jangka panjang.

Anda dapat menggunakan kunci `bedrock:bearerTokenType` kondisi dengan [operator kondisi string](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String) untuk menentukan jenis token pembawa yang akan menerapkan izin`bedrock:CallWithBearerToken`. Anda dapat menentukan salah satu nilai berikut:
+ `SHORT_TERM`— Menentukan kunci API Amazon Bedrock jangka pendek dalam kondisi tersebut.
+ `LONG_TERM`— Menentukan kunci API Amazon Bedrock jangka panjang dalam kondisi tersebut.

Tabel berikut merangkum cara mencegah identitas menghasilkan atau menggunakan kunci Amazon Bedrock API:


****  

| Tujuan | Kunci jangka panjang | Kunci jangka pendek | 
| --- | --- | --- | 
| Cegah pembuatan kunci | Lampirkan kebijakan yang menyangkal iam:CreateServiceSpecificCredential tindakan ke identitas IAM. | N/A | 
| Mencegah penggunaan kunci | Lampirkan kebijakan yang menolak bedrock:CallWithBearerToken tindakan tersebut ke pengguna IAM yang terkait dengan kunci tersebut. | Lampirkan kebijakan yang menolak bedrock:CallWithBearerToken tindakan ke identitas IAM yang Anda tidak ingin dapat menggunakan kunci tersebut. | 

**Awas**  
Karena kunci Amazon Bedrock API jangka pendek menggunakan kredensi yang ada dari sesi, Anda dapat mencegah penggunaannya dengan menolak `bedrock:CallWithBearerToken` tindakan pada identitas yang menghasilkan kunci. Namun, Anda tidak dapat mencegah pembuatan kunci jangka pendek.

## Contoh kebijakan untuk mengontrol pembuatan dan penggunaan kunci API
<a name="api-keys-permissions-examples"></a>

Misalnya kebijakan IAM untuk mengontrol pembuatan dan penggunaan kunci API, pilih dari topik berikut:

**Topics**
+ [Mencegah identitas membuat kunci jangka panjang dan menggunakan kunci Amazon Bedrock API](#api-keys-permissions-examples-prevent-generation-and-use)
+ [Mencegah identitas menggunakan kunci API jangka pendek](#api-keys-permissions-examples-prevent-use-short-term)
+ [Mencegah identitas menggunakan kunci API jangka panjang](#api-keys-permissions-examples-prevent-use-long-term)
+ [Secara eksplisit mencegah identitas menggunakan kunci API jangka pendek](#api-keys-permissions-examples-deny-use-short-term-explicitly)
+ [Secara eksplisit mencegah identitas menggunakan kunci API jangka panjang](#api-keys-permissions-examples-deny-use-long-term-explicitly)
+ [Izinkan pembuatan kunci Amazon Bedrock hanya jika kedaluwarsa dalam 90 hari](#api-keys-permissions-examples-allow-bedrock-keys-expire-within-90-days)

### Mencegah identitas membuat kunci jangka panjang dan menggunakan kunci Amazon Bedrock API
<a name="api-keys-permissions-examples-prevent-generation-and-use"></a>

Untuk mencegah identitas IAM menghasilkan kunci API Amazon Bedrock jangka panjang dan menggunakan kunci Amazon Bedrock API, lampirkan kebijakan berikut ke identitas:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"DenyBedrockShortAndLongTermAPIKeys",
      "Effect": "Deny",
      "Action": [
        "iam:CreateServiceSpecificCredential",
        "bedrock:CallWithBearerToken"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

**Awas**  
Anda tidak dapat mencegah pembuatan kunci jangka pendek.
Kebijakan ini akan mencegah pembuatan kredensi untuk semua AWS layanan yang mendukung pembuatan kredensi khusus layanan. Untuk informasi selengkapnya, lihat [Kredensial khusus layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_service-specific-creds.html) untuk pengguna IAM.

### Mencegah identitas menggunakan kunci API jangka pendek
<a name="api-keys-permissions-examples-prevent-use-short-term"></a>

Untuk mencegah identitas IAM menggunakan kunci API Amazon Bedrock jangka pendek, lampirkan kebijakan berikut ke identitas:

### Mencegah identitas menggunakan kunci API jangka panjang
<a name="api-keys-permissions-examples-prevent-use-long-term"></a>

Untuk mencegah identitas IAM menggunakan kunci API Amazon Bedrock jangka panjang, lampirkan kebijakan berikut ke identitas:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "bedrock:CallWithBearerToken",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "bedrock:bearerTokenType": "LONG_TERM"
                }
            }
        }
    ]
}
```

------

### Secara eksplisit mencegah identitas menggunakan kunci API jangka pendek
<a name="api-keys-permissions-examples-deny-use-short-term-explicitly"></a>

Untuk secara eksplisit mencegah identitas IAM menggunakan kunci API Amazon Bedrock jangka pendek, tetapi mengizinkan penggunaan kunci API lainnya, lampirkan kebijakan berikut ke identitas:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "bedrock:CallWithBearerToken",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "bedrock:bearerTokenType": "SHORT_TERM"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "bedrock:CallWithBearerToken",
            "Resource": "*"
        }
    ]
}
```

------

### Secara eksplisit mencegah identitas menggunakan kunci API jangka panjang
<a name="api-keys-permissions-examples-deny-use-long-term-explicitly"></a>

Untuk secara eksplisit mencegah identitas IAM menggunakan kunci API Amazon Bedrock jangka panjang, tetapi mengizinkan penggunaan kunci API lainnya, lampirkan kebijakan berikut ke identitas:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "bedrock:CallWithBearerToken",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "bedrock:bearerTokenType": "LONG_TERM"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "bedrock:CallWithBearerToken",
            "Resource": "*"
        }
    ]
}
```

------

### Izinkan pembuatan kunci Amazon Bedrock hanya jika kedaluwarsa dalam 90 hari
<a name="api-keys-permissions-examples-allow-bedrock-keys-expire-within-90-days"></a>

Untuk mengizinkan identitas IAM membuat kunci API jangka panjang hanya jika itu untuk Amazon Bedrock dan jika waktu kedaluwarsa 90 hari atau kurang, lampirkan kebijakan berikut ke identitas:

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": "iam:CreateServiceSpecificCredential",
           "Resource": "arn:aws:iam::123456789012:user/username",
           "Condition": {
               "StringEquals": {
                   "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com"
               },
               "NumericLessThanEquals": {
                   "iam:ServiceSpecificCredentialAgeDays": "90"
               }
           }
       }
   ]
}
```

------