4.4. シングルモデルサービングプラットフォームの認可プロバイダーの追加


シングルモデルサービングプラットフォームの認可プロバイダーとして Authorino を追加できます。認可プロバイダーを追加すると、プラットフォームにデプロイするモデルに対してトーク認証を有効にできます。これにより、認可されたユーザーのみがモデルに対して推論リクエストを行うことができます。

Authorino を認可プロバイダーとして追加する方法は、シングルモデルサービングプラットフォームのインストール方法により異なります。プラットフォームのインストールオプションは次のとおりです。

自動インストール

OpenShift クラスターに ServiceMeshControlPlane または KNativeServing リソースをまだ作成していない場合は、KServe とその依存関係をインストールするように Red Hat OpenShift AI Operator を設定できます。Authorino を自動インストールプロセスの一部として含めることができます。

Authorino を含む自動インストールの詳細は、KServe の自動インストールの設定 を参照してください。

手動インストール

OpenShift クラスターに ServiceMeshControlPlane または KNativeServing リソースをすでに作成している場合は、KServe とその依存関係をインストールするように Red Hat OpenShift AI Operator を 設定できません。この状況では、KServe を手動でインストールする必要があります。Authorino も手動で設定する必要があります。

Authorino を含む手動インストールの詳細は、KServe の手動インストール を参照してください。

注記

シングルモデルサービングプラットフォームの手動インストール中に、KServe を Unmanaged モードで実行できます。 このモードは、KServe コントローラーのリソース制限の変更など、KServe コンポーネントをより詳細に制御する必要がある場合に便利です。

4.4.1. 認可プロバイダーを手動で追加する

シングルモデルサービングプラットフォームの認可プロバイダーとして Authorino を追加できます。認可プロバイダーを追加すると、プラットフォームにデプロイするモデルに対してトーク認証を有効にできます。これにより、認可されたユーザーのみがモデルに対して推論リクエストを行うことができます。

Authorino を認可プロバイダーとして手動で追加するには、Red Hat - Authorino Operator をインストールし、Authorino インスタンスを作成してから、そのインスタンスを使用するように OpenShift Service Mesh および KServe コンポーネントを設定する必要があります。

重要

認可プロバイダーを手動で追加するには、OpenShift Service Mesh インスタンスの設定を更新する必要があります。OpenShift Service Mesh インスタンスのサポート状態を維持するには、このセクションに示された更新 のみ を行ってください。

前提条件

  • Authorino を認可プロバイダーとして追加するためのオプションを確認し、手動インストールが適切なオプションであることを確認した。認可プロバイダーの追加 を参照してください。
  • OpenShift Service Mesh を含め、KServe とその依存関係が手動でインストールされている。KServe の手動インストール を参照してください。
  • KServe を手動でインストールした際に、serviceMesh コンポーネントの managementState フィールドの値が Unmanaged に設定されている。Authorino を手動で追加する場合はこの設定が必要です。KServe のインストール を参照してください。

4.4.2. Red Hat Authorino Operator のインストール

Authorino を認可プロバイダーとして追加する前に、OpenShift クラスターに Red Hat - Authorino Operator をインストールする必要があります。

前提条件

  • OpenShift クラスターのクラスター管理者権限を持っている。

手順

  1. OpenShift Web コンソールにクラスター管理者としてログインします。
  2. Web コンソールで Operators OperatorHub をクリックします。
  3. OperatorHub ページの Filter by keyword フィールドに、Red Hat - Authorino と入力します。
  4. Red Hat - Authorino Operator をクリックします。
  5. Red Hat - Authorino Operator ページで、Operator 情報を確認して Install をクリックします。
  6. Install Operator ページで、Installation modeInstalled NamespaceUpdate Approval のデフォルト値をそのままにします。

    1. Update channel は、Stable を選択します。
    2. Version には 1.2.1 以降を選択します。
  7. Install をクリックします。

検証

  • OpenShift Web コンソールで、Operators Installed Operators をクリックし、Red Hat - Authorino Operator が以下のいずれかのステータスを示していることを確認します。

    • Installing - インストールが進行中です。Succeeded が表示されるまで待機してください。これには数分かかる場合があります。
    • Succeeded - インストールに成功しました。

4.4.3. Authorino インスタンスの作成

OpenShift クラスターに Red Hat - Authorino Operator をインストールしたら、Authorino インスタンスを作成する必要があります。

前提条件

手順

  1. 新しいターミナルウィンドウを開きます。
  2. 次のように OpenShift コマンドラインインターフェイス (CLI) にログインします。

    $ oc login <openshift_cluster_url> -u <username> -p <password>
    Copy to Clipboard Toggle word wrap
  3. Authorino インスタンスのインストールに使用する namespace を作成します。

    $ oc new-project <namespace_for_authorino_instance>
    Copy to Clipboard Toggle word wrap
    注記

    自動インストールプロセスにより、Authorino インスタンス用に redhat-ods-applications-auth-provider という namespace が作成されます。手動インストールで使用する namespace も同じ名前にすることを検討してください。

  4. 既存の OpenShift Service Mesh インスタンスに Authorino インスタンス用の新しい namespace を登録するには、次の内容で新しい YAML ファイルを作成します。

    apiVersion: maistra.io/v1
    kind: ServiceMeshMember
    metadata:
      name: default
      namespace: <namespace_for_authorino_instance>
    spec:
      controlPlaneRef:
        namespace: <namespace_for_service_mesh_instance>
        name: <name_of_service_mesh_instance>
    Copy to Clipboard Toggle word wrap
  5. YAML ファイルを保存します。
  6. クラスター上に ServiceMeshMember リソースを作成します。

    $ oc create -f <file_name>.yaml
    Copy to Clipboard Toggle word wrap
  7. Authorino インスタンスを設定するには、次の例に示すように新しい YAML ファイルを作成します。

    apiVersion: operator.authorino.kuadrant.io/v1beta1
    kind: Authorino
    metadata:
      name: authorino
      namespace: <namespace_for_authorino_instance>
    spec:
      authConfigLabelSelectors: security.opendatahub.io/authorization-group=default
      clusterWide: true
      listener:
        tls:
          enabled: false
      oidcServer:
        tls:
          enabled: false
    Copy to Clipboard Toggle word wrap
  8. YAML ファイルを保存します。
  9. クラスター上に Authorino リソースを作成します。

    $ oc create -f <file_name>.yaml
    Copy to Clipboard Toggle word wrap
  10. Authorino デプロイメントにパッチを適用して Istio サイドカーを注入し、Authorino インスタンスを OpenShift Service Mesh インスタンスの一部にします。

    $ oc patch deployment <name_of_authorino_instance> -n <namespace_for_authorino_instance> -p '{"spec": {"template":{"metadata":{"labels":{"sidecar.istio.io/inject":"true"}}}} }'
    Copy to Clipboard Toggle word wrap

検証

  • 以下の手順で、Authorino インスタンスが実行されていることを確認します。

    1. 次の例のとおり、Authorino インスタンス用に作成した namespace で実行されている Pod (およびコンテナー) を確認します。

      $ oc get pods -n redhat-ods-applications-auth-provider -o="custom-columns=NAME:.metadata.name,STATUS:.status.phase,CONTAINERS:.spec.containers[*].name"
      Copy to Clipboard Toggle word wrap
    2. 出力が次の例のようになっていることを確認します。

      NAME                         STATUS    CONTAINERS
      authorino-6bc64bd667-kn28z   Running   authorino,istio-proxy
      Copy to Clipboard Toggle word wrap

      例が示すとおり、Authorino インスタンスには実行中の Pod が 1 つあります。Pod には、Authorino 用のコンテナーと、注入した Istio サイドカー用のコンテナーがあります。

4.4.4. Authorino を使用するための OpenShift Service Mesh インスタンス設定

Authorino インスタンスを作成したら、Authorino を認可プロバイダーとして使用するように OpenShift Service Mesh インスタンスを設定する必要があります。

重要

OpenShift Service Mesh インスタンスがサポートのサポート状態維持するには、次の手順に示す設定の更新 のみ を行ってください。

前提条件

  • Authorino インスタンスが作成され、OpenShift Service Mesh インスタンスに Authorino インスタンスの namespace が登録されている。
  • OpenShift Service Mesh インスタンスを変更する権限がある。OpenShift Service Mesh インスタンスの作成 を参照してください。

手順

  1. OpenShift Service Mesh インスタンスの更新権限を持つユーザーとして OpenShift クラスターにログインしていない場合は、次の例のとおりターミナルウィンドウで OpenShift CLI にログインします。

    $ oc login <openshift_cluster_url> -u <username> -p <password>
    Copy to Clipboard Toggle word wrap
  2. 次の内容で新しい YAML ファイルを作成します。

    spec:
     techPreview:
       meshConfig:
         extensionProviders:
         - name: redhat-ods-applications-auth-provider
           envoyExtAuthzGrpc:
             service: <name_of_authorino_instance>-authorino-authorization.<namespace_for_authorino_instance>.svc.cluster.local
             port: 50051
    Copy to Clipboard Toggle word wrap
  3. YAML ファイルを保存します。
  4. oc patch コマンドを使用して、YAML ファイルを OpenShift Service Mesh インスタンスに適用します。

    $ oc patch smcp <name_of_service_mesh_instance> --type merge -n <namespace_for_service_mesh_instance> --patch-file <file_name>.yaml
    Copy to Clipboard Toggle word wrap
    重要

    OpenShift Service Mesh インスタンスで他のエクステンションプロバイダーを指定していない場合に 限り、パッチとして表示される設定を適用できます。他のエクステンションプロバイダーをすでに指定している場合は、ServiceMeshControlPlane リソースを手動で編集して設定を追加する必要があります。

検証

  • 以下の手順を実行して、Authorino インスタンスが OpenShift Service Mesh 設定にエクステンションプロバイダーとして追加されていることを確認します。

    1. OpenShift Service Mesh インスタンスの ConfigMap オブジェクトを検査します。

      $ oc get configmap istio-<name_of_service_mesh_instance> -n <namespace_for_service_mesh_instance> --output=jsonpath={.data.mesh}
      Copy to Clipboard Toggle word wrap
    2. 次の例のような出力が表示されることを確認します。これは、Authorino インスタンスがエクステンションプロバイダーとして正常に追加されたことを示しています。

      defaultConfig:
        discoveryAddress: istiod-data-science-smcp.istio-system.svc:15012
        proxyMetadata:
          ISTIO_META_DNS_AUTO_ALLOCATE: "true"
          ISTIO_META_DNS_CAPTURE: "true"
          PROXY_XDS_VIA_AGENT: "true"
        terminationDrainDuration: 35s
        tracing: {}
      dnsRefreshRate: 300s
      enablePrometheusMerge: true
      extensionProviders:
      - envoyExtAuthzGrpc:
          port: 50051
          service: authorino-authorino-authorization.opendatahub-auth-provider.svc.cluster.local
        name: opendatahub-auth-provider
      ingressControllerMode: "OFF"
      rootNamespace: istio-system
      trustDomain: null%
      Copy to Clipboard Toggle word wrap

4.4.5. KServe の認可設定

Authorino を使用するようにシングルモデルサービングプラットフォームを設定するには、モデルのデプロイ時に作成される KServe プリディクター Pod に適用されるグローバル AuthorizationPolicy リソースを作成する必要があります。さらに、モデルに対して推論リクエストを行うときに発生する複数のネットワークホップを考慮するには、HTTP ホストヘッダーを最初に推論リクエストに含まれていたものに継続的にリセットする EnvoyFilter リソースを作成する必要があります。

前提条件

  • Authorino インスタンスを作成し、それを使用するように OpenShift Service Mesh を設定した。
  • クラスター上の KServe デプロイメントを更新する権限がある。
  • OpenShift Service Mesh インスタンスが作成されたプロジェクトにリソースを追加する権限がある。OpenShift Service Mesh インスタンスの作成 を参照してください。

手順

  1. KServe デプロイメントの更新権限を持つユーザーとして OpenShift クラスターにログインしていない場合は、次の例のとおりターミナルウィンドウで OpenShift CLI にログインします。

    $ oc login <openshift_cluster_url> -u <username> -p <password>
    Copy to Clipboard Toggle word wrap
  2. 次の内容で新しい YAML ファイルを作成します。

    apiVersion: security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
      name: kserve-predictor
    spec:
      action: CUSTOM
      provider:
         name: redhat-ods-applications-auth-provider 
    1
    
      rules:
         - to:
              - operation:
                   notPaths:
                      - /healthz
                      - /debug/pprof/
                      - /metrics
                      - /wait-for-drain
      selector:
         matchLabels:
            component: predictor
    Copy to Clipboard Toggle word wrap
    1
    指定する名前は、OpenShift Service Mesh インスタンスに追加したエクステンションプロバイダーの名前と一致する必要があります。
  3. YAML ファイルを保存します。
  4. OpenShift Service Mesh インスタンスの namespace に AuthorizationPolicy リソースを作成します。

    $ oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yaml
    Copy to Clipboard Toggle word wrap
  5. 次の内容で、別の新しい YAML ファイルを作成します。

    apiVersion: networking.istio.io/v1alpha3
    kind: EnvoyFilter
    metadata:
      name: activator-host-header
    spec:
      priority: 20
      workloadSelector:
        labels:
          component: predictor
      configPatches:
      - applyTo: HTTP_FILTER
        match:
          listener:
            filterChain:
              filter:
                name: envoy.filters.network.http_connection_manager
        patch:
          operation: INSERT_BEFORE
          value:
            name: envoy.filters.http.lua
            typed_config:
              '@type': type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
              inlineCode: |
               function envoy_on_request(request_handle)
                  local headers = request_handle:headers()
                  if not headers then
                    return
                  end
                  local original_host = headers:get("k-original-host")
                  if original_host then
                    port_seperator = string.find(original_host, ":", 7)
                    if port_seperator then
                      original_host = string.sub(original_host, 0, port_seperator-1)
                    end
                    headers:replace('host', original_host)
                  end
                end
    Copy to Clipboard Toggle word wrap

    示されている EnvoyFilter リソースは、HTTP ホストヘッダーを、推論リクエストに最初に含まれていたものに継続的にリセットします。

  6. OpenShift Service Mesh インスタンスの namespace に EnvoyFilter リソースを作成します。

    $ oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yaml
    Copy to Clipboard Toggle word wrap

検証

  • AuthorizationPolicy リソースが正常に作成されたことを確認します。

    $ oc get authorizationpolicies -n <namespace_for_service_mesh_instance>
    Copy to Clipboard Toggle word wrap

    次の例のような出力が表示されることを確認します。

    NAME               AGE
    kserve-predictor   28h
    Copy to Clipboard Toggle word wrap
  • EnvoyFilter リソースが正常に作成されたことを確認します。

    $ oc get envoyfilter -n <namespace_for_service_mesh_instance>
    Copy to Clipboard Toggle word wrap

    次の例のような出力が表示されることを確認します。

    NAME                                          AGE
    activator-host-header                         28h
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る