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

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

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

前提条件

  • 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
    DefaultWriteRequestBodiesAllRequestBodies または None に設定されます。この最上位の audit.profile フィールドを設定しない場合には、デフォルトは Default プロファイルに設定されます。
    警告

    問題のトラブルシューティング時に有用なデータが記録されないリスクを完全に理解していない限り、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