プログラムアクセス用のクレデンシャル(APIキーとIAMベアラートークン)

IBM watsonx.ai でファウンデーション・モデルをプログラマチックに操作するには、 watsonx.ai リソースへのアクセスが許可されていることを証明するために認証を受ける必要があります。

REST API 資格情報

ほとんどのAPIメソッドでは、リクエストにIAM(Identity and Access Management)ベアラートークンをアクセストークンとして含める必要があります。 APIキーを使用して、IAMベアラートークンを生成します。

REST API 要求を認証するには、以下のステップを実行します。

  1. API キーを作成します。

    アカウント watsonx のナビゲーションメニューから、 [管理 ] > [アクセス (IAM)] IBM Cloud > [IAM] ( IBM Cloud IAM にリダイレクト) > [API キー ] を選択し、 [作成 + ] をクリックします。詳細については、 API キー IBM Cloud を参照してください。

    重要: セキュリティ上の理由により、APIキーは作成時のみコピーまたはダウンロードが可能です。 APIキーを記録のために保存してください。

    AWS のナビゲーション・メニューから、 「Administration(管理) 」 > 「 Access(IAM) 」 > 「 Personal Access Keys(個人アクセス・キー) 」の順に選択し、「 Create +(作成) 」をクリックします。

  2. APIキーを使用して、IAMベアラートークンを作成します:

    IBM Cloud の場合、次のコマンドを実行してください:

    curl -X POST \
    --url https://iam.cloud.ibm.com/identity/token \
    --header "Content-Type: application/x-www-form-urlencoded" \
    --data "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=${APIKEY}"
    

    AWS の商用アカウントの場合、以下のコードコマンドを実行してください:

    curl --request POST \
    --url https://<region>.aws.data.ibm.com/api/rest/mcsp/apikeys/token \
    --header 'Content-Type: application/json' \
    --data '{
       "apikey": "${APIKEY}"
    }'
    

    GovCloud データセンター内の AWS アカウントに対して、次のコマンドを実行します:

    curl --request POST \
    --url https:///dai.ibmforusgov.com/api/rest/mcsp/apikeys/token \
    --header 'Content-Type: application/json' \
    --data '{
       "apikey": "${APIKEY}"
    }'
    

    レスポンスの access_token フィールドからIAMベアラートークンを取得する。 ベアラートークンを使用して、 watsonx.ai API への認証を行うことができます。

  3. REST 要求を送信するときに IAM トークンを指定します。 例:

    curl -X 'POST' <Cloud service provider URL> --header "Authorization: Bearer ${TOKEN}..."
    

トークンの有効期限が切れた場合は、ユーザーがトークンをリフレッシュする必要があります。 トークンをリフレッシュするには、ステップ 2 から始まる手順を繰り返します。

Python ライブラリーの資格情報

Python ライブラリを使用する場合、APIキーまたはIAMベアラートークンのいずれかを選択できます。

IAM トークンを自分で作成し、そのトークンをライブラリーに渡す場合は、トークンの有効期限が切れる前にトークンのリフレッシュを管理する必要があります。

Python ライブラリでのAPIキーの使用

以下のサンプルコードは、 Python ライブラリを使用する際にAPIキーを直接認証に利用する方法を示しています:

from ibm_watsonx_ai.foundation_models import ModelInference

model_inference = ModelInference(
   model_id="<api-model-id>",
   credentials={
      "apikey": "<api-key>",
      "url": "<URL>"
   },
   project_id="<project-ID>"
   )
APIClientの使用

PythonAPIClient ライブラリで利用可能なクライアントにAPIキーを渡すと、クライアントはIAMトークンを生成し、必要に応じてトークンを更新します。 各メソッドごとに認証情報を指定する必要はありません。

以下のサンプルコードスニペットは、APIキーがどのように使用されるかを示しています APIClient

from ibm_watsonx_ai import APIClient
from ibm_watsonx_ai import Credentials

credentials = Credentials(
url = "<URL>",
api_key = "<api-key>"
)

client = APIClient(credentials)

詳細については、 「認証」を参照してください。

デフォルトのプロジェクトまたはスペース ID を設定することもできます。

タスク認証情報の作成

基盤モデルのチューニングなど、一部の長期にわたるジョブやタスクには、タスク認証が必要です。

タスク認証を作成するには:

task_credentials_details = client.task_credentials.store()

資格情報をリストアップするには:

client.task_credentials.list()

返される認証情報のリストには、各タスク認証情報ごとに、タスク認証IDである asset_id が含まれています。

クレデンシャルのIDが分かっている場合、以下のようにして削除することができます

client.task_credentials.delete(task_credentials_id)

詳細は、 Python ライブラリのタスク認証クラスを参照してください。

あるいは、製品UIを使用してタスク認証の作成や削除を行うこともできます。 詳細は 、「タスクの認証情報の管理 」を参照してください。

詳細情報