このページは Apigee と Apigee ハイブリッドに適用されます。
Apigee Edge のドキュメントはこちらをご覧ください。
Apigee では、ポリシーを使用することにより、コードを記述することなく API の動作をプログラムできます。ポリシーは、特定の限定された管理機能を実装するモジュールのようなものです。ポリシーにより、一般的な管理機能を API に簡単に追加できます。ポリシーによって、セキュリティ、レート制限、変換、メディエーションの機能などが提供され、自身でコーディングやメンテナンスを行う必要がなくなります。
Apigee が提供する一連のポリシータイプのだけに限定されません。API プロキシの機能を拡張し、Apigee ポリシーでサポートされている基本的な管理機能を基にイノベーションを実現するカスタム スクリプトとコード(JavaScript アプリケーションなど)を作成することもできます。
このトピックでは、Apigee のポリシーの種類と使用の概要について説明します。特定のポリシーについては、ポリシー リファレンスの概要をご覧ください。
ポリシーの種類とカテゴリ
技術的には、ポリシーは XML 形式の構成ファイルです。各ポリシーの構造(必要な構成要素や任意の構成要素など)は、XML スキーマによって定義されます。XML ツールを使い慣れている場合は、GitHub の API Platform サンプルのポリシー スキーマをよく理解しておくことをおすすめします。
Apigee ポリシーは、次の機能カテゴリに分類されます。各ポリシー カテゴリで使用可能なポリシーについては、ポリシー リファレンスの概要をご覧ください。
AI
AI カテゴリのポリシーを使用すると、AI ワークロードとモデルのパフォーマンスを最適化して保護できます。
拡張機能
拡張機能カテゴリのポリシーでは、Apigee の拡張性を利用して、選択したプログラミング言語でカスタムの動作を実装できます。
メディエーション
メディエーション カテゴリのポリシーを使用では、API プロキシ内のフローを通過するメッセージを積極的に操作できます。このポリシーにより、メッセージ形式を XML から JSON(またはその逆)に変換でき、特定の XML 形式を別の XML 形式に変換することもできます。また、メッセージの解析、新しいメッセージの生成、アウトバウンド メッセージの値の変更もできます。さらに、メディエーション ポリシーは、Apigee によって公開される基本的なサービスともやり取りして、アプリ、デベロッパー、セキュリティ トークン、API プロダクトに関するデータを実行時に取得できます。
セキュリティ
セキュリティ カテゴリのポリシーは、認証、承認、コンテンツベースのセキュリティをサポートします。
トラフィック管理
トラフィック管理カテゴリのポリシーでは、API プロキシを通じて、リクエスト メッセージとレスポンス メッセージのフローを制御できます。こうしたポリシーは、運用レベルと業務レベルの両方の制御をサポートします。これを使用すると、そのままのスループットを制御して、アプリ単位でトラフィックを制御することも可能です。トラフィック管理ポリシータイプでは、割り当てを適用でき、サービス拒否攻撃の緩和にも役立ちます。
ポリシーの接続
ポリシーを API プロキシに適用するには、フローのプロキシに接続する必要があります。詳細については、UI でのポリシーの接続と構成や XML ファイルでのポリシーの接続と構成など、このセクションの他のトピックをご覧ください。
ポリシーの変更をデプロイする
ポリシーの変更を有効にするには、API プロキシ リビジョンを環境にデプロイする必要があります。ポリシーを接続するか、既存のポリシーを変更した後、Apigee UI または Apigee API を使用して変更をデプロイします。
ポリシー適用の検証
ポリシーが適切に適用されていることを確認するには、HTTP クライアントで API を呼び出す必要があります。Quota 構成を確認するには、割り当て(1 分あたり 1 件のリクエストなど)を設定し、割り当てポリシーで設定した割り当て上限を超える複数のリクエストを API に送信します(下のリクエストで ProxyEndpoint のベースパス設定と同様に構成された URI パスは /weather です)。
http://ORG_NAME-test.apigee.net/weather/forecastrss?w=12797282
1 分以内に複数のリクエストを送信すると、次のエラー メッセージが表示されます。
{
"fault":{
"faultstring":"policies.ratelimit.QuotaViolation",
"detail":{
"errorcode":"policies.ratelimit.QuotaViolation"
}
}
}これは、Quota ポリシーが Apigee によって適用されていることを示します。
ポリシーベースの障害処理
上記のエラー メッセージの形式に注目してください。faultstring プロパティと errorcode プロパティが含まれています。多くの場合、こうしたエラーに対処するためになんらかの動作を実装する必要があります。たとえば、アプリが Quota を超えるデベロッパーに対してカスタム メッセージを発行することもできます。
障害処理の詳細については、障害の処理をご覧ください。
ベスト プラクティス: 共通のポリシーセット
基本的な管理要件を満たすために、API プロキシは通常、以下のポリシーを適用します。
基本的な API キー検証
ProxyEndpoint リクエスト フロー:SpikeArrestXMLThreatProtectionまたはJSONThreatProtection- API キーの検証
QuotaResponseCache
ResponseCache
基本的な変換: JSON から XML
リクエスト フロー:SpikeArrestJSONThreatProtection- API キーの検証
Quota- JSONToXML
XMLToJSONResponseCache