組織のメンバーまたはアプリケーションがコンテナ内で実行する kubectl exec やシェルアクセスなどのコマンドを監査し、脅威がエスカレートする前に検出します。
この機能の有効化、監査レポートとログの表示、アラートの設定、不要になった場合の機能の無効化について説明します。
これはホワイトリスト機能です。チケットを送信して、アクセスを有効にしてから続行してください。
課金
この機能自体は無料です。有効化後、Simple Log Service (SLS) の使用料が発生します。料金の詳細については、「課金概要」をご参照ください。
制限事項
クラスタータイプ:ACK マネージド Pro クラスター、ACK マネージド Basic クラスター、ACK 専用クラスター。
オペレーティングシステムとカーネル:Alibaba Cloud Linux、Ubuntu、またはカーネルバージョン 4.19 より後の ContainerOS。
| OS | 最小クラスターバージョン | 追加要件 |
|---|---|---|
| Alibaba Cloud Linux | 1.18 | — |
| ContainerOS | 1.24 | — |
| Ubuntu | 1.30 (「クラスターの手動アップグレード」をご参照ください) | ノードの初期化中に OS の自動アップグレードを無効にする必要があります。/etc/resolv.conf のシンボリックリンクは /run/systemd/resolve/stub-resolv.conf を指している必要があり、DNS は DHCP で設定する必要があります。Cloud Parallel File System (CPFS) の永続ボリューム (PV)、イメージアクセラレーションプラグイン、およびセキュリティ強化はサポートされていません。 |
手順1:機能の有効化
この機能を有効にすると、次の 2 つのアドオンがインストールされます。
-
ログ収集コンポーネント — 監査ログを収集して SLS に送信し、デフォルトの監査レポートを作成します。詳細については、「ログ収集コンポーネント」をご参照ください。
-
ack-advanced-audit アドオン — コンテナ内の操作を監査します。
ログ収集プロジェクトに advaudit-${cluster_id} という名前の Logstore が作成されます。監査ログはデフォルトで 180 日間保持されます。保持期間を調整するには、「Logstore の管理」をご参照ください。
機能を有効にするには:
-
ACK コンソールにログインし、左側のナビゲーションペインで[クラスター]をクリックします。
-
クラスター名をクリックします。左側のナビゲーションペインで、[セキュリティ] > [監査] を選択します。
-
[監査] ページで、[コンテナ監査] タブをクリックし、[インストール] をクリックします。
手順2:監査レポートの表示
[監査] ページで [コンテナ監査] タブをクリックし、次に [コンテナ監査の概要] タブをクリックします。
概要レポートには次の情報が表示されます。
-
Pod のアクセス頻度と Pod の詳細。

-
Kubernetes アカウント、アクセス後に実行されたコマンド、および一般的な脅威。



手順3:詳細なログレコードの表示
目的に応じて 2 つの方法が利用できます。
| 方法 | 最適な用途 |
|---|---|
| 監査レポートページ | 最近の個別のイベントをすばやく確認する場合 |
| 検索ステートメントを使用した Logstore ページ | 履歴クエリや複雑なフィルターを使用する場合 |
監査レポートページからのログ表示
[コンテナ監査の概要] タブで、[不審なプロセスイベントリスト] セクションまでスクロールし、[traceId] または [eventId] 列のリンクをクリックします:
-
traceId — コンテナへのアクセス後に実行されたすべてのコマンドを表示します。
-
eventId — 特定の 1 つのコマンドの詳細を表示します。
Logstore ページからのログ表示
-
ACK コンソールにログインし、左側のナビゲーションペインで[クラスター]をクリックします。
-
クラスター名をクリックします。左側のナビゲーションペインで、[セキュリティ] > [監査] を選択します。
-
[監査] ページで、[コンテナ監査] タブをクリックし、[コンテナ監査ログのクエリ] タブをクリックします。
-
検索ボックスに検索ステートメントを入力します。Pod によるクエリ —
<namespace>と<pod_name>を実際の値に置き換えます。カテゴリ フィールド 説明 Pod k8s.pod.namespacePod の名前空間 Pod k8s.pod.namePod の名前 プロセス process.name実行されたプロセスの名前 * and k8s.pod.namespace: <namespace> and k8s.pod.name: <pod_name>プロセス名によるクエリ —
<name>をプログラム名に置き換えます。* and process.name: <name>上の表に、主要なクエリフィールドを示します。サポートされているすべての方法については、「ログ検索と分析」をご参照ください。
-
時間範囲を設定し、[検索と分析] をクリックします。
(オプション) 手順4:アラートの設定
SLS のアラート機能を使用して、コンテナの操作をリアルタイムで監視できます。サポートされているチャネルには、DingTalk ロボット、カスタム Webhook、通知センターがあります。
「アラート」をご参照ください。
機能の無効化
ack-advanced-audit アドオンをアンインストールすると、この機能は無効になります。
この機能を無効にしても、advaudit-${cluster_id} Logstore は削除されません。そのままにしておくと、SLS のストレージ料金が発生し続けます。課金を停止するには、SLS コンソールにログインして Logstore を手動で削除してください。詳細については、「Logstore の課金停止または削除」をご参照ください。
アドオンをアンインストールするには:
-
ACK コンソールにログインし、左側のナビゲーションペインで[クラスター]をクリックします。
-
クラスター名をクリックします。左側のナビゲーションペインで、[アドオン] をクリックします。
-
[アドオン] ページで、[ack-advanced-audit] を見つけ、[アンインストール] をクリックします。
次のステップ
-
リリースノートと詳細については、「ack-advanced-audit」をご参照ください。
-
API サーバーの操作 (誰が、いつ、どのリソースに対して何をしたか) を監査するには、「クラスター API サーバー監査機能の使用」をご参照ください。