Container Service for Kubernetes (ACK) は、ACKクラスターのワークロードのセキュリティリスクを検出するのに役立つ検査機能を提供します。 ACKクラスターが検査タスクを完了すると、クラスターは検査レポートを生成します。 検査レポートで失敗した検査項目を表示および対処できます。 これにより、クラスターのヘルスステータスをリアルタイムで把握できます。
前提条件
- Container Service for Kubernetes (ACK) コンソールに外部Kubernetesクラスターが登録されています。 詳細については、「ACKコンソールでの登録済みクラスターの作成」をご参照ください。
- Logtail がインストールされている必要があります。 詳細については、「手順2: logtail-dsのインストール」をご参照ください。
検査タスクの実行
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のペインで、 を選択します。
オプション: security-inspectorコンポーネントをインストールおよび更新します。
セキュリティインスペクタコンポーネントは無料ですが、ポッドリソースを占有します。 security-inspectorコンポーネントの概要とリリースノートの詳細については、「security-inspector」をご参照ください。
検査タスクを実行します。
重要オフピーク時に検査タスクを実行することを推奨します。
デフォルトでは、検査タスクに対してすべての検査項目が有効になっています。 [検査] ページの右上隅にある [定期検査の設定] をクリックします。 表示されるパネルで、検査タスクの検査項目を設定できます。 詳細については、「検査項目」をご参照ください。
すぐに検査タスクを実行する: [検査] ページの右上隅にある [検査] をクリックします。
定期的に検査タスクを実行する: [検査] ページの右上隅にある [定期検査の設定] をクリックします。 次に、[定期検査の設定] を選択し、検査サイクルを設定します。
検査タスクが完了したら、[検査] タブに移動して検査結果を見つけ、[操作] 列の [詳細] をクリックします。
検査の詳細
[検査] ページには、さまざまなワークロードの検査結果を表示するテーブルがあります。 検査結果を表示するには、次の機能があります。
合格または失敗、名前空間、ワークロードタイプなどの条件に基づいて検査結果をフィルタリングします。 検査された各ワークロードの合格項目数および失敗項目数の値を表示します。
検査詳細ページには、各ポッドおよびコンテナの検査項目の合格および不合格、各検査項目の説明、セキュリティ強化に関する提案など、各検査項目の詳細情報が表示されます。 失敗した検査項目を無視するには、ホワイトリストに追加します。
ワークロードのYAMLファイルを表示します。
検査アイテム
次の表に、検査項目を示します。
検査アイテムID | 検査アイテム | 検査内容と潜在的なセキュリティリスク | 提案 |
hostNetworkSet | コンテナーとホスト間のネットワーク名前空間の共有を無効にする | ワークロードのポッド仕様に | ポッド仕様から 例: |
hostIPCSet | コンテナーとホスト間のIPC名前空間の共有を無効にする | ワークロードのポッド仕様に | ポッド仕様から 例: |
hostPIDSet | コンテナーとホスト間のPID名前空間の共有を無効にする | ワークロードのポッド仕様に | ポッド仕様から 例: |
hostPortSet | コンテナ内のプロセスがホストポートでリッスンするのを防ぐ | ワークロードのポッド仕様に | ポッド仕様から 例: |
runAsRootAllowed | rootユーザーとしてのコンテナー起動の無効化 | ワークロードのポッド仕様に | ポッド仕様に 例: |
runAsPrivileged | 特権モードでのコンテナー起動の無効化 | ワークロードのポッド仕様に | ポッド仕様から 例: |
privilegeEscalationAllowed | コンテナ内の子プロセスの特権エスカレーションを無効にする | ワークロードのポッド仕様に | ポッド仕様に 例: |
capabilitiesAdded | 不要なLinux機能を無効にする | ワークロードのポッド仕様に | 必要なLinux機能のみを保持し、他の機能を削除するようにポッド仕様を変更します。 コンテナ内のプロセスがLinux機能を必要としない場合は、すべてのLinux機能を削除します。 例:
コンテナ内のプロセスがLinux機能を必要とする場合は、必要なLinux機能のみを指定し、他の機能を削除します。 例: |
notReadOnlyRootFileSystem | コンテナ内のファイルシステムの読み取り専用モードを有効にする | ワークロードのポッド仕様に | ポッド仕様に 例:
特定のディレクトリ内のファイルを変更する場合は、ポッド仕様で 例: |
cpuRequestsMissing | コンテナーの実行に使用できるCPUリソースの最小使用率を設定する | ワークロードのポッド仕様に |
例:
|
cpuLimitsMissing | コンテナーの実行に使用できるCPUリソースの最大量を設定する | ワークロードのポッド仕様に |
例:
|
memoryRequestsMissing | コンテナーの実行に使用できる最小メモリリソースを設定する | ワークロードのポッド仕様に |
例:
|
memoryLimitsMissing | コンテナーの実行に使用できる最大メモリリソースの設定 | ワークロードのポッド仕様に | ポッド仕様に 例:
|
readinessProbeMissing | コンテナー準備プローブの設定 | ワークロードのポッド仕様に |
例:
|
livenessProbeMissing | コンテナーlivenessプローブの設定 | ワークロードのポッド仕様に |
例:
|
tagNotSpecified | コンテナーのイメージバージョンの指定 | ワークロードのポッド仕様の | イメージのバージョンを指定して、ポッド仕様の 例:
|
anonymousUserRBACBinding | クラスターへの匿名アクセスの禁止 | クラスター内のRBACロールバインディングをチェックし、匿名ユーザーからのアクセスを許可する設定を特定します。 匿名ユーザーがクラスターへのアクセスを許可されている場合、機密情報にアクセスし、クラスターを攻撃し、クラスターに侵入する可能性があります。 | RBACロールバインディングから匿名ユーザーからのアクセスを許可する設定を削除します。 例:
|


















