

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

Amazon Bedrock API キーを生成し、Amazon Bedrock API へのリクエスト時にそのキーを使用して ID を認証することで、Amazon Bedrock API を簡単に呼び出すことができます。

**注記**  
監査およびコンプライアンスの目的で、すべての API コールがログインされます AWS CloudTrail。Amazon Bedrock API キーは、認可ヘッダーとして API リクエストに渡され、ログには記録されません。  
Amazon Bedrock API キーは、[Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) のアクションと [Amazon Bedrock ランタイム](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html)アクションに限定されています。以下の API オペレーションでは使用できません。  
[InvokeModelWithBidirectionalStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithBidirectionalStream.html)
[Agents for Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) API オペレーションまたは [Agents for Amazon Bedrock Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) API オペレーション
[Data Automation for Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Data_Automation_for_Amazon_Bedrock.html) API オペレーションまたは [Runtime for Amazon Bedrock Data Automation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Runtime_for_Amazon_Bedrock_Data_Automation) API オペレーション

Amazon Bedrock では、次の種類の Amazon Bedrock API キーを生成できます。
+ **短期** – セッションと同じ期間 (12時間以内) 有効な Amazon Bedrock API キーを作成します。Amazon Bedrock を使用するための適切なアクセス許可を持つ [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html#intro-structure-terms)が既に設定されている必要があります。セキュリティを強化するために認証情報を定期的に変更する必要がある本番環境の長期キーよりも、このオプションをお勧めします。

  短期キーには次のプロパティがあります。
  + 以下の値のうち短い方の期間有効:
    + 12 時間ごと
    + キーの生成に使用される IAM プリンシパルによって生成されたセッションの期間。
  + キーの生成に使用されるプリンシパルにアタッチされたアクセス許可を継承します。
  + 生成元の AWS リージョンでのみ使用できます。
+ **長期** – Amazon Bedrock で基本的な API リクエストを実行するアクセス許可を持つ Amazon Bedrock API キーを作成します。この簡単なワンクリックオプションを使用すると、基盤となるセキュリティインフラストラクチャを理解したり、 AWS Identity and Access Management アクセス許可を手動で設定したりすることなく、Amazon Bedrock API の探索をすばやく開始できます。Amazon Bedrock を初めて試す場合は、「[Amazon Bedrock API キーの使用を開始する: 30 日間のキーを生成し、最初の API コールを行う](getting-started-api-keys.md)」の例を使って、長期キーを作成し、Amazon Bedrock の使用を開始するための簡単なチュートリアルを試すことができます。
**警告**  
Amazon Bedrock を試用する際は、Amazon Bedrock API キーの使用を制限することを強くお勧めします。セキュリティ要件が高いアプリケーションに Amazon Bedrock を組み込む準備ができたら、短期の認証情報に切り替える必要があります。詳細については、「IAM ユーザーガイド」の「[長期的なアクセスキーに対する代替方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys)」を参照してください。

Amazon Bedrock API キーの詳細については、各トピックを選択してください。Amazon Bedrock キーには、さまざまなタイプがあり、それらをカスタマイズするさまざまな方法が提供されています。長期の Amazon Bedrock API キーを生成して、調査目的に使用する方法のクイックスタートチュートリアルについては、「[Amazon Bedrock API キーの使用を開始する: 30 日間のキーを生成し、最初の API コールを行う](getting-started-api-keys.md)」を参照してください。

**Topics**
+ [Amazon Bedrock API キーの仕組み](api-keys-how.md)
+ [Amazon Bedrock API キーでサポートされているリージョンと AWS ソフトウェア開発キット (SDKs)](api-keys-supported.md)
+ [Amazon Bedrock API キーを生成する](api-keys-generate.md)
+ [Amazon Bedrock API キーを使用する](api-keys-use.md)
+ [長期および短期の Amazon Bedrock API キーのアクセス許可を変更する](api-keys-modify.md)
+ [侵害された長期および短期の Amazon Bedrock API キーを処理する](api-keys-revoke.md)
+ [Amazon Bedrock API キーを生成して使用するためのアクセス許可を制御する](api-keys-permissions.md)

# Amazon Bedrock API キーの仕組み
<a name="api-keys-how"></a>

次の図では、認証情報を取得するためのデフォルトのプロセスと Amazon Bedrock API キーの使用を比較しています。

![\[デフォルトの API 設定プロセスと Amazon Bedrock API キーを使用した API セットアップ プロセスの比較\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/setup/setup-api.png)


図の左端のフローは、AWS IAM アイデンティティセンター つまり IAM でアイデンティティを作成するデフォルトのプロセスを説明しています。このプロセスでは、IAM ポリシーをアイデンティティにアタッチして API オペレーションを実行するアクセス許可を付与し、そのアイデンティティの一般的な AWS 認証情報を生成します。これにより、この認証情報を使用して AWS で API コールを実行できます。

青色のノードは、Amazon Bedrock に対して固有の認証を行うための 2 つのフローを示しています。どちらのフローでも、Amazon Bedrock アクションを使用して認証するための Amazon Bedrock API キーの作成が作成されます。生成できるタイプのキーは、以下のとおりです。
+ **短期キー** – Amazon Bedrock への一時的なアクセスを許可する安全なオプションです。

  短期キーには次のプロパティがあります。
  + 以下の値のうち短い方の期間有効:
    + 12 時間
    + キーの生成に使用される IAM プリンシパルによって生成されたセッションの期間。
  + キーの生成に使用されるプリンシパルにアタッチされたアクセス許可を継承します。
  + 生成元の AWS リージョンでのみ使用できます。
+ **長期キー** – Amazon Bedrock 調べる目的でのみお勧めします。キーの有効期限を設定できます。長期キーを生成すると、基盤となる IAM ユーザーが作成され、選択した IAM ポリシーがアタッチされて、キーがユーザーに関連付けられます。キーの生成後、IAM サービスを使用して [IAM ユーザーのアクセス許可を変更](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)できます。
**警告**  
Amazon Bedrock を試用する際は、Amazon Bedrock API キーの使用を制限することを強くお勧めします。セキュリティ要件が高いアプリケーションに Amazon Bedrock を組み込む準備ができたら、短期の認証情報に切り替える必要があります。詳細については、「IAM ユーザーガイド」の「[長期的なアクセスキーに対する代替方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys)」を参照してください。

# Amazon Bedrock API キーでサポートされているリージョンと AWS ソフトウェア開発キット (SDKs)
<a name="api-keys-supported"></a>

次のリストは、API キー AWS リージョン をサポートする を示しています。
+ ap-northeast-1
+ ap-northeast-2
+ ap-northeast-3
+ ap-south-1
+ ap-south-2
+ ap-southeast-1
+ ap-southeast-2
+ ca-central-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

**注記**  
Amazon Bedrock API キーは、[Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) のアクションと [Amazon Bedrock ランタイム](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html)アクションに限定されています。以下の API オペレーションでは使用できません。  
[InvokeModelWithBidirectionalStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithBidirectionalStream.html)
[Agents for Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) API オペレーションまたは [Agents for Amazon Bedrock Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) API オペレーション
[Data Automation for Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Data_Automation_for_Amazon_Bedrock.html) API オペレーションまたは [Runtime for Amazon Bedrock Data Automation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Runtime_for_Amazon_Bedrock_Data_Automation) API オペレーション

Amazon Bedrock API キーは、次の AWS SDKs。
+ Python
+ Javascript
+ Java

# Amazon Bedrock API キーを生成する
<a name="api-keys-generate"></a>

Amazon Bedrock API キーは、AWS マネジメントコンソール または AWS API を使用して生成できます。AWS マネジメントコンソール を使用して、数ステップで Amazon Bedrock API キーを簡単に生成することをお勧めします。

**警告**  
Amazon Bedrock を試用する際は、Amazon Bedrock API キーの使用を制限することを強くお勧めします。セキュリティ要件が高いアプリケーションに Amazon Bedrock を組み込む準備ができたら、短期の認証情報に切り替える必要があります。詳細については、「IAM ユーザーガイド」の「[長期的なアクセスキーに対する代替方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys)」を参照してください。

**Topics**
+ [コンソールを使用して Amazon Bedrock API キーを生成する](#api-keys-generate-console)
+ [API を使用して長期 Amazon Bedrock API キーを生成する](#api-keys-generate-api-long-term)
+ [クライアントライブラリを使用して短期 Amazon Bedrock API キーを生成する](#api-keys-generate-short-term)
+ [短期 Amazon Bedrock API キーの自動更新を設定する](#api-keys-refresh-short-term)

## コンソールを使用して Amazon Bedrock API キーを生成する
<a name="api-keys-generate-console"></a>

コンソールを使用して Amazon Bedrock API キーを生成するには、以下を実行します。

1. Amazon Bedrock コンソールを使用するためのアクセス許可を持つ IAM ID を使用して、AWS マネジメントコンソールにサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで、**[API キー]** を選択します。

1. 次のいずれかのタイプのキーを生成します。
   + **短期 API キー** – **[短期 API キー]** タブで、**[短期 API キーを生成]** を選択します。キーは、コンソールセッションが期限切れになると (12 時間以内) 期限切れになるため、キーの生成元の AWS リージョン を呼び出します。リージョンは、生成されたキーで直接変更できます。
   + **長期 API キー** – **[長期 API キー]** タブで、**[長期 API キーを生成]** を選択します。

     1. **[API キーの有効期限]** セクションで、キーが期限切れになるまでの時間を選択します。

     1. (オプション) デフォルトでは、コア Amazon Bedrock API オペレーションへのアクセスを許可する [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) AWS マネージドポリシーが、キーに関連付けられた IAM ユーザーにアタッチされます。ユーザーにアタッチするポリシーをさらに選択するには、**[高度なアクセス許可]** セクションを展開し、追加するポリシーを選択します。

     1. **[Generate]** (生成) を選択します。
**警告**  
Amazon Bedrock を試用する際は、Amazon Bedrock API キーの使用を制限することを強くお勧めします。セキュリティ要件が高いアプリケーションに Amazon Bedrock を組み込む準備ができたら、短期の認証情報に切り替える必要があります。詳細については、「IAM ユーザーガイド」の「[長期的なアクセスキーに対する代替方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys)」を参照してください。



## API を使用して長期 Amazon Bedrock API キーを生成する
<a name="api-keys-generate-api-long-term"></a>

API で長期 Amazon Bedrock API キーを作成する一般的な手順は、以下のとおりです。

1. [IAM エンドポイント](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)で [CreateUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html) リクエストを送信して、IAM ユーザーを作成します。

1. [IAM エンドポイント](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)で [AttachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html) リクエストを送信して、[AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) を IAM ユーザーにアタッチします。このステップを繰り返して、必要に応じて他の管理ポリシーまたはカスタムポリシーをユーザーにアタッチできます。
**注記**  
セキュリティのベストプラクティスとして、IAM ポリシーを IAM ユーザーにアタッチして、Amazon Bedrock API キーの使用を制限することを強くお勧めします。時間制限ポリシーの例とキーを使用できる IP アドレスの制限については、「[インラインポリシーを IAM ユーザーにアタッチしてアクセスキーの使用を制御する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-keys_inline-policy.html)」を参照してください。

1. [IAM エンドポイント](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)で [CreateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html.html) リクエストを送信し、`ServiceName` として `bedrock.amazonaws.com` を 指定して、長期 Amazon Bedrock API キーを生成します。
   + レスポンスで返される `ServiceApiKeyValue` が、長期 Amazon Bedrock API キーです。
   + レスポンスで返された `ServiceSpecificCredentialId` を使用して、キーに関連する API オペレーションを実行できます。

長期 Amazon Bedrock API キーを生成する方法については、優先する方法のタブを選択し、手順に従います。

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

長期 Amazon Bedrock API キーを作成するには、AWS Identity and Access Management API オペレーションを使用します。まず、前提条件を満たしていることを確認します。

**前提条件**  
セットアップにより、AWS CLI が AWS 認証情報を自動的に認識できることを確認します。詳細については、「[AWS CLI の設定の構成](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)」を参照してください。

ターミナルを開き、次のコマンドを実行します。

1. IAM ユーザーを作成します。名前を任意の名前に置き換えることができます。

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

1. [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) をユーザーにアタッチします。このステップは、API キーに追加する他の AWS 管理ポリシーまたはカスタムポリシーの ARN で繰り返すことができます。

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

1. 長期 Amazon Bedrock API キーを作成し、*\$1\$1NUMBER-OF-DAYS\$1* をキーの存続日数に置き換えます。

   ```
   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 の設定の構成](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)」を参照してください。

次のスクリプトを実行して、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 キーを生成する
<a name="api-keys-generate-short-term"></a>

短期キーには次のプロパティがあります。
+ 以下の値のうち短い方の期間有効:
  + 12 時間ごと
  + キーの生成に使用される IAM プリンシパルによって生成されたセッションの期間。
+ キーの生成に使用されるプリンシパルにアタッチされたアクセス許可を継承します。
+ 生成元の AWS リージョンでのみ使用できます。

長時間実行されるアプリケーションの場合、[aws-bedrock-token-generator](https://github.com/aws/aws-bedrock-token-generator-js/blob/main/README.md) クライアントライブラリは、認証情報の更新時に必要に応じて新しい短期 Amazon Bedrock API キーを作成できます。詳細については、「[短期 Amazon Bedrock API キーの自動更新を設定する](#api-keys-refresh-short-term)」を参照してください。

**前提条件**
+ キーの生成に使用する IAM プリンシパルが、Amazon Bedrock を使用するための適切なアクセス許可で設定されていることを確認します。実験のために、AWS 管理の [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) ポリシーをプリンシパルにアタッチできます。認証情報を保護するための「[IAM のセキュリティベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。
+ セットアップにより、Python が AWS 認証情報を自動的に認識できることを確認します。認証情報を取得するデフォルトの方法は、定義された階層に従います。特定の SDK またはツールの階層は、「[AWS SDK およびツールの標準化された認証情報プロバイダー](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)」で確認できます。
+ 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();
```

------

トークンの生成時のさまざまなユースケースのその他の例については、次のリンクを参照してください。
+ [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)

## 短期 Amazon Bedrock API キーの自動更新を設定する
<a name="api-keys-refresh-short-term"></a>

`aws-bedrock-token-generator` パッケージを活用してスクリプトを作成して、現在の短期キーの有効期限が切れるたびにプログラムで新しい短期キーを再生成できます。まず、「[クライアントライブラリを使用して短期 Amazon Bedrock API キーを生成する](#api-keys-generate-short-term)」の前提条件を満たしていることを確認します。トークンを取得して 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());
    }
}
```

------

# Amazon Bedrock API キーを使用する
<a name="api-keys-use"></a>

Amazon Bedrock API キーは、次の方法で使用できます。
+ **環境変数として設定する** – Amazon Bedrock サービスは環境変数 `AWS_BEARER_TOKEN_BEDROCK` を認識します。キーを設定するには、次のオプションがあります。
  + ターミナルを開いて、以下のとおり設定します。
    + **MacOS または Linux**

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

      ```
      setx AWS_BEARER_TOKEN_BEDROCK "${api-key}"
      ```
  + API リクエストを行う前に、キーを環境変数として設定します。例えば、リクエストを実行する前に、次の行を含めることができます。
    + **Python**

      ```
      import os                      
      os.environ['AWS_BEARER_TOKEN_BEDROCK'] = "${api-key}"
      ```
+ **リクエストで指定する** – 次の方法で Amazon Bedrock API キーを認可ヘッダーに含めることができます (*\$1AWS\$1BEARER\$1TOKEN\$1BEDROCK* は、実際の値に置き換えます)。
  + **直接 HTTP リクエスト** – 認可ヘッダーとして以下を含めます。

    ```
    Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK
    ```
  + **サポートされている SDK のパラメータとして** – クライアントを設定する際に、パラメータの値を指定します。例えば、[OpenAI Python SDK](https://github.com/openai/openai-python?tab=readme-ov-file#usage) でクライアントを設定する際に、`api_key` フィールドでキーを指定できます。

**注記**  
Amazon Bedrock API キーは、[Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) のアクションと [Amazon Bedrock ランタイム](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html)アクションに限定されています。以下の API オペレーションでは使用できません。  
[InvokeModelWithBidirectionalStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithBidirectionalStream.html)
[Agents for Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) API オペレーションまたは [Agents for Amazon Bedrock Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) API オペレーション
[Data Automation for Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Data_Automation_for_Amazon_Bedrock.html) API オペレーションまたは [Runtime for Amazon Bedrock Data Automation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Runtime_for_Amazon_Bedrock_Data_Automation) API オペレーション

API キーを使用し、[Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) リクエストを送信してレスポンスを生成する例を確認するには、使用する方法に対応するタブを選択して、手順に従ってください。

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

次の例は、AWS SDK for Python (Boto3) を使用して API リクエストを送信する方法を説明しています。API キーを `AWS_BEARER_TOKEN_BEDROCK` 環境変数として既に設定していない場合は、次のコードの *\$1\$1api-key\$1* の代わりに指定します。

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

**前提条件:** ターミナルを開き、以下のコマンドを実行して、`requests` パッケージをインストールします。

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

次の例は、HTTP クライアントを使用して API リクエストを直接送信する方法を説明しています。ヘッダーで *\$1\$1api-key\$1* を指定します。

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

次の例は、cURL を使用して API リクエストを直接送信する方法を説明しています。API キーを AWS\$1BEARER\$1TOKEN\$1BEDROCK 環境変数として設定しなかった場合は、例の `$AWS_BEARER_TOKEN_BEDROCK` をキーのリテラル値に置き換える必要があります。

```
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"}]
        }
    ]
  }'
```

------

# 長期および短期の Amazon Bedrock API キーのアクセス許可を変更する
<a name="api-keys-modify"></a>

長期の Amazon Bedrock API キーを生成する際は、キーに関連付けられた IAM ユーザーを作成します。キーに関連付けられたアクセス許可を変更するには、IAM サービスを介して IAM ユーザーのアクセス許可を変更します。詳細については、「IAM ユーザーガイド」の「[IAM ID のアクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

**注記**  
で長期キーを生成した場合 AWS マネジメントコンソール、[AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) はデフォルトでアタッチされます。アクセス許可を変更する場合は、カスタムアクセス許可を設定する前に、まずこのポリシーを削除します。

## API キーのアクセス許可を変更する例
<a name="api-keys-modify-example"></a>

次の手順は、[AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) をより制限の厳しいアクセス許可に置き換える方法を説明しています。

1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソール を使用して にサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで、**[API キー]** を選択します。

1. **[長期 API キー]** タブを選択します。

1. API キーを選択し、**[IAM コンソールで管理]** をクリックします。

1. **[アクセス許可]** タブを選択し、**[AmazonBedrockLimitedAccess]** ポリシーをクリックしてから、**[削除]** をクリックします。
**注記**  
この時点で、API キーからすべてのアクセス許可の削除が完了し、このキーでは何もできなくなります。

1. **[アクセス許可ポリシー]** ペインで、**[許可の追加]**、**[インラインポリシーを作成]** の順に選択します。

1. **[ポリシーエディタ]** で、**[JSON]** を選択します。以下のポリシーをエディタに貼り付けます。

------
#### [ 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. **[次へ]** をクリックし、**[ポリシー名]** を入力して、**[ポリシーを作成]** をクリックします。

1. これでユーザーは、この API キーを使用して米国西部 (オレゴン) の米国推論プロファイルでのみ Anthropic Claude 3 Haiku 推論を実行できるようになります。

# 侵害された長期および短期の Amazon Bedrock API キーを処理する
<a name="api-keys-revoke"></a>

API キーが侵害された場合は、そのキーを使用するためのアクセス許可を取り消す必要があります。Amazon Bedrock API キーのアクセス許可を取り消すには、さまざまな方法があります。
+ 長期 Amazon Bedrock API キーの場合、[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)、または [DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html.html) を使用して、次の方法でアクセス許可を取り消すことができます。
  + キーのステータスを非アクティブに設定します。後で再アクティブ化できます。
  + キーをリセットします。このアクションで、キーの新しいパスワードが生成されます。
  + キーを完全に削除します。
**注記**  
API を使用してこれらのアクションを実行するには、Amazon Bedrock API キーではなく AWS 認証情報で認証する必要があります。
+ 長期および短期の Amazon Bedrock API キーの両方について、IAM ポリシーをアタッチしてアクセス許可を取り消すことができます。

**Topics**
+ [長期 Amazon Bedrock API キーのステータスを変更する](#api-keys-change-status)
+ [長期 Amazon Bedrock API キーをリセットする](#api-keys-reset)
+ [長期 Amazon Bedrock API キーを削除する](#api-keys-delete)
+ [Amazon Bedrock API キーを使用するためのアクセス許可を削除する IAM ポリシーをアタッチする](#api-keys-iam-policies)

## 長期 Amazon Bedrock API キーのステータスを変更する
<a name="api-keys-change-status"></a>

キーを一時的に使用できないようにする必要がある場合は、キーを非アクティブ化します。再度使用する準備ができたら、再アクティブ化します。

任意の方法のタブを選択し、その手順に従います。

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

**キーを非アクティブ化する方法**

1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソール を使用して にサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで、**[API キー]** を選択します。

1. **[長期 API キー]** セクションで、**[ステータス]** が **[非アクティブ]** のキーを選択します。

1. **[アクション]** を選択します。

1. **[Deactivate]** (無効化) を選択します。

1. 確認するには、**[API キーの非アクティブ化]** を選択します。キーの **[ステータス]** が **[非アクティブ]** になります。

**キーを再アクティブ化する方法**

1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソール を使用して にサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで、**[API キー]** を選択します。

1. **[長期 API キー]** セクションで、**[ステータス]** が **[非アクティブ]** のキーを選択します。

1. **[アクション]** を選択します。

1. **[アクティブ化]** を選択します。

1. 確認するには、**[API キーのアクティブ化]** を選択します。キーの **[ステータス]** が **[アクティブ]** になります。

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

API を使用してキーを非アクティブ化するには、[IAM エンドポイント](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)を使用して [UpdateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html) リクエストを送信し、`Status` を `Inactive` に指定します。次のコードスニペットを使用してキーを非アクティブ化できます。この際、*\$1\$1ServiceSpecificCredentialId\$1* をキーの作成時に返された値に置き換えます。

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

API を使用してキーを再アクティブ化するには、[IAM エンドポイント](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)を使用して [UpdateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html) リクエストを送信し、`Status` を `Active` に指定します。次のコードスニペットを使用してキーを再アクティブ化できます。この際、*\$1\$1ServiceSpecificCredentialId\$1* をキーの作成時に返された値に置き換えます。

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

------

## 長期 Amazon Bedrock API キーをリセットする
<a name="api-keys-reset"></a>

キーの値が侵害されたか、使用できなくなった場合は、キーをリセットします。キーの有効期限がまだ残っている必要があります。既に有効期限が切れている場合は、キーを削除して新しいキーを作成します。

任意の方法のタブを選択し、その手順に従います。

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

**キーをリセットする方法**

1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソール を使用して にサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで、**[API キー]** を選択します。

1. **[長期 API キー]** セクションで、キーを選択します。

1. **[アクション]** を選択します。

1. **[キーのリセット]** を選択します。

1. **[次へ]** を選択してください。

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

API を使用してキーをリセットするには、[IAM エンドポイント](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)を使用して [ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html.html) リクエストを送信します。次のコードスニペットを使用してキーをリセットできます。この際、*\$1\$1ServiceSpecificCredentialId\$1* をキーの作成時に返された値に置き換えます。

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

------

## 長期 Amazon Bedrock API キーを削除する
<a name="api-keys-delete"></a>

キーが不要になった場合、またはキーの有効期限が切れている場合は、キーを削除します。

任意の方法のタブを選択し、その手順に従います。

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

**キーを削除するには**

1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソール を使用して にサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで、**[API キー]** を選択します。

1. **[長期 API キー]** セクションで、キーを選択します。

1. **[アクション]** を選択します。

1. **[削除]** を選択します。

1. 削除を確定します。

**API キーが IAM ユーザーにリンクされている**  
この API キーを削除しても、このキーを所有者として作成した IAM ユーザーは削除されません。次のステップで IAM コンソールから IAM ユーザーを削除できます。

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

API を使用してキーを削除するには、[IAM エンドポイント](https://docs.aws.amazon.com/general/latest/gr/iam-service.html)を使用して [DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html.html) リクエストを送信します。次のコードスニペットを使用してキーを削除できます。この際、*\$1\$1ServiceSpecificCredentialId\$1* をキーの作成時に返された値に置き換えます。

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

------

## Amazon Bedrock API キーを使用するためのアクセス許可を削除する IAM ポリシーをアタッチする
<a name="api-keys-iam-policies"></a>

このセクションでは、Amazon Bedrock API キーへのアクセスを制限するために使用できる一部の IAM ポリシーについて説明します。

### Amazon Bedrock API キーを使用して呼び出す能力を ID に与えることを拒否する
<a name="api-keys-iam-policies-deny-call-with-bearer-token"></a>

Amazon Bedrock API キーを使用して呼び出すことを ID に許可するアクションは `bedrock:CallWithBearerToken` です。ID が Amazon Bedrock API キーを使用して呼び出しを実行できないようにするには、キーのタイプに応じて ID に IAM ポリシーをアタッチします。
+ **長期キー** – キーに関連付けられている IAM ユーザーにポリシーをアタッチします。
+ **短期キー** – キーの生成に使用される IAM ロールにポリシーをアタッチします。

IAM アイデンティティにアタッチできる IAM ポリシーは次のとおりです。

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

****  

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

------

### IAM ロールセッションを無効にする
<a name="api-keys-iam-policies-invalidate-session"></a>

短期キーが侵害された場合は、キーの生成に使用されたロールセッションを無効にすることで、その使用を防ぐことができます。ロールセッションを無効にするには、キーを生成した IAM アイデンティティに次のポリシーをアタッチします。*2014-05-07T23:47:00Z* を、セッションを無効にする時間に置き換えます。

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

****  

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

------

# Amazon Bedrock API キーを生成して使用するためのアクセス許可を制御する
<a name="api-keys-permissions"></a>

Amazon Bedrock API キーの生成と使用は、Amazon Bedrock サービスと IAM サービスの両方でアクションと条件キーによって制御されます。

**Amazon Bedrock API キーの生成の制御**  
[iam:CreateServiceSpecificCredential](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html#awsidentityandaccessmanagementiam-actions-as-permissions) アクションは、サービス固有のキー (長期的な Amazon Bedrock API キーなど) の生成を制御します。このアクションの範囲をリソースとして IAM ユーザーに限定し、キーを生成できるユーザーを制限できます。

次の条件キーを使用して、`iam:CreateServiceSpecificCredential` アクションのアクセス許可に条件を課すことができます。
+ [iam:ServiceSpecificCredentialAgeDays](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_ServiceSpecificCredentialAgeDays) – 条件でキーの有効期限を日数で指定できます。例えば、この条件キーを使用して、90 日以内に期限切れになる API キーの作成のみ許可できます。
+ [iam:ServiceSpecificCredentialServiceName](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_ServiceSpecificCredentialAgeDays) – 条件でサービスの名前を指定できます。例えば、この条件キーを使用して Amazon Bedrock の API キーの作成のみを許可し、他のサービスの作成は許可しません。

**Amazon Bedrock API キーの使用の制御**  
[bedrock:CallWithBearerToken](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions) アクションは、短期または長期 Amazon Bedrock API キーの使用を制御します。

`bedrock:bearerTokenType` 条件キーを[文字列条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)とともに使用して、`bedrock:CallWithBearerToken` のアクセス許可を適用するベアラートークンのタイプを指定できます。次のいずれかの値を指定できます。
+ `SHORT_TERM` – 条件に短期 Amazon Bedrock API キーを指定します。
+ `LONG_TERM` – 条件に長期 Amazon Bedrock API キーを指定します。

次の表は、ID によって Amazon Bedrock API キーが生成または使用されるのを防ぐ方法をまとめたものです。


****  

| 目的 | 長期キー | 短期キー | 
| --- | --- | --- | 
| キーの生成を防止する | iam:CreateServiceSpecificCredential アクションを拒否するポリシーを IAM ID にアタッチします。 | 該当なし | 
| キーの使用を防止する | キーに関連付けられた IAM ユーザーに bedrock:CallWithBearerToken アクションを拒否するポリシーをアタッチします。 | キーを使用できない IAM ID に bedrock:CallWithBearerToken アクションを拒否するポリシーをアタッチします。 | 

**警告**  
短期 Amazon Bedrock API キーはセッションの既存の認証情報を使用するため、キーを生成した ID に対する `bedrock:CallWithBearerToken` アクションを拒否することで、その使用を防ぐことができます。ただし、短期キーの生成を防ぐことはできません。

## API キーの生成と使用を制御するポリシーの例
<a name="api-keys-permissions-examples"></a>

API キーの生成と使用を制御する IAM ポリシーの例については、次のトピックから選択します。

**Topics**
+ [ID により長期キーが生成されたり、Amazon Bedrock API キーが使用されたりするのを防ぐ](#api-keys-permissions-examples-prevent-generation-and-use)
+ [ID により短期 API キーが使用されるのを防ぐ](#api-keys-permissions-examples-prevent-use-short-term)
+ [ID により長期 API キーが使用されるのを防ぐ](#api-keys-permissions-examples-prevent-use-long-term)
+ [ID により短期 API キーが使用されることを明示的に防止する](#api-keys-permissions-examples-deny-use-short-term-explicitly)
+ [ID により長期 API キーが使用されることを明示的に防止する](#api-keys-permissions-examples-deny-use-long-term-explicitly)
+ [Amazon Bedrock キーの作成を 90 日以内に期限切れになる場合にのみ許可する](#api-keys-permissions-examples-allow-bedrock-keys-expire-within-90-days)

### ID により長期キーが生成されたり、Amazon Bedrock API キーが使用されたりするのを防ぐ
<a name="api-keys-permissions-examples-prevent-generation-and-use"></a>

IAM ID により長期 Amazon Bedrock API キーが生成されたり、Amazon Bedrock API キーが使用されたりするのを防ぐには、次のポリシーを ID にアタッチします。

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

****  

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

------

**警告**  
短期キーの生成を防ぐことはできません。
このポリシーは、 AWS サービス固有の認証情報の作成をサポートするすべてのサービスの認証情報の作成を防止します。詳細については、「[IAM ユーザーのサービス固有の認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_service-specific-creds.html)」を参照してください。

### ID により短期 API キーが使用されるのを防ぐ
<a name="api-keys-permissions-examples-prevent-use-short-term"></a>

IAM ID により短期 Amazon Bedrock API キーが使用されるのを防ぐには、ID に次のポリシーをアタッチします。

### ID により長期 API キーが使用されるのを防ぐ
<a name="api-keys-permissions-examples-prevent-use-long-term"></a>

IAM ID により長期 Amazon Bedrock API キーが使用されるのを防ぐには、次のポリシーを ID にアタッチします。

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

****  

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

------

### ID により短期 API キーが使用されることを明示的に防止する
<a name="api-keys-permissions-examples-deny-use-short-term-explicitly"></a>

IAM ID により短期 Amazon Bedrock API キーが使用されることを明示的に防止し、他の API キーの使用を許可するには、次のポリシーを ID にアタッチします。

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

****  

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

------

### ID により長期 API キーが使用されることを明示的に防止する
<a name="api-keys-permissions-examples-deny-use-long-term-explicitly"></a>

IAM ID により長期 Amazon Bedrock API キーが使用されるのを明示的に防止し、他の API キーの使用を許可するには、次のポリシーを ID にアタッチします。

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

****  

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

------

### Amazon Bedrock キーの作成を 90 日以内に期限切れになる場合にのみ許可する
<a name="api-keys-permissions-examples-allow-bedrock-keys-expire-within-90-days"></a>

Amazon Bedrock 用であり、かつ有効期限が 90 日以内の場合のみ、IAM ID による長期 API キーの作成を許可するには、次のポリシーを ID にアタッチします。

------
#### [ 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"
               }
           }
       }
   ]
}
```

------