Container Service for Kubernetes (ACK) は、クラスターのワークロード構成におけるセキュリティリスクをスキャンする検査機能を提供します。検査タスクの実行後、システムは検査レポートを生成します。このレポートを使用して、リスク項目を確認および対処し、ワークロードのヘルスステータスをリアルタイムで監視できます。
前提条件
クラスターで Kubernetes v1.14 以降が実行されていること。クラスターをアップグレードするには、「ACK クラスターの手動更新」をご参照ください。
RAM ユーザーの場合は、以降の説明に従って RAM 認可と RBAC 認可を完了してください。
RAM 認可
Inspections ページで RAM 認可を完了し、現在の RAM ユーザーが現在のクラスターの Inspections ページを使用する権限があることを確認してください。そうでない場合、権限が不足するため、Inspections ページの機能を使用できなくなります。詳細については、「RAM を使用したクラスターおよびクラウドリソースへのアクセスの権限付与」をご参照ください。
検査レポート機能を使用する場合、RAM ユーザーに、クラスターのログ収集コンポーネントが使用する指定された Simple Log Service (SLS) プロジェクトに対する読み取り権限を付与する必要があります。そうでない場合、権限が不足するため、検査レポートを表示できなくなります。詳細については、「カスタム RAM 認可の例」をご参照ください。
RBAC 認可
Inspections ページのリソースに対して RBAC 認可を完了し、指定されたクラスターの管理者権限を RAM ユーザーに付与してください。これにより、RAM ユーザーが Inspections ページで Kubernetes リソースを操作する権限を確実に持つようになります。詳細については、「RBAC を使用したクラスター内のリソースに対する操作の認可」をご参照ください。
検査の実行
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のペインで、 を選択します。
任意:画面の指示に従って、検査コンポーネントをインストールまたは更新します。
security-inspector コンポーネントは無料ですが、Pod リソースを消費します。コンポーネントとそのリリースノートの詳細については、「security-inspector」をご参照ください。
検査を実行します。
重要オフピーク時に検査を実行することを推奨します。
デフォルトでは、検査はサポートされているすべての項目をスキャンします。Inspections ページの右上隅にある 定期検査の設定 をクリックして、スキャンする項目を指定できます。詳細については、「検査項目」をご参照ください。
即時検査を実行するには、Inspections ページの右上隅にある Inspect をクリックします。
定期検査を実行するには、Inspections ページの右上隅にある 定期検査の設定 をクリックします。次に、定期検査の設定 を選択し、検査期間を設定します。
検査が完了したら、検査 タブで目的の検査結果を見つけ、操作 列の 詳細 をクリックします。
検査の詳細
検査 ページには、さまざまなワークロードの詳細な検査結果が一覧表示されます。このページでは、次の機能を利用できます。
合否、名前空間、ワークロードタイプ などの条件で結果をフィルタリングし、各ワークロードの [合格した項目の数] と [リスク項目] の数を表示します。
各検査項目の詳細 (Pod およびコンテナレベルでのチェックステータス (合格または不合格)、詳細な説明、修正の提案など) を表示します。不合格になった項目が修正が不要な場合は、ホワイトリストに追加できます。
ワークロードの YAML ファイルを表示します。
検査レポート
レポート ページには、最新の検査結果が表示されます。このページには、次の情報が含まれます。
スキャン結果の概要 (検査項目の総数、検査された各リソースタイプの数と割合、総合的なヘルススコアなど)。
主要なスキャンカテゴリ (ヘルスチェック、イメージ、ネットワーキング、リソース、セキュリティなど) の統計。
各ワークロード設定の詳細なスキャン結果 (リソースタイプ、リソース名、名前空間、チェックタイプ、検査項目、結果など)。
検査項目
設定検査機能は、次の項目をスキャンして結果を表示します。
チェック ID | チェック項目 | 説明とセキュリティリスク | 修正 |
hostNetworkSet | コンテナがホストネットワーク名前空間を共有することを防止 | ワークロードの Pod の spec に | Pod spec を変更して 例: |
hostIPCSet | コンテナがホスト IPC 名前空間を共有することを防止 | ワークロードの Pod spec に | Pod の spec を変更して、 例: |
hostPIDSet | コンテナがホスト PID 名前空間を共有することを防止 | ワークロードの Pod spec に | Pod の spec を修正して、 例: |
hostPortSet | コンテナプロセスがノードポートをリッスンすることを防止 | ワークロードの Pod spec で | Pod spec を変更して、 例: |
runAsRootAllowed | コンテナが root ユーザーとして実行されることを防止 | ワークロードの Pod spec に | Pod の spec を変更して 例: |
runAsPrivileged | コンテナが特権モードで実行されることを防止 | ワークロードの Pod spec に | Pod の spec を変更して、 例: |
privilegeEscalationAllowed | コンテナ内での権限昇格を防止 | ワークロードの Pod spec に | Pod の spec を変更して、 例: |
capabilitiesAdded | 不要な Linux ケーパビリティの削除 | ワークロードの Pod の spec にある | Pod スペックを修正して、必要な Linux ケーパビリティのみを追加し、その他はすべて削除します。 追加の Linux ケーパビリティが不要な場合は、すべて削除します。例: 特定のケーパビリティが必要な場合は、必要なものだけを追加し、その他はすべて削除します。例: |
notReadOnlyRootFilesystem | コンテナに読み取り専用ルートファイルシステムを使用 | ワークロードの pod spec に | pod spec を変更して 例: 特定のディレクトリ内のファイルを変更するには、 例: |
cpuRequestsMissing | コンテナの CPU リクエストを設定 | ワークロードの Pod スペックに | Pod spec を変更して、 例: |
cpuLimitsMissing | コンテナの CPU 制限を設定 | ワークロードの Pod spec に | Pod の spec を変更して、 例: |
memoryRequestsMissing | コンテナのメモリリクエストを設定 | ワークロードの Pod の spec に | Pod の spec を変更して、 例: |
memoryLimitsMissing | コンテナのメモリ制限を設定 | ワークロードの pod spec に | Pod の spec を変更して、 例: |
readinessProbeMissing | コンテナの readiness プローブを設定 | ワークロードの Pod spec に | Pod の spec を変更して、 例: |
livenessProbeMissing | コンテナの liveness プローブを設定 | ワークロードの Pod の spec に | Pod の spec を変更して、 例: |
tagNotSpecified | コンテナに特定のイメージタグを使用 | ワークロードの pod spec の | Pod spec の 例: |
anonymousUserRBACBinding | 匿名ユーザーによるクラスターへのアクセスを禁止 | クラスター内のロールベースアクセス制御 (RBAC) バインディングをチェックし、匿名ユーザーにアクセスを許可する設定があるかどうかを確認します。匿名アクセスが許可されている場合、悪意のあるユーザーが機密情報を盗んだり、クラスターを攻撃したりする可能性があります。 | RBAC バインディングを修正して、匿名ユーザーがクラスターリソースにアクセスできる権限を削除します。 例: |
イベント
イベントタイプ | イベント名 | 内容の例 | 説明 | 操作 |
Normal | SecurityInspectorConfigAuditStart | Starting config audit | 検査タスクが開始されます。 | 操作は不要です。 |
Normal | SecurityInspectorConfigAuditFinished | Config audit finished | 検査タスクが完了しました。 | 操作は不要です。 |
Warning | SecurityInspectorConfigAuditHighRiskFound | Found 2 high-risk items after config audit | 検査後、一部のワークロードで未対応の高リスク項目が検出されました。 |
|