13.3. OpenShift Container Platform OAuth サーバーをアイデンティティープロバイダーとして設定

OpenShift Container Platform には、Red Hat Advanced Cluster Security for Kubernetes (RHACS) の認証プロバイダーとして使用できる組み込みの OAuth サーバーが含まれています。

13.3.1. OpenShift Container Platform OAuth サーバーを Red Hat Advanced Cluster Security for Kubernetes の ID プロバイダーとして設定

組み込みの OpenShift Container Platform OAuth サーバーを Red Hat Advanced Cluster Security for Kubernetes (RHACS) の ID プロバイダーとして統合するには、このセクションの手順を使用します。

前提条件

  • RHACS で ID プロバイダーを設定するには、AuthProvider 権限が必要である。
  • ID プロバイダーを介して OpenShift Container Platform OAuth サーバーでユーザーおよびグループをすでに設定しておく必要がある。ID プロバイダーの要件は、ID プロバイダーの設定の概要 を参照すること。
注記

以下の手順では、OpenShift Container Platform OAuth サーバー用に central という名前のメインルートを 1 つだけ設定します。

手順

  1. RHACS ポータルで、Platform ConfigurationAccess Control に移動します。
  2. Add an Auth Provider メニューを開き、OpenShift Auth を選択します。
  3. Name フィールドに認証プロバイダーの名前を入力します。
  4. 選択した ID プロバイダーを使用して RHACS にアクセスするユーザーの 最小アクセスルール を選択します。

    ヒント

    セキュリティーのため、セットアップの完了時に、Minimum access roleNone に設定する事を Red Hat は推奨します。後で、Access Control ページに戻って、ID プロバイダーのユーザーメタデータに基づいて、より調整されたアクセスルールを設定できます。

  5. オプション: RHACS にアクセスするユーザーとグループのアクセスルールを追加するには、Rules セクションで Add new rule をクリックし、ルール情報を入力して Save をクリックします。アクセスを設定するには、ユーザーまたはグループの属性が必要です。

    ヒント

    グループは通常、チームまたはアクセス許可セットに関連付けられており、ユーザーよりも頻繁に変更する必要がないため、グループマッピングはより堅牢です。

    OpenShift Container Platform でユーザー情報を取得するには、以下のいずれかの方法を使用できます。

    • User ManagementUsers<username> → YAML をクリックします。
    • k8s/cluster/user.openshift.io~v1~User/<username>/yaml ファイルにアクセスし、nameuid (RHACS のuserid)、および groups の値を書き留めます。
    • OpenShift Container Platform API リファレンス で説明されているように、OpenShift Container Platform API を使用します。

    次の設定例では、次の属性を持つ Admin ロールのルールを設定する方法について説明します。

    • name: administrator
    • groups: ["system:authenticated", "system:authenticated:oauth", "myAdministratorsGroup"]
    • uid: 12345-00aa-1234-123b-123fcdef1234

    次のいずれかの手順を使用して、この管理者ロールのルールを追加できます。

    • 名前のルールを設定するには、Key ドロップダウンリストから name を選択し、Value フィールドに administrator と入力して、RoleAdministrator を選択します。
    • グループのルールを設定するには、Key ドロップダウンリストから groups を選択し、Value フィールドに myAdministratorsGroup と入力して、RoleAdmin を選択します。
    • ユーザー名のルールを設定するには、Key ドロップダウンリストから userid を選択し、Value フィールドに 12345-00aa-1234-123b-123fcdef1234 を入力して、RoleAdmin を選択します。
重要
  • OpenShift Container Platform OAuth サーバーにカスタム TLS 証明書を使用する場合は、CA のルート証明書を信頼されたルート CA として Red Hat Advanced Cluster Security for Kubernetes に追加する必要があります。そうしないと、Central は OpenShift Container Platform OAuth サーバーに接続できません。
  • roxctl CLI を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールするときに OpenShift Container Platform OAuth サーバー統合を有効にするには、Central で ROX_ENABLE_OPENSHIFT_AUTH 環境変数を true に設定します。

    $ oc -n stackrox set env deploy/central ROX_ENABLE_OPENSHIFT_AUTH=true
  • アクセスルールの場合、OpenShift Container Platform OAuth サーバーはキー Email を返しません。

13.3.2. OpenShift Container Platform OAuth サーバーの追加ルートの作成

Red Hat Advanced Cluster Security for Kubernetes ポータルを使用して OpenShift Container Platform OAuth サーバーを ID プロバイダーとして設定すると、RHACS は OAuth サーバーのルートを 1 つだけ設定します。ただし、Central カスタムリソースで注釈として指定することにより、追加のルートを作成できます。

手順

  • RHACS Operator を使用して RHACS をインストールした場合:

    1. Central カスタムリソースのパッチを含む CENTRAL_ADDITIONAL_ROUTES 環境変数を作成します。

      $ CENTRAL_ADDITIONAL_ROUTES='
      spec:
        central:
          exposure:
            loadBalancer:
              enabled: false
              port: 443
            nodePort:
              enabled: false
            route:
              enabled: true
          persistence:
            persistentVolumeClaim:
              claimName: stackrox-db
        customize:
          annotations:
            serviceaccounts.openshift.io/oauth-redirecturi.main: sso/providers/openshift/callback 1
            serviceaccounts.openshift.io/oauth-redirectreference.main: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"central\"}}" 2
            serviceaccounts.openshift.io/oauth-redirecturi.second: sso/providers/openshift/callback 3
            serviceaccounts.openshift.io/oauth-redirectreference.second: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"second-central\"}}" 4
      '
      1
      メインルートを設定するためのリダイレクト URI。
      2
      メインルートのリダイレクト URI 参照。
      3
      2 番目のルートを設定するためのリダイレクト。
      4
      2 番目のルートのリダイレクト参照。
    2. CENTRAL_ADDITIONAL_ROUTES パッチを Central カスタムリソースに適用します。

      $ oc patch centrals.platform.stackrox.io \
        -n <namespace> \ 1
        <custom-resource> \ 2
        --patch "$CENTRAL_ADDITIONAL_ROUTES" \
        --type=merge
      1
      <namespace> を、Central カスタムリソースを含むプロジェクトの名前に置き換えます。
      2
      <custom-resource> を Central カスタムリソースの名前に置き換えます。
  • または、Helm を使用して RHACS をインストールした場合:

    1. 次のアノテーションを values-public.yaml ファイルに追加します。

      customize:
        central:
          annotations:
            serviceaccounts.openshift.io/oauth-redirecturi.main: sso/providers/openshift/callback 1
            serviceaccounts.openshift.io/oauth-redirectreference.main: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"central\"}}" 2
            serviceaccounts.openshift.io/oauth-redirecturi.second: sso/providers/openshift/callback 3
            serviceaccounts.openshift.io/oauth-redirectreference.second: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"second-central\"}}" 4
      1
      メインルートを設定するためのリダイレクト。
      2
      メインルートのリダイレクトリファレンス。
      3
      2 番目のルートを設定するためのリダイレクト。
      4
      2 番目のルートのリダイレクト参照。
    2. helm upgrade を使用して、Central カスタムリソースにカスタムアノテーションを適用します。

      $ helm upgrade -n stackrox \
        stackrox-central-services rhacs/central-services \
        -f <path_to_values_public.yaml> 1
      1
      -f オプションを使用して、values-public.yaml 設定ファイルのパスを指定します。