認証方法の選択

API Gateway では、さまざまなアプリケーションやユースケースに適した複数の認証方法がサポートされます。API Gateway は、サービス構成で指定した認証方法を使用して、受信リクエストを API バックエンドに渡す前に検証します。このページでは、API Gateway でサポートされる各認証方法の概要について説明します。

API キー

API キーは、割り当て、課金、モニタリングのために Google Cloud プロジェクトを識別する単純な文字列です。デベロッパーは、Cloud Console でプロジェクトの API キーを生成し、このキーをクエリ パラメータとして、またはリクエスト ヘッダーとしてすべての API 呼び出しに埋め込みます。

API 構成で API キーを必須として指定した場合、API Gateway はその API キーを使用して、API キーが関連付けられている Google Cloud プロジェクトを検索します。現在お使いの Google Cloud プロジェクトまたは API が有効になっている他の Google Cloud プロジェクトで API キーが生成されていない場合、API Gateway はリクエストを拒否します。

有効期間の短いトークンや署名付きリクエストを使用する認証情報とは異なり、API キーはリクエストの一部であるため、中間者攻撃に対して脆弱で、安全性が低いとみなされます。API キーは、以下で説明するいずれかの認証方法とともに使用できます。API 呼び出しに機密データが含まれる場合は、セキュリティ上の理由により、API キーを単独で使用しないでください。

使用例

割り当てなどの API Gateway 機能を使用するには、API キーを渡すことで、API Gateway がクライアント アプリケーションに関連付けられている Google Cloud プロジェクトを識別できます。

API Gateway の API キー認証について

認証に API キーを使用する場合、まず、サービスで API キーのサポートを有効にする必要があります。次のコマンドを入力します。

  • MANAGED_SERVICE_NAME は、API のデプロイ時に作成されたマネージド サービスの名前を指定します。この名前は、Console の API ランディング ページの API の [マネージド サービス] 列で確認できます。また、gcloud api-gateway apis describe コマンドを使用すると、Managed service プロパティでこの名前を見つけることもできます。
  • PROJECT_ID は Google Cloud プロジェクトの名前を指定します。
gcloud services enable .apigateway.PROJECT_ID.cloud.goog

次に例を示します。

gcloud services enable my-api-a12bcd345e67f89g0h.apigateway.my-project.cloud.goog

サービス アカウント

API にリクエストを送信するサービスを識別するには、サービス アカウントを使用します。呼び出し元のサービスは、サービス アカウントの秘密鍵を使用して安全な JSON Web Token(JWT)に署名し、署名した JWT をリクエストに含めて API に送信します。

使用例

JWT とサービス アカウントはマイクロサービスに適しています。詳しくは、サービス間の認証をご覧ください。