4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gakken LEAPAdvent Calendar 2024

Day 10

Google CloudのAPI GatewayでAPI Keyを使用したAPIを作成する

Last updated at Posted at 2024-12-09

はじめに

どうも、@to-fmakです。最近、Google CloudのAPI Gatewayを使ってAPI Key認証を有効にしたAPIを作成する機会がありました。本記事では、その手順を簡単に共有します。
API Key認証は、アクセス制御を簡易的に実現したい場合に有効な方法です。

OpenAPIファイルの設定

API GatewayでAPI Keyを使用するには、OpenAPIファイルでAPI Key認証を設定する必要があります。以下は設定例です。

セキュリティ定義の追加

securityDefinitions:
  api_key:
    type: 'apiKey'
    name: 'x-api-key'
    in: 'header'

OpenAPIファイル全体の例(一部省略)

swagger: '2.0'
info:
  title: 'My Example Config'
  ...
paths:
  /hello:
    get:
      security:
        - api_key: []
    ...

securityDefinitions:
  api_key:
    type: 'apiKey'
    name: 'x-api-key'
    in: 'header'

APIの作成

準備したOpenAPIファイルを使用して、API GatewayでAPIを作成します。詳細な作成手順は割愛します。

認証に API キーを使用する場合は、まずサービスで API キーのサポートを有効にする必要があります。

次のコマンドを入力します。

gcloud services enable MANAGED_SERVICE_NAME

MANAGED_SERVICE_NAME には、API のデプロイ時に作成されたマネージド サービスの名前を指定します。この名前は、コンソールの API ランディング ページにある API の [マネージド サービス] 列で確認できます。また、gcloud api-gateway apis describe コマンドを使用するときに、Managed service プロパティでこの名前を確認できます。

API Keyの作成

「APIとサービス」コンソールを開き、「認証情報」画面を開きます。「認証情報を作成」をクリックします。

Screenshot 2024-11-18 at 17.41.40.png

「APIキー」をクリックします。

Screenshot 2024-11-18 at 17.46.28.png

APIキーが表示されるので、メモしておきます。

Screenshot 2024-11-18 at 17.46.50.png

作成したAPIを選択し、「APIキーを編集」をクリックします。

Screenshot 2024-11-18 at 17.46.59.png

「APIの制限」で「キーを制限」を選択し、対象のAPI(上記OpenAPIファイルの例だとMy Example Config)を選択します。

Screenshot 2024-11-18 at 17.47.48.png

Screenshot 2024-11-18 at 17.48.02.png

動作確認

以下のようにAPI Keyを使用してリクエストを送信します。

curl -X POST -H "x-api-key: {API Key}" "https://{ゲートウェイのURL}/hello"

参考URL

エンジニア募集

Gakken LEAP では教育をアップデートしていきたいエンジニアを絶賛大募集しています!!
ぜひお気軽にカジュアル面談へお越しください!!

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?