Red Hat Developer Hub の監査ログ
Red Hat Developer Hub 監査ログを使用して、ユーザーアクティビティー、システムイベント、データ変更を追跡する
概要
第1章 Red Hat Developer Hub の監査ログ リンクのコピーリンクがクリップボードにコピーされました!
監査ログは、Red Hat Developer Hub のユーザー、管理者、またはコンポーネントに影響するユーザーアクティビティー、システムイベント、およびデータ変更を記録した時系列のレコードのセットです。管理者は、OpenShift Container Platform Web コンソールで Developer Hub 監査ログを表示して、scaffolder イベント、RBAC システムの変更、カタログデータベースの変更を監視できます。監査ログには次の情報が含まれます。
- 監査対象イベントの名前
- 監査対象イベントをトリガーしたアクター (ターミナル、ポート、IP アドレス、ホスト名など)
- イベントのメタデータ (日付、時刻など)
-
イベントのステータス (
success、failureなど) -
重大度 (
info、debug、warn、errorなど)
監査ログの情報を使用すると、次の目的を達成できます。
- セキュリティーの強化
- 自動化システムやソフトウェアテンプレートによって開始されたアクティビティーも含め、アクティビティーをソースまで追跡できます。ソフトウェアテンプレートがいつ実行されたか、またアプリケーションとコンポーネントのインストール、更新、設定の変更、削除の詳細を把握できます。
- コンプライアンスの自動化
- 効率的なプロセスを使用して、監査目的または継続的なコンプライアンス維持のために、特定の時点のログデータを表示できます。
- 問題のデバッグ
- アクセスレコードとアクティビティーの詳細を使用して、ソフトウェアテンプレートやプラグインの問題を修正できます。
監査ログは、デフォルトでは内部ログストアに転送されません。内部ログストアには、セキュアなストレージがないためです。お客様の責任において、監査ログを転送するシステムが組織および政府の規制に準拠し、適切に保護されていることを確認してください。
第2章 OpenShift Container Platform で Developer Hub の監査ログを設定する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、Developer Hub の監査ログを使用するように次の OpenShift Container Platform ロギングコンポーネントを設定します。
- ロギングのデプロイメント
- 各ロギングコンポーネントの CPU とメモリーの制限を含むロギング環境を設定します。詳細は、Red Hat OpenShift Container Platform - ロギングデプロイメントの設定 を参照してください。
- ロギングコレクター
-
ClusterLoggingカスタムリソース (CR) のspec.collectionスタンザを設定して、サポートされているログコレクターの変更を使用し、STDOUTからログを収集します。詳細は、Red Hat OpenShift Container Platform - ログコレクターの設定 を参照してください。 - ログ転送
-
ClusterLogForwarderCR で出力とパイプラインの組み合わせを指定して、OpenShift Container Platform クラスター内外の特定のエンドポイントにログを送信します。詳細は、Red Hat OpenShift Container Platform - JSON ログ転送の有効化 および Red Hat OpenShift Container Platform - ログ転送の設定 を参照してください。
2.1. Red Hat Developer Hub 監査ログを Splunk に転送 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Logging (OpenShift Logging) Operator と ClusterLogForwarder インスタンスを使用して、Developer Hub インスタンスからストリーミングされた監査ログをキャプチャーし、Splunk インスタンスに関連付けられた HTTPS エンドポイントに転送できます。
前提条件
- サポートされている OpenShift Container Platform バージョンでクラスターが実行されている。
-
cluster-admin権限を持つアカウントがある。 - Splunk Cloud アカウントがあるか、Splunk Enterprise がインストールされている。
手順
- OpenShift Container Platform クラスターにログインします。
OpenShift Logging Operator を
openshift-loggingnamespace にインストールし、namespace に切り替えます。namespace に切り替えるコマンドの例
oc project openshift-logginglog-collectorという名前のserviceAccountを作成し、collect-application-logsロールをserviceAccountにバインドします。serviceAccountを作成するためのコマンド例oc create sa log-collectorロールを
serviceAccountにバインドするコマンドの例oc create clusterrolebinding log-collector --clusterrole=collect-application-logs --serviceaccount=openshift-logging:log-collector-
Splunk インスタンスで
hecTokenを生成します。 openshift-loggingnamespace にキー/値シークレットを作成し、そのシークレットを検証します。hecTokenを使用してキー/値シークレットを作成するコマンドの例oc -n openshift-logging create secret generic splunk-secret --from-literal=hecToken=<HEC_Token>シークレットを検証するコマンドの例
oc -n openshift-logging get secret/splunk-secret -o yaml次のように、基本的な `ClusterLogForwarder` リソース YAML ファイルを作成します。
`ClusterLogForwarder` リソースの YAML ファイルの例
apiVersion: logging.openshift.io/v1 kind: ClusterLogForwarder metadata: name: instance namespace: openshift-logging詳細は、ログフォワーダーの作成 を参照してください。
OpenShift Web コンソールまたは OpenShift CLI を使用して、次の
ClusterLogForwarder設定を定義します。YAML ファイルで、
log-collectorをserviceAccountとして指定します。serviceAccount設定例serviceAccount: name: log-collector転送するログの種類とソースを指定するには、
inputsを設定します。次の設定により、フォワーダーは指定された namespace 内のすべてのアプリケーションからログをキャプチャーできるようになります。inputs設定の例inputs: - name: my-app-logs-input type: application application: includes: - namespace: my-rhdh-project containerLimit: maxRecordsPerSecond: 100詳細は、特定の Pod からのアプリケーションログの転送 を参照してください。
出力を設定して、キャプチャーされたログの送信先を指定します。このステップでは、
splunkタイプに焦点を当てます。Splunk エンドポイントが自己署名 TLS 証明書を使用する場合はtls.insecureSkipVerifyオプションを使用するか (非推奨)、Secret を使用して証明書チェーンを提供できます。outputs設定の例outputs: - name: splunk-receiver-application type: splunk splunk: authentication: token: key: hecToken secretName: splunk-secret index: main url: 'https://my-splunk-instance-url' rateLimit: maxRecordsPerSecond: 250詳細は、OpenShift Container Platform ドキュメントの Splunk へのログの転送 を参照してください。
オプション: 監査ログのみを含めるようにログをフィルタリングします。
filters設定例filters: - name: audit-logs-only type: drop drop: - test: - field: .message notMatches: isAuditEvent詳細は、OpenShift Container Platform ドキュメントの コンテンツによるログのフィルタリング を参照してください。
特定の入力から指定された出力にログをルーティングするようにパイプラインを設定します。定義された入力と出力の名前を使用して、各パイプラインで複数の
inputRefsとoutputRefsを指定します。pipelines設定の例pipelines: - name: my-app-logs-pipeline detectMultilineErrors: true inputRefs: - my-app-logs-input outputRefs: - splunk-receiver-application filterRefs: - audit-logs-only
ClusterLogForwarder設定を適用するには、次のコマンドを実行します。ClusterLogForwarder設定を適用するコマンドの例oc apply -f <ClusterLogForwarder-configuration.yaml>オプション: ログ損失のリスクを軽減するには、次のオプションを使用して
ClusterLogForwarderPod を設定します。ログコレクターのリソース要求と制限を次のように定義します。
collector設定の例collector: resources: requests: cpu: 250m memory: 64Mi ephemeral-storage: 250Mi limits: cpu: 500m memory: 128Mi ephemeral-storage: 500Midelivery、compression、RetryDurationなど、ログ配信のtuningオプションを定義します。必要に応じて出力ごとにチューニングを適用できます。tuning設定の例tuning: delivery: AtLeastOnce1 compression: none minRetryDuration: 1s maxRetryDuration: 10s- 1
AtLeastOnce配信モードとは、ログフォワーダーがクラッシュしたり再起動したりした場合に、クラッシュ前に読み取られたにもかかわらず宛先に送信されなかったログが、再送信されることを意味します。クラッシュ後に一部のログが重複している可能性があります。
検証
- Splunk ダッシュボードでログを表示して、ログが Splunk インスタンスに転送されていることを確認します。
- 必要に応じて、OpenShift Container Platform と Splunk ログを使用して問題をトラブルシューティングします。
第3章 Developer Hub の監査ログの表示 リンクのコピーリンクがクリップボードにコピーされました!
管理者は、Red Hat OpenShift Container Platform Web コンソールからログデータを表示、検索、フィルタリング、管理できます。isAuditEvent フィールドを使用して、監査ログを他のログタイプからフィルターできます。
前提条件
- OpenShift Container Platform Web コンソールに管理者としてログインしている。
手順
- OpenShift Container Platform Web コンソールの Developer 視点から、Topology タブをクリックします。
- Topology ビューから、監査ログデータを表示する Pod をクリックします。
- Pod パネルから、Resources タブをクリックします。
- Resources タブの Pods セクションで、View logs をクリックします。
-
Logs ビューから、Search フィールドに
isAuditEventと入力して、監査ログを他のログタイプからフィルターします。矢印を使用して、isAuditEventフィールドを含むログを参照できます。