API Management で API を公開しポリシーを適用する

Consumption レベルの API Management を作成し、公開バックエンド httpbin を API として公開します。サブスクリプションキーによる保護からレート制限ポリシー(429 応答)の確認まで、AZ-204 で問われる API 公開の基本を一通り体験します。

中級50Azure 実環境

ラボ概要

Azure API Management(APIM)は、既存のバックエンド サービスの前段に「ゲートウェイ」を置き、認証・流量制御・変換などを一元的に適用できるサービスです。バックエンドのコードを一切変更せずに、サブスクリプションキーによるアクセス制御やレート制限を追加できる点が特徴で、AZ-204 では「API Management の実装」として頻出のテーマです。

このラボでは、数分で作成できるサーバーレスの Consumption(従量課金)レベルの APIM インスタンスを作成し、インターネット上の公開テスト用バックエンド(httpbin.org)を API として定義します。その後、サブスクリプションキーなしのリクエストが 401 で拒否されること、キー付きなら 200 が返ることを確認し、最後に rate-limit ポリシーを適用して、制限を超えたリクエストが 429 Too Many Requests になる様子を実際に観察します。

ポリシーは XML で記述され、inbound / backend / outbound / on-error の各セクションに配置します。今回は inbound セクションに rate-limit を入れますが、Consumption レベルでは rate-limit-by-key が使えないなど、レベル(ティア)ごとの機能差も試験でよく問われるポイントです。手順の中で合わせて確認していきます。

学習目標

  • Consumption レベルの API Management インスタンスを Azure CLI で作成できる
  • 既存の公開バックエンドを APIM 上の API として定義し、オペレーションを追加できる
  • サブスクリプションキー(Ocp-Apim-Subscription-Key ヘッダー)によるアクセス制御の動作を説明できる
  • rate-limit ポリシーを API スコープに適用し、429 応答を確認できる
  • Consumption レベルで使用できるポリシーの制約(rate-limit-by-key 不可など)を説明できる

前提

  • Azure ポータルにサインイン済みであること
  • リソースはすべて japaneast(東日本) リージョンに作成すること
  • 作業はすべて割り当て済みのリソースグループ 1 つの中で行います(新しいリソースグループの作成、サブスクリプション設定の変更はできません)

ラボの構成

  1. 1API Management インスタンス(Consumption)を作成する
  2. 2公開バックエンドを API として定義する
  3. 3オペレーション(GET /ip)を追加する
  4. 4サブスクリプションキーを取得する
  5. 5サブスクリプションキーの動作を確認する
  6. 6レート制限ポリシーを適用する
  7. 7レート制限(429)の動作を確認する
  8. 8動作確認
  9. 9完了チェックリスト
  10. 10後片付け

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

構成図

構成図

参考リソース