Video Intelligence API に対する認証

このページでは、サービス アカウントの概要、Video Intelligence API へのリクエストを認証する方法、サービス アカウントを使用してアプリケーションのデフォルト認証情報を設定する方法について説明します。

アプリケーション コードで Video Intelligence API を使用するには、アプリケーションがサービスに対してIDの認証を受けタスクを実行するための認可を得られるよう、適切な認証情報を設定する必要があります(これらの認証情報関連のメカニズムは、認証スキームと呼ばれます)。(こうした認証情報に関連するメカニズムを「認証方式」と呼びます)。

Google Cloud API の認証と認可(通常は「auth」としてグループ化)は通常、サービス アカウントを使用して行われます。サービス アカウントを使用すると、アプリケーションの認証情報をコードで Video Intelligence API に直接送信できます。サービス アカウントは、ユーザー アカウントと同様に、メールアドレスで示されます。ユーザー アカウントとは異なり、サービス アカウントはアプリケーションにのみ関連付けられます。

API の有効化

認証する前に、Video Intelligence API を有効にする必要があります。

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Cloud Console のプロジェクト セレクタページで、Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Cloud Video Intelligence API を有効にします。

    API を有効にする

  5. 認証の設定:
    1. Cloud Console で、[サービス アカウント キーの作成] ページに移動します。

      [サービス アカウント キーの作成] ページに移動
    2. [サービス アカウント] リストから [新しいサービス アカウント] を選択します。
    3. [サービス アカウント名] フィールドに名前を入力します。
    4. [ロール] リストから値を選択しないでください。このサービスにアクセスするために必要なロールはありません。
    5. [作成] をクリックします。このサービス アカウントにはロールがないという警告メッセージが表示されます。
    6. [ロールなしで作成] をクリックします。キーが含まれている JSON ファイルがパソコンにダウンロードされます。
  6. 環境変数 GOOGLE_APPLICATION_CREDENTIALS を、サービス アカウント キーが含まれる JSON ファイルのパスに設定します。 この変数は現在のシェル セッションにのみ適用されるため、新しいセッションを開く場合は、変数を再度設定します。

  7. Cloud SDK をインストールして初期化します。

Cloud Console でサービス アカウントを作成する

Google Cloud Console を使用してサービス アカウントを作成するには、以下の手順に従います。

  1. Cloud Console の [認証情報] ページで、[認証情報の作成] > [サービス アカウント キー] を選択します。

  2. 次に、[サービス アカウント] で [新しいサービス アカウント] を選択します。

  3. [サービス アカウント名] ボックスに、サービス アカウントの名前を入力します。この名前はサービス アカウント ID(生成されたサービス アカウント ID アドレスの「@」の左側)のデフォルト名として使用されますが、変更もできます。名前は何でも構いません。重要なのは、その名前を覚えておくことです。

  4. ほとんどの新しいプロジェクトでは、[キーのタイプ] で [JSON] を選択します。

  5. [作成] をクリックします。

Cloud Console で JSON キー(.json テキスト ファイルとして)が生成され、ファイルをパソコンにダウンロードするように指示され、[サービス アカウントが作成されました] ダイアログ ボックスが表示されます。

生成された JSON キーは次のサンプルのようになっています。

{
  "type": "service_account",
  "project_id": "project-id",
  "private_key_id": "some_number",
  "private_key": "-----BEGIN PRIVATE KEY-----\n....
  =\n-----END PRIVATE KEY-----\n",
  "client_email": "<api-name>api@project-id.iam.gserviceaccount.com",
  "client_id": "...",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/...<api-name>api%40project-id.iam.gserviceaccount.com"
}

この JSON ファイルには秘密鍵が含まれているため、安全な場所に保管してください(このファイルはその唯一のコピーです)。Video Intelligence API にアノテーション リクエストを送信するときは、コード内でこのサービス アカウント キー ファイルを参照する必要があります。

アプリケーションのデフォルト認証情報による認証

アプリケーションで Video Intelligence API への認証を取得する最も簡単な方法は、アプリケーションのデフォルト認証情報(ADC)を使用することです。ADC を使用するサービスは、最初に GOOGLE_APPLICATION_CREDENTIALS 環境変数で認証情報を検索します。他の認証情報(ユーザー認証情報など)を使用する必要がない限り、サービス アカウントキーファイル(サービス アカウントキーのダウンロード時にダウンロードした.jsonファイル)を指すように設定します。

$ export GOOGLE_APPLICATION_CREDENTIALS=path_to_service_account_file