IBM Cloud Docs
Watson サービスに対する認証

Watson サービスに対する認証

IBM Watson® 上の IBM Cloud® サービスでは、認証に IBM Cloud® Identity and Access Management (IAM) を使用します。 IBM Cloud Pak® for Data にインストールされたサービスでは、さらに多くの方式がサポートされます。 IAM アクセス・ポリシーを使用すれば、1 つのキーから複数のリソースに対するアクセス権限を割り当てることができます。 また、ユーザー、サービス ID、サービス・インスタンスは、複数の API キーを保持できます。

資格情報の受け渡し

サービスの API を介してサービスに対する認証を行うには、資格情報を API に渡します。 認証の方法は、セキュリティー上のニーズと、サービスが IBM Cloud® 上にあるか、IBM Cloud Pak® for Data にインストールされているかによって異なることがあります。

IBM Cloud に対する認証

IBM Cloud

IBM Cloud® Identity and Access Management (IAM) を使用して、パブリック IBM Watson® サービスに対して認証された要求を行います。 許可ヘッダーでベアラー・トークンを渡すか、API キーを渡すことができます。

  • IAM トークンで認証を行います。

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

    以下の curl コマンドは、IAM アクセス・トークンを生成します。 {apikey} をご使用の API キーの値に置き換えてください。

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

    応答には、access_token プロパティーが含まれます。 サービスに対する要求の認証を受けるには、{access_token} を応答からのトークンに置き換えます。 {url} をサービス・インスタンスの URL の値に置き換えます。これは、サービス・インスタンスの 「管理」 ページの 「資格情報」 ボックスで 「資格情報の表示」 をクリックすることで確認できます。

    curl -header "Authorization: Bearer {access_token}" \
    "{url}/v1/{method}"
    
  • IBM Cloud の API キー、サービス ID の API キー、またはサービス固有の API キーで認証を行います。 {url} をサービス・インスタンスの URL の値に置き換えます。これは、サービス・インスタンスの 「管理」 ページの 「資格情報」 ボックスで 「資格情報の表示」 をクリックすることで確認できます。

    API キーは使いやすく、自動的に有効期限が切れることもありません。 有効なキーがあれば、リソースにアクセスできます。 ユーザーごとまたはアプリケーションごとに別々の API キーを作成できます。また、キー・ローテーション・シナリオをサポートするために別々のキーを作成することもできます。 API キーの取り消しはコンソールから行え、そのとき他の API キーやユーザーの妨げになりません。

    以下の curl コマンドの例では、API キー f5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRIを使用して認証を行います。

    curl -u "apikey:f5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRI" \
    "{url}/v1/{method}"
    

テストと開発では、API キーを直接渡すことができます。 一方、実動用には、Watson SDK を使用しない限り、IAM トークンを使用してください。 API キーを渡すと、サービスは API キーの詳細を調べるため、パフォーマンスに影響を与える可能性があります。 詳しくは、IBM Cloud サービス API の呼び出しを参照してください。

Watson SDK は、どちらの方式もサポートします。 詳しくは、サービスおよび SDK の API リファレンス の「 認証 」セクションを参照してください。

一部のサービス・プランでは、データに対するアクセス権限を制御するために IBM® Key Protect for IBM Cloud® がサポートされます。 詳しくは、Watson サービスでの機密情報の保護を参照してください。

IBM Cloud Pak for Data に対する認証

IBM Cloud Pak for Data

要求ごとにアクセス・トークンを渡すことによって、サービスに対する認証を受けます。 認証を受けるために Authorization ヘッダーでベアラー・トークンを渡します。 トークンを生成するための方式は、いくつかあります (API キーの使用や、ユーザー名によるものなど)。 詳しくは、 許可トークンまたは API キーの生成を参照してください。

IBM Cloud Pak for Dataにインストールされているサービス用の Watson SDK でサポートされる認証方式について詳しくは、サービスおよび SDK の API リファレンス の「 認証 」セクションを参照してください。

API キーについて

以下の 3 つのタイプの API キーが Watson サービスでサポートされています。

  • サービス固有の API キー

    サービス固有のキーは、サービスに付随して生成されます。 この種の API キーには、特定のサービス・インスタンスに対するアクセス権限しかありません。 サービス固有のキーを表示するには、 リソース・リストから Watson サービスの名前をクリックします。

  • IBM Cloudの API キー

    IBM Cloud の API キーは、ユーザーの ID に関連付けられています。 キーを削除できるのは、そのキーに関連付けられたユーザーだけです。 IBM Cloud の同じ API キーを使用して、さまざまなサービスにアクセスできます。 IBM Cloud の API キーの扱いについて詳しくは、ユーザーの API キーの管理を参照してください。

  • サービス ID の API キー

    IBM Cloud の内部でホストされるアプリケーションでも、外部でホストされるアプリケーションでも、サービス ID によって IBM Cloud サービスへのアクセスが可能になります。 サービス ID に関連付けられた API キーには、そのサービス ID に関連付けられたアクセス権限が付与されます。 サービス ID のキーについて詳しくは、サービス ID の API キーの管理を参照してください。

API キーのベスト・プラクティス

アカウントとアプリケーションの情報漏えいにつながる、資格情報のパブリックへの露出の危険性を低減するため、API キーは常にセキュアにしておいてください。 API キーをセキュアにしておくためには、以下のガイドラインに従ってください。

  • 必要なアクセス・レベルに有効な、最も限定的なサービス役割を割り当ててください。

    例えば、アプリケーションからの Reader API メソッドの呼び出しには、GET サービス役割を割り当てます。 この役割は、読み取り専用のアクセス権限しか持っていないため、リソースを作成することも編集することもできません。

  • コードに API キーを直接埋め込まないでください。

    コードに埋め込まれた API キーは、ユーザーにさらされる可能性があります。 API キーはコードに埋め込むのではなく、環境変数に格納するか、ソース・コード制御システム外のファイルに格納してください。

  • アプリケーションのソース・コード制御システム内のファイルに API キーを格納しないでください。

    API キーをファイルに格納する場合、そのファイルはアプリケーションのソース・コードの外部に保管してください。 これを実施することは、GitHub などのパブリックなソース・コード管理システムを使用する場合に重要です。

  • API キーの再生成またはローテーションを行ってください。

    新しいキーを定期的に作成するか、複数のキーのローテーションを行います。 使用しなくなったキーを削除することも忘れないでください。

次のステップ