0 / 0
資料の 英語版 に戻る
プログラマチック・アクセスの認証
最終更新: 2024年5月10日
プログラマチック・アクセスの認証

Watson Machine Learning を Python クライアント・ライブラリーまたは REST API で使用するには、作業を保護するための認証が必要です。 さまざまな認証方法と、それを自分の好きなサービスに適用する方法を紹介します。

パブリック IBM Watson™ サービスに対する認証済み要求を出すには、IBM Cloud® Identity and Access Management (IAM) を使用します。 IAM アクセス・ポリシーを使用すれば、1 つのキーから複数のリソースに対するアクセス権限を割り当てることができます。 また、ユーザー、サービス ID、サービス・インスタンスは、複数の API キーを保持できます。

セキュリティーの概要

お客様のセキュリティー・ニーズについて説明しているセクションを参照してください。

認証資格情報

以下の用語がこのトピックで説明されているセキュリティー要件に関係します。

  • API キー を使用すると、 Python クライアントまたは API を使用している場合に簡単に認証でき、複数のサービスで使用できます。 API キーは、アクセス権限を付与するために使用されるため、機密と見なされます。 API キーを持つすべてのユーザーがサービスにアクセスできるため、すべての API キーをパスワードと同じように扱います。
  • IAM トークン は、 IBM Cloud サービスにアクセスするために必要な認証トークンです。 トークン要求で API キーを使用して、トークンを生成できます。 IAM トークンの使用について詳しくは、 Watson Machine Learning API に対する認証を参照してください。

サービスの API を介してサービスに対する認証を行うには、資格情報を API に渡します。 許可ヘッダーでベアラー・トークンを渡すか、API キーを渡すことができます。

API キーの作成

IBM Cloud ユーザー・アカウントから API キーを生成するには、 アクセスおよびユーザーの管理 - API キー に移動し、ユーザー・アカウントの API キーを作成または選択します。

「プロファイルと設定 (Profile and settings)」>「ユーザー API キー (User API key)」から API キーを生成してローテートすることもできます。 詳しくは、 ユーザー API キーの管理を参照してください。

IAM トークンを使用した認証

IAM トークンは、60 分間有効な一時セキュリティー資格認定です。 トークンの有効期限が切れたら、新しいトークンを生成することになります。 トークンは、リソースへの一時的なアクセスに便利です。 詳しくは、API キーを使用した IBM Cloud IAM トークンの生成を参照してください。

サービス・レベル・トークンの取得

サービス・レベル・トークンで認証することもできます。 サービス・レベル・トークンを生成するには、以下のようにします。

  1. サービス ID の作成用の IBM Cloud の説明を参照してください。
  2. そのサービス ID の API キーを生成します。
  3. デプロイ可能なアセットを保持する予定のスペースを開きます。
  4. アクセス制御 タブで、サービス ID を追加し、アクセス役割を 管理者 または 編集者に割り当てます。

API 評価要求でサービス・レベル・トークンを使用できます。

インターフェース

 

Python クライアント

watsonx.ai Python クライアント 外部リンク を参照してください。

watsonx.ai Python クライアント・オブジェクトのインスタンスを作成するには、資格情報を Watson Machine Learning API クライアントに渡す必要があります。

wml_credentials = {
                  "apikey":"123456789",
                  "url": " https://HIJKL"
}
from ibm_watson_machine_learning import APIClient
wml_client = APIClient(wml_credentials)
注:

instance_idを明示的に指定しなくても、請求の目的で、関連付けられたスペースまたはプロジェクトから取得されます。 Watson Machine Learning サービスのプランと請求について詳しくは、 Watson Machine Learning プランとランタイム使用量を参照してください。

Python クライアントを使用してモデルを認証してスコアリングする方法の例については、 サンプル・ノートブック を参照してください。

REST API

Watson Machine Learning REST API 外部リンク を参照してください。

Watson Machine Learning REST API を使用するには、 IBM Cloud Identity and Access Management (IAM) トークンを取得する必要があります。 この例では、サンプル・キーの代わりに API キーを指定します。

cURL の例

curl -k -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey=123456789" \
"https://iam.cloud.ibm.com/identity/token"

取得した IAM トークンの前に Bearerという語を付け、API 呼び出しの許可ヘッダーで渡す必要があります。

Python の例

import requests

# Paste your Watson Machine Learning service apikey here

apikey = "123456789"

# Get an IAM token from IBM Cloud
url     = "https://iam.cloud.ibm.com/identity/token"
headers = { "Content-Type" : "application/x-www-form-urlencoded" }
data    = "apikey=" + apikey + "&grant_type=urn:ibm:params:oauth:grant-type:apikey"
response  = requests.post( url, headers=headers, data=data, auth=apikey )
iam_token = response.json()["access_token"]

Node.js の例

var btoa    = require( "btoa" );
var request = require( 'request' );

// Paste your Watson Machine Learning service apikey here
var apikey = "123456789";

// Use this code as written to get an access token from IBM Cloud REST API
//
var IBM_Cloud_IAM_uid = "bx";
var IBM_Cloud_IAM_pwd = "bx";

var options = { url     : "https://iam.cloud.ibm.com/identity/token",
                headers : { "Content-Type"  : "application/x-www-form-urlencoded",
                            "Authorization" : "Basic " + btoa( IBM_Cloud_IAM_uid + ":" + IBM_Cloud_IAM_pwd ) },
                body    : "apikey=" + apikey + "&grant_type=urn:ibm:params:oauth:grant-type:apikey" };

request.post( options, function( error, response, body )
{
    var iam_token = JSON.parse( body )["access_token"];
} );

親トピック: 予測デプロイメントの管理

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細