4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【IBM API Connect】APIガバナンスのGovernance enforcementを試してみた

4
Last updated at Posted at 2025-12-12

本記事で紹介している機能はTechnology Previewであり、今後のリリースで変更される可能性があります。

API Connectのバージョン10.0.10.0 では「Governance enforcement (Technology Preview)」の機能が追加されており、API Productがカタログに公開される前に、ガバナンス機能を使用して強制的に検証することが可能となります。

Enforcementを有効化している場合、ルールセットでerrorが検出された際にプロダクト公開可否の判定を設定可能です。​
(例:設定がStrictの場合は、エラーがある限り公開不可など)

APIガバナンス機能の詳細と、ルールセットの登録・スキャン方法等はこちらの記事を参照してください。

ルールセットとテスト用APIの登録

まずはガバナンスルールセットとテスト用のAPIを登録します。
詳細な方法については上記Qiita記事を参照してください。

今回使用するルールセットはこちらです。

extends:
  - "spectral:oas"
formats:
  - oas3
rules:
  require-gatewayscript-in-assembly:
    description: "アセンブリーフローに少なくとも1つ 'gatewayscript' ポリシーが含まれていることを求めます。"
    message: "アセンブリに 'gatewayscript' が見つかりません。少なくとも1つ追加してください。"
    severity: error
    given: $.x-ibm-configuration.assembly.execute
    then:
      - function: schema
        functionOptions:
          schema:
            type: array
            contains:
              type: object
              required: ["gatewayscript"]
  require-parse-in-assembly:
    description: "アセンブリーフローに少なくとも1つ 'parse' ポリシーが含まれていることを求めます。"
    message: "アセンブリに 'parse' が見つかりません。少なくとも1つ追加してください。"
    severity: error
    given: $.x-ibm-configuration.assembly.execute
    then:
      - function: schema
        functionOptions:
          schema:
            type: array
            contains:
              type: object
              required: ["parse"]

こちらのルールセットを公開しておきます。
image.png

今回はスキャン対象のAPIとして、以下のリンクに記載のサンプルAPIを使用します。

(ただし、同様のAPIがデフォルトでSandboxカタログに登録されていたため、一部内容を編集して使用しました。)
https://github.com/ibm-apiconnect/sample-orders-api/blob/main/api/orders_api.yaml

こちらをドラフト状態で登録しておきます。

また、このルールセットを公開する用のカタログを別途作成しておきます。

エンフォースメント ルールの選択

管理→エンフォースメントルールを設定したいカタログを選択します。

ガバナンスタブを開き、適用→追加をクリックします。

image.png

先ほど追加したルールセットを選択します。
今回はAPIルールセットを使用しますが、製品のルールセットを選択することも可能です。
image.png

適用規則を選択します。
image.png

規則について、ドキュメントにおけるそれぞれの詳細は以下のとおりです。(2025/12/12時点)

実施タイプ 説明
ソフト ソフトエンフォースメントでは、適用されたルールセットによって検出されたエラーによってバリデーションに失敗しても、APIと製品は公開される。 ガバナンス検証タスクは、カタログのガバナンス実施タスクタブのタスクの下に作成される。 実施結果を表示するには、リストから該当するタスクを選択する。 ソフトエンフォースメントタイプは、より柔軟な検証プロセスを可能にする。
承認 承認実施において、適用されたルールセットによって検出されたエラーにより検証に失敗した場合、APIと製品は公開されない。 その代わり、承認のリクエストは、レビューのために管理者に送信されます。 管理者は掲載を承認または却下しなければならない。 ガバナンス検証承認タスクは、カタログのガバナンス実施タスクタブのタスクの下に作成される。 管理者は、リストから該当するタスクを選択することで、実施結果を見ることができる。 ガバナンス承認タスクを閲覧できるのは、以下の権限を持つ組織メンバーのみです:
governance-enforcement-approval: view
governance-enforcement-approval: manage
管理者がタスクを承認または却下するまで、製品はステージングされた状態のままである。 タスクが承認されれば、製品は公開される。 タスクが拒否された場合、APIと製品を再度公開する前に、検証エラーを見直して対処する必要があります。
厳密 厳密な実施では、適用されたルールセットによって検出されたエラーによってバリデーションに失敗した場合、APIと製品は公開されない。 ガバナンス検証タスクは、カタログのガバナンス実施タスクタブのタスクの下に作成される。 実施結果を表示するには、リストから該当するタスクを選択する。 検証エラーがなければ、APIまたは製品が公開される。

今回は試しに、「承認」を選択します。

施行済みルールセットが追加されたことが確認されました。
image.png

ガバナンス実施の有効化

管理→カタログ設定→検証の公開から、編集をクリックします。
image.png

Enable governance enforcement to validate APIs and products with rulesetsをオンにして保存します。
image.png

これで設定は完了です。

動作の確認

この状態で、該当のカタログに対して製品を公開しようとすると、エラーが表示されました。

これは、ガバナンススキャンでエラーが検出されたことによる想定通りの挙動です。
image.png

管理→該当のカタログを選択→タスク→Governance enforcement tasksを選択します。

先ほど公開できなかったAPIについて、タスクが表示されているのが確認できます。

このタスクが閲覧できるのは、以下の権限を持つユーザーのみです。

  • governance-enforcement-approval: view
  • governance-enforcement-approval: manage
    image.png

管理者がタスクを承認または却下するまで、製品はステージングされた状態のままとなります。

タスクが承認されれば製品は公開され、タスクが拒否された場合はAPIと製品を再度公開する前に、検証エラーを見直して対処する必要があります。

上記機能を活用することによって、事前定義したルールセットに準拠する形で、組織のAPIにガバナンスを効かせることが可能となります。

さらに詳しい情報をお探しの方へ

IBMの最新情報、イベント情報、さらに役立つ資料は、以下のIBM Communityでも発信・格納されています。

最新のトレンドや有益な情報をチェックするために、ぜひご覧ください!

  • WebSphere: IBM Community - WebSphere

    WebSphere関連の最新情報やディスカッション、イベント情報、技術資料を公開中!

  • ELM (Engineering Lifecycle Management): IBM Community - ELM

    ELMに関する最新のイベント情報、ナレッジ共有、便利なドキュメントをチェック!

  • Integration: IBM Community - Integration

    Integrationに関する最新のイベント情報、ナレッジ共有、便利なドキュメントをチェック!

4
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?