10.3. カスタムルールによる監査ログポリシーの設定

カスタムルールを定義する監査ログポリシーを設定できます。複数のグループを指定し、対象のグループに使用するプロファイルを定義できます。

これらのカスタムルールは最上位のプロファイルフィールドよりも優先されます。カスタムルールはトップダウンで評価され、最初に一致するものが適用されます。

重要

最上位のプロファイルフィールドが None に設定されている場合、カスタムルールは無視されます。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  1. APIServer リソースを編集します。

    $ oc edit apiserver cluster
  2. spec.audit.customRules フィールドを追加します。

    apiVersion: config.openshift.io/v1
    kind: APIServer
    metadata:
    ...
    spec:
      audit:
        customRules:                        1
        - group: system:authenticated:oauth
          profile: WriteRequestBodies
        - group: system:authenticated
          profile: AllRequestBodies
        profile: Default                    2
    1
    1 つ以上のグループを追加し、そのグループに使用するプロファイルを指定します。これらのカスタムルールは最上位のプロファイルフィールドよりも優先されます。カスタムルールはトップダウンで評価され、最初に一致するものが適用されます。
    2
    DefaultWriteRequestBodies、または AllRequestBodies に設定されます。この最上位のプロファイルフィールドを設定しない場合、デフォルトは Default プロファイルになります。
    警告

    カスタムルールを使用する場合は、最上位のプロファイルフィールドを None に設定しないでください。最上位のプロファイルフィールドが None に設定されている場合、カスタムルールは無視されます。

  3. 変更を適用するためにファイルを保存します。

検証

  • Kubernetes API サーバー Pod の新規リビジョンがロールアウトされていることを確認します。すべてのノードが新規リビジョンに更新されるまで数分かかる場合があります。

    $ oc get kubeapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="NodeInstallerProgressing")]}{.reason}{"\n"}{.message}{"\n"}'

    Kubernetes API サーバーの NodeInstallerProgressing 状況条件を確認し、すべてのノードが最新のリビジョンであることを確認します。更新が正常に実行されると、この出力には AllNodesAtLatestRevision が表示されます。

    AllNodesAtLatestRevision
    3 nodes are at revision 12 1
    1
    この例では、最新のリビジョン番号は 12 です。

    出力に以下のようなメッセージが表示される場合は、更新が進行中です。数分待機した後に再試行します。

    • 3 nodes are at revision 11; 0 nodes have achieved new revision 12
    • 2 nodes are at revision 11; 1 nodes are at revision 12