Cloud API サービスに対する認証

アプリケーション コードで Cloud API を使用できるようにするには、アプリケーションの適切な認証情報を設定する必要があります。サービスに対してアプリケーションのアイデンティティを示して「認証」を受けるとともに、タスクを実行するための「承認」を受けるためです(こうした認証情報に関連するメカニズムを「認証方式」と呼びます)。

最も単純な認証方式は API キーですが、API キーではサービスの承認を受けることができないため、使用の対象は一般公開データや、直接 RPC API に渡されるデータに限られます。対照的に、サービス アカウントは最も有用な認証方式といえます。この方式を使用すると、サービス アカウントの認証情報をサービスに送信するようにコードを構成することによって Cloud API にアクセスできるからです。

Google Cloud Platform API にアクセスするときは、テスト目的では API キーを設定し、本番環境用にはサービス アカウントを設定することをおすすめします。

API キーの設定

最も簡単な認証メカニズムでは、API キーを直接サービスに渡します。この認証方式は、スコープとセキュリティの両方が制限されるため、API キーはテスト目的に限定して使用することをおすすめします。

Google Cloud Platform Console で、Google Cloud Platform API にアクセスするための API キーを取得するには、次の 2 つの方法があります。

  1. プロジェクトを設定する
  2. [API Manager] → [認証情報] を使用する

プロジェクトを設定する

プロジェクトの設定の一部で Cloud API を有効にすると、認証情報の取得を促すメッセージが表示されます。

[認証情報に進む] をクリックして [認証情報を追加] ページを開きます。

[API キー] をクリックします。[新しいキーを作成] ダイアログが表示されます。

[ブラウザキー] を選択します。[ブラウザ API キーの作成] ページが表示されます。

このキーの名前を入力します(上の例では「Curl Test Key」になっていますが、任意の名前を入力できます)。参照 URL フィールドは空白のままで構いません。このブラウザキーはテスト専用のためですが、ブラウザキーを本番環境にデプロイする場合は、このフィールドで適切なドメインを設定する必要があります。

[作成] をクリックします。[ブラウザ API キー] ページに、新規作成したキーが表示されます。

このキーをコピーして安全な場所に保管してください(キーは、[API Manager] → [認証情報] ページから取得することもできます)。

[API Manager] → [認証情報] を使用する

API キーとその他の認証情報を作成するには、GCP Console で [API Manager] → [認証情報] の順に選択します。

[認証情報を作成] → [API キー] を選択し、プロジェクトを設定するの説明に沿ってブラウザキーを作成します。

サービス アカウントの設定

Google Cloud Platform API の認証と承認(まとめて「認証」と呼ばれます)には、サービス アカウントを使用するのが一般的です。サービス アカウントを使用すると、コードでアプリケーションの認証情報を直接 Cloud API に送信できます。サービス アカウントは、ユーザー アカウントと同様に、メールアドレスで表されます。ただし、ユーザー アカウントとは異なり、サービス アカウントは特定のアプリケーションのみに属するものであり、ある API のために作成されたサービス アカウントはその API へのアクセスにしか使用できません。ここでは例として、サービス アカウントの認証情報を Google Cloud Platform Console で作成する方法について説明します。

GCP Console の使用

GCP Console で [API Manager] → [認証情報] の順に移動し、[認証情報を作成] → [サービス アカウント キー] の順に選択します。

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

[名前] にこのサービス アカウントの名前を入力します。この名前は [サービス アカウント ID] のデフォルトの名前(生成されるサービス アカウント ID アドレスの「@」の左側)として使用されますが、このサービス アカウント ID 名は必要に応じて変更できます。名前は何でも構いません。重要なのは、それを覚えておくことです。[キーのタイプ] は [JSON] のままにしておくことをおすすめします。[作成] をクリックすると、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 ファイルには秘密鍵が含まれているため、安全な場所に保管してください(このファイルはその唯一のコピーです)。このサービス アカウント キー ファイルは、コードの中で認証情報を Google Cloud Platform API に送信するときに参照する必要があります。

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

アプリケーションで Google Cloud Platform API サービスに対する認証を行うには、アプリケーションのデフォルト認証情報(ADC)を使用するのが最も簡単です。ADC を使用するサービスは、最初に GOOGLE_APPLICATION_CREDENTIALS 環境変数の中で認証情報を検索します。ADC で他の認証情報(ユーザーの認証情報など)を使用する場合を除いて、この環境変数は、サービス アカウント キーファイル(サービス アカウントの設定でサービス アカウント キーを作成したときにダウンロードした .json ファイル)を指すように設定することをおすすめします。

$ export GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Video Intelligence API ドキュメント