コンテナ動作監査を使用すると、コンテナ内のさまざまなユーザーによって実行および実行されるコマンドと操作を監査できます。 このトピックでは、コンテナ動作監査の設定方法、Log Service を使用して監査ログを収集および分析する方法、および監査ログに基づいてカスタムアラートルールを作成する方法について説明します。
課金
コンテナ動作監査機能は無料で使用できます。 コンテナ動作監査をアクティブ化すると、関連する Simple Log Service 機能が使用され、これらの機能に対して料金が請求されます。 SLS の課金について詳しくは、「課金概要」をご参照ください。
制限
クラスタタイプ: ACK マネージド Pro クラスタ、ACK マネージド Basic クラスタ、および ACK 専用クラスタのみがサポートされています。
クラスタの制限: カーネルバージョンが 4.19 以後の Alibaba Cloud Linux、Ubuntu、および ContainerOS オペレーティングシステムのみが、コンテナ動作監査をサポートしています。
Alibaba Cloud Linux: クラスタの Kubernetes バージョンは 1.18 以降です。
ContainerOS: クラスタの Kubernetes バージョンは 1.24 以降です。
Ubuntu:
クラスタの Kubernetes バージョンは 1.30 以上です。 詳細については、「ACK クラスタを手動でアップグレードする」をご参照ください。
ノードの初期化中に、OS の自動アップグレードは無効になっています。
Cloud Parallel File Storage (CPFS) ボリューム、イメージアクセラレーションプラグイン、およびセキュリティ強化はサポートされていません。
ステップ 1: コンテナ動作監査を有効にする
コンテナ動作監査機能を使用するには、[チケットを送信]します。
コンテナ動作監査機能は、以下の手順に従って有効にできます。 有効にすると、次の 2 つのコンポーネントがインストールされます。
ログ収集コンポーネント: 監査ログを Log Service に収集し、デフォルトの監査レポートを作成します。
ack-advanced-audit: コンテナ動作監査を実装します。
デフォルトでは、ログ収集コンポーネントで使用されるプロジェクトに、advaudit-${cluster_id} という名前のログストアが作成されます。 ログストアは、監査ログを保存するために使用されます。 監査ログの保持期間は 180 日です。 保持期間の変更方法について詳しくは、「ログストアを管理する」をご参照ください。
ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、目的のクラスタを見つけて名前をクリックします。 左側のペインで、 を選択します。
[監査] ページで、[コンテナ監査] タブをクリックし、[インストール] をクリックします。
ステップ 2: 監査レポートを表示する
[監査] ページで、[コンテナ監査] タブをクリックします。 次に、[コンテナ監査の概要] タブをクリックします。 タブで監査レポートを表示できます。
ポッドへのアクセス数とポッド情報を表示します。

Kubernetes 操作を実行したアカウント、ポッドで実行されたコマンド、および一般的な高リスク操作を表示します。



ステップ 3: 詳細なログデータを表示する
次の方法を使用して、詳細なログデータを表示できます。
監査レポートページで詳細なログデータを表示します。 この方法は、イベントのログを確認するのに適しています。
ログストアページでクエリステートメントを実行します。 この方法は、複雑なシナリオで履歴データとイベントを確認するのに適しています。
監査レポートページで詳細なログデータを表示する
[コンテナ監査の概要] ページで、[高リスク操作] セクションの [traceId] 列と [eventId] 列のハイパーリンクをクリックします。
[traceId] 列のハイパーリンクをクリックすると、各アクセスの際にポッドで実行されたコマンドの監査ログが表示されます。
[eventId] 列のハイパーリンクをクリックすると、コマンドの詳細が表示されます。
ログストアページでクエリステートメントを実行する
[コンテナ監査ログのクエリ] ページで、クエリを実行して詳細なログデータを表示できます。
ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、目的のクラスタを見つけて名前をクリックします。 左側のペインで、 を選択します。
[監査] ページで、[コンテナ監査] タブをクリックします。 次に、[コンテナ監査ログのクエリ] タブをクリックします。
検索ボックスにクエリステートメントを入力します。
ポッドで実行されたコマンドの監査ログをクエリする: * and k8s.pod.namespace: <namespace> and k8s.pod.name: <pod_name> と入力します。 <namespace> をポッドの名前空間に、<pod_name> をポッドの名前に置き換えます。
プログラムを実行するために行われた操作の監査ログをクエリする: * and process.name: <name> と入力します。 <name> をプログラムの名前に置き換えます。
ログデータをクエリする方法について詳しくは、「クエリメソッド」をご参照ください。
クエリの時間範囲を指定します。 次に、[検索と分析] をクリックして、クエリと分析結果を表示します。
(オプション) ステップ 4: 監査ログに基づいてアラートルールを作成する
Log Service が提供するアラート機能を使用して、監査ログに基づいてリアルタイムでアラートを生成できます。 これにより、ポッド内の重要な操作イベントをできるだけ早く把握できます。 使用可能なアラート通知方法は、DingTalk チャットボット、カスタム Webhook、および Alibaba Cloud メッセージセンターです。 その他のアラート方法について詳しくは、「アラート」をご参照ください。
コンテナ動作監査を無効にする
ack-advanced-audit をアンインストールして、コンテナ動作監査を無効にすることができます。
この操作では、自動的に作成された advaudit-${cluster_id} という名前のログストアは削除されません。 Log Service コンソールにログインして手動で削除する必要があります。 詳細については、「ログストアを削除する」をご参照ください。
ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、管理するクラスタを見つけて名前をクリックします。 左側のナビゲーションウィンドウで、[アドオン] をクリックします。
[アドオン] ページで、[ack-advanced-audit] コンポーネントを検索し、カードの右下にある [アンインストール] をクリックして、プロンプトに従ってコンポーネントをアンインストールします。
参照
リリースノートについては、「ack-advanced-audit」をご参照ください。
API サーバーの監査ログ機能は、「誰が、いつ、どのリソースに対して、どのような操作を実行したか」を特定するのに役立ちます。詳細については、「クラスター監査の使用」をご参照ください。