動的プラグインの注文を開始する
動的プラグインの順序付けの一般的なユースケースをいくつかご紹介します。
認証前の流量制限
Kongが認証をリクエストする 前に 、サービスとルートに対するリクエストの量を制限するとしましょう。
この依存関係は、トークンbefore
で記述できます。
次の例は、認証メソッドがKey Authenticationプラグイン であるRate Limiting Advancedプラグインを 使用しています。
ポート8001
でAdmin APIを呼出し、rate-limiting
プラグインを有効にして、key-auth
の前に実行するように構成します。
curl -i -X POST http://localhost:8001/plugins \
--data name=rate-limiting \
--data config.minute=5 \
--data config.policy=local \
--data config.limit_by=ip \
--data ordering.before.access=key-auth
apiVersion: configuration.konghq.com/v1
kind: KongClusterPlugin
metadata:
name: limit-before-key-auth
labels:
global: "true"
annotations:
kubernetes.io/ingress.class: "kong"
config:
minute: 5
policy: local
limit_by: ip
plugin: rate-limiting
ordering:
before:
access:
- key-auth
-
新しい
plugins
セクションをkong.yaml
ファイルの一番下に追加します。rate-limiting
を有効化し、プラグインをkey-auth
の前に実行するように設定します。plugins: - name: rate-limiting config: minute: 5 policy: local limit_by: ip ordering: before: access: - key-auth
ファイルは以下のようになります。
_format_version: "3.0" services: - host: httpbin.org name: example_service port: 80 protocol: http routes: - name: mocking paths: - /mock strip_path: true plugins: - name: rate-limiting config: minute: 5 policy: local limit_by: ip ordering: before: access: - key-auth
このプラグインはグローバルに適用されるため、流量制限はワークスペース内のすべてのサービスとルートを含むすべてのリクエストに適用されます。
既存のサービス、ルート、またはコンシューマにこのプラグインセクションを貼り付けると、流量制限はその特定のエンティティのみに適用されます。
注 :デフォルトでは、プラグインの
enabled
はtrue
に設定されています。enabled: false
を設定することでいつでもプラグインを無効にすることができます。 -
設定を同期します:
deck gateway sync kong.yaml
注: プラグインの動的順序付けに対するKong Managerのサポートは、Kong Gateway 3.1.x以降で利用できます。
-
Kong Managerで、 デフォルト のワークスペースを開きます。
-
メニューから プラグイン を開き、 プラグインのインストール をクリックします。
-
Rate Limiting プラグインを見つけて、 有効にする(Enable) をクリックします。
-
プラグインを グローバル として適用します。これにより、流量制限はワークスペース内のすべてのサービスとルートを含むすべてのリクエストに適用されます。
-
次のフィールドのみに、次のパラメータを入力します。
- config.minute:
5
- config.policy:
local
- config.limit_by:
ip
上記のフィールド以外にも、デフォルト値が設定されているフィールドが存在する場合があります。この例では、残りのフィールドはそのままにしておきます。
- config.minute:
-
インストール をクリックします。
-
Rate Limiting プラグインページで、 順序付け タブをクリックします。
-
注文の追加 をクリックします。
-
アクセス前 で、 プラグインの追加 をクリックしてください。
-
プラグイン ドロップダウンメニューから Key Auth を選択します。
-
更新 をクリックします。
流量制限プラグインは、Kong Gatewayリクエスト認証 前 にデフォルトのワークスペースですべてのサービスとルートに対してリクエスト量を制限するようになりました。
リクエスト変換後の認証
次の例は、認証前に流量制限を行う場合に似ています。
たとえば、最初にリクエストの変換を行い、変換した 後に 認証をリクエストしたい場合があります。この依存関係は、トークン after
で記述できます。
Request Transformer プラグインの順序を変更する代わりに、認証プラグイン の順序を変更できます(この例では、Basic Authentication を使用)。
ポート8001
でAdmin APIを呼び出し、
basic-auth
プラグインをrequest-transformer
の後に実行するように構成して有効にします。
curl -i -X POST http://localhost:8001/plugins \
--data name=basic-auth \
--data ordering.after.access=request-transformer
apiVersion: configuration.konghq.com/v1
kind: KongClusterPlugin
metadata:
name: auth-after-transform
labels:
global: "true"
annotations:
kubernetes.io/ingress.class: "kong"
plugin: basic-auth
ordering:
after:
access:
- request-transformer
-
新しい
plugins
セクションをkong.yaml
ファイルの一番下に追加します。basic-auth
を有効にし、プラグインをrequest-transformer
の後に実行するように設定します。plugins: - name: basic-auth config: {} ordering: after: access: - request-transformer
ファイルは以下のようになります。
_format_version: "3.0" services: - host: httpbin.org name: example_service port: 80 protocol: http routes: - name: mocking paths: - /mock strip_path: true plugins: - name: basic-auth config: {} ordering: after: access: - request-transformer
注 :デフォルトでは、プラグインの
enabled
はtrue
に設定されています。enabled: false
を設定することでいつでもプラグインを無効にすることができます。 -
設定を同期します:
deck gateway sync kong.yaml
注: プラグインの動的順序付けに対するKong Managerのサポートは、Kong Gateway 3.1.x以降で利用できます。
- Kong Managerで、 デフォルト のワークスペースを開きます。
- メニューから プラグイン を開き、 プラグインのインストール をクリックします。
- Basic Authentication プラグインを見つけて、 有効にする をクリックします。
- プラグインを グローバル として適用します。これにより、流量制限はワークスペース内のすべてのサービスとルートを含むすべてのリクエストに適用されます。
- インストール をクリックします。
- ベーシック認証 プラグインページから、 順序付け タブをクリックします。
- 注文の追加 をクリックします。
- アクセス後 に、 プラグインの追加 をクリックします。
- プラグイン1 ドロップダウンメニューから、 Request Transformer を選択します。
- 更新 をクリックします。
ベーシック認証プラグインは、リクエストが変換された後に認証をリクエストするようになりました。