Container Service for Kubernetes (ACK) は、ACKクラスターのワークロードのセキュリティリスクを検出するのに役立つ検査機能を提供します。 ACKクラスターが検査タスクを完了すると、クラスターは検査レポートを生成します。 検査レポートで失敗した検査項目を表示および対処できます。 これにより、クラスターのヘルスステータスをリアルタイムで把握できます。
前提条件
Kubernetes 1.14以降を実行するクラスターが作成されます。 クラスターの更新方法の詳細については、「ACKクラスターの手動更新」をご参照ください。
Resource Access Management (RAM) ユーザーを使用する場合は、次の手順に従ってRAM権限付与とロールベースのアクセス制御 (RBAC) 権限付与を完了する必要があります。
完全なRAM権限付与
RAMユーザーを使用する場合、ACKコンソールの [検査] ページにメッセージが表示され、RAMユーザーに [検査] ページで操作を実行する権限を付与するよう求められます。 RAMユーザーに必要な権限がない場合、[検査] ページで操作を実行できません。 詳細については、「カスタムRAMポリシーの作成」をご参照ください。
検査レポート機能も使用する必要がある場合は、クラスター内の
logtail-ds
コンポーネントで使用されるSimple Log Serviceプロジェクト
の読み取り権限をRAMユーザーに付与する必要があります。 これにより、RAMユーザーはSimple log Serviceプロジェクト
のログデータを読み取ることができます。 それ以外の場合は、検査レポートを表示できません。 詳細については、「カスタムポリシーを使用してRAMユーザーに権限を付与する」をご参照ください。完全なRBAC認証
RAM権限付与が完了したら、RAMユーザーにRBAC権限を付与して、ACKコンソールの [検査] ページに表示されるKubernetesリソースを管理する必要があります。 クラスターを管理するには、RAMユーザーに管理者権限を付与する必要があります。 これにより、RAMユーザーは [検査] ページに表示されるKubernetesリソースを管理できます。 詳細については、「RAMユーザーまたはRAMロールへのRBAC権限の付与」をご参照ください。
検査タスクの実行
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ロールバインディングから匿名ユーザーからのアクセスを許可する設定を削除します。 例: |
イベント
イベントタイプ | イベント名 | イベント内容の例 | イベントの説明 | API 操作 |
正常 | SecurityInspectorConfigAuditStart | 構成監査の実行を開始する | システムがクラスターの検査を開始します。 | この場合、アクションは必要ありません。 |
正常 | SecurityInspectorConfigAuditFinished | 設定監査の実行完了 | システムは、クラスタの検査を終了する。 | この場合、アクションは必要ありません。 |
警告 | SecurityInspectorConfigAuditHighRiskFound | 構成監査を実行した後、2つの高いリスクが見つかりました | 検査機能は、ワークロードのセキュリティリスクを識別します。 |
|