すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:登録済みクラスターのワークロードセキュリティリスクを確認するための検査機能の設定

最終更新日:Aug 29, 2026

Container Service for Kubernetes (ACK) は、クラスターのワークロード構成のセキュリティリスクをスキャンする構成検査機能を提供します。検査の実行後、システムは、リスク項目の確認と対処、およびワークロードの正常性のリアルタイム監視に役立つレポートを生成します。

前提条件

検査の実行

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のペインで、[セキュリティ] > [検査] を選択します。

  3. 任意:画面の指示に従って、検査コンポーネントをインストールまたは更新します。

    security-inspector コンポーネントは無料ですが、Pod リソースを消費します。コンポーネントとそのリリースノートの詳細については、「security-inspector」をご参照ください。

  4. 検査を実行します。

    重要
    • オフピーク時に検査を実行することを推奨します。

    • デフォルトでは、検査はサポートされているすべての項目をスキャンします。Inspections ページの右上隅にある 定期検査の設定 をクリックして、スキャンする項目を指定できます。詳細については、「検査項目」をご参照ください。

    • 即時検査を実行するには、Inspections ページの右上隅にある Inspect をクリックします。

    • 定期検査を実行するには、Inspections ページの右上隅にある 定期検査の設定 をクリックします。次に、定期検査の設定 を選択し、検査期間を設定します。

  5. 検査が完了したら、検査 タブで目的の検査結果を見つけ、操作 列の 詳細 をクリックします。

検査の詳細

検査 ページには、さまざまなワークロードの詳細な検査結果が一覧表示されます。このページでは、次の機能を利用できます。

  • 合否、名前空間、ワークロードタイプ などの条件で結果をフィルタリングし、各ワークロードの [合格した項目の数] と [リスク項目] の数を表示します。

  • 各検査項目の詳細 (Pod およびコンテナレベルでのチェックステータス (合格または不合格)、詳細な説明、修正の提案など) を表示します。不合格になった項目が修正が不要な場合は、ホワイトリストに追加できます。

  • ワークロードの YAML ファイルを表示します。

検査項目

設定検査機能は、次の項目をスキャンして結果を表示します。

チェック ID

チェック項目

説明とセキュリティリスク

修正

hostNetworkSet

コンテナがホストネットワーク名前空間を共有することを防止

ワークロードの Pod の spec に hostNetwork: true が設定されているかどうかを確認します。この設定が有効になっている場合、コンテナはホストのネットワーク名前空間にアクセスできるため、Pod 内からのネットワーク攻撃やデータスニッフィングのリスクが生じます。

Pod spec を変更して hostNetwork フィールドを削除します。

例:

      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

hostIPCSet

コンテナがホスト IPC 名前空間を共有することを防止

ワークロードの Pod spec に hostIPC: true が設定されているかを確認します。この設定が有効になっていると、コンテナがホストの IPC 名前空間にアクセスできるようになり、ホスト上の他のプロセスへの攻撃やデータのスニッフィングが可能になります。

Pod の spec を変更して、hostIPC フィールドを削除します。

例:

      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

hostPIDSet

コンテナがホスト PID 名前空間を共有することを防止

ワークロードの Pod spec に hostPID: true が設定されているかどうかを確認します。この設定が有効な場合、コンテナはホストのプロセス ID (PID) 名前空間にアクセスできるようになり、ホスト上の他のプロセスを攻撃したり、データを収集したりすることが可能になります。

Pod の spec を修正して、hostPID フィールドを削除します。

例:

      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

hostPortSet

コンテナプロセスがノードポートをリッスンすることを防止

ワークロードの Pod spec でhostPortが設定されているかどうかを確認します。コンテナポートがホストノードのポートにマッピングされている場合、ホストポートを占有し、意図しない送信元からのリクエストを受信するおそれがあります。

Pod spec を変更して、hostPort フィールドを削除します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

runAsRootAllowed

コンテナが root ユーザーとして実行されることを防止

ワークロードの Pod spec に runAsNonRoot: true が設定されているかどうかを確認します。この設定がされていない場合、コンテナはデフォルトで root ユーザーとして実行されます。これにより、悪意のあるプロセスがアプリケーション、ホスト、またはクラスター全体を侵害するリスクが生じます。

Pod の spec を変更して runAsNonRoot: true を追加します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          runAsNonRoot: true

runAsPrivileged

コンテナが特権モードで実行されることを防止

ワークロードの Pod spec に privileged: true が設定されているかどうかを確認します。この設定が有効になっている場合、コンテナはホストへの root アクセスが可能になります。これにより、悪意のあるプロセスがお客様のアプリケーション、ホスト、またはクラスター全体を侵害する深刻なリスクが生じます。

Pod の spec を変更して、privileged フィールドを削除します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext: {}

privilegeEscalationAllowed

コンテナ内での権限昇格を防止

ワークロードの Pod spec に allowPrivilegeEscalation: false が設定されているかどうかをチェックします。この設定がされていない場合、コンテナ内の子プロセスが親プロセスよりも多くの権限を取得できるため、権限昇格攻撃のリスクが生じます。

Pod の spec を変更して、allowPrivilegeEscalation: false フィールドを追加します。

例:

        ports:
        - containerPort: 80
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
          runAsNonRoot: true
        volumeMounts:

capabilitiesAdded

不要な Linux ケーパビリティの削除

ワークロードの Pod の spec にある capabilities フィールドをチェックし、SYS_ADMIN、NET_ADMIN、または ALL などの特権レベルの高い Linux ケーパビリティが許可されているかを確認します。これらのケーパビリティが付与されている場合、悪意のあるプロセスがそれらを使用してアプリケーション、コンポーネント、またはクラスターを侵害するおそれがあります。

Pod スペックを修正して、必要な Linux ケーパビリティのみを追加し、その他はすべて削除します。

追加の Linux ケーパビリティが不要な場合は、すべて削除します。例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          capabilities:
            drop:
            - ALL

特定のケーパビリティが必要な場合は、必要なものだけを追加し、その他はすべて削除します。例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          capabilities:
            add:
            - CHOWN
            drop:
            - ALL

notReadOnlyRootFilesystem

コンテナに読み取り専用ルートファイルシステムを使用

ワークロードの pod spec に readOnlyRootFilesystem: true が設定されているかどうかを確認します。この設定がされていない場合、コンテナのルートファイルシステムは書き込み可能になります。これにより、悪意のあるプロセスがシステムファイルを変更するリスクが生じます。

pod spec を変更して readOnlyRootFilesystem: true を追加します。特定のディレクトリに書き込む必要がある場合は、volumeMounts を使用します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          readOnlyRootFilesystem: true

特定のディレクトリ内のファイルを変更するには、volumeMounts フィールドを使用します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          readOnlyRootFilesystem: true
          runAsNonRoot: true
        volumeMounts:
        - mountPath: /path/to/write
          name: writeable
      volumes:
      - emptyDir: {}
        name: writeable

cpuRequestsMissing

コンテナの CPU リクエストを設定

ワークロードの Pod スペックに resources.requests.cpu が設定されているかどうかを確認します。この設定が構成されていない場合、CPU リソースが不十分なノードに Pod がスケジューリングされ、パフォーマンスが低下する可能性があります。

Pod spec を変更して、resources.requests.cpu フィールドを追加します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m

cpuLimitsMissing

コンテナの CPU 制限を設定

ワークロードの Pod spec に resources.limits.cpu が設定されているかどうかを確認します。この設定がされていない場合、コンテナ内の異常なプロセスが過剰なノードリソースを消費し、ノードまたはクラスター全体の CPU リソースを枯渇させる可能性があります。

Pod の spec を変更して、resources.limits.cpu フィールドを追加します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m
          limits:
            cpu: 100m

memoryRequestsMissing

コンテナのメモリリクエストを設定

ワークロードの Pod の spec に resources.requests.memory が設定されているかどうかをチェックします。この設定がされていない場合、Pod がメモリ不足のノードにスケジュールされ、メモリ不足 (OOM) エラーが発生する可能性があります。

Pod の spec を変更して、resources.requests.memory フィールドを追加します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m
            memory: 128Mi

memoryLimitsMissing

コンテナのメモリ制限を設定

ワークロードの pod spec に resources.limits.memory が設定されているかどうかを確認します。この設定がされていない場合、コンテナ内の異常なプロセスが過剰なノードリソースを消費し、ノードまたはクラスター全体のメモリを使い果たす可能性があります。

Pod の spec を変更して、resources.limits.memory フィールドを追加します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 100m
            memory: 128Mi

readinessProbeMissing

コンテナの readiness プローブを設定

ワークロードの Pod spec に readinessProbe が設定されているかどうかをチェックします。readiness プローブがないと、コンテナがリクエストを処理する準備が整う前にトラフィックが送信され、アプリケーションエラーの原因となる可能性があります。

Pod の spec を変更して、readinessProbe フィールドを追加します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        readinessProbe:
          httpGet:
            path: /health
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 20

livenessProbeMissing

コンテナの liveness プローブを設定

ワークロードの Pod の spec に livenessProbe が設定されているかチェックします。liveness プローブがない場合、応答しないコンテナは自動的に再起動されず、アプリケーションのダウンタイムにつながる可能性があります。

Pod の spec を変更して、livenessProbe フィールドを追加します。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        livenessProbe:
          httpGet:
            path: /health
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 20

tagNotSpecified

コンテナに特定のイメージタグを使用

ワークロードの pod spec の image フィールドにイメージタグが欠落しているか、または latest タグが使用されているかどうかをチェックします。特定のイメージタグが使用されていない場合、ワークロードで予期しないバージョンのコンテナイメージが実行され、アプリケーションエラーを引き起こす可能性があります。

Pod spec の image フィールドを、特定のイメージタグに変更してください。latest タグは使用しないでください。

例:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

anonymousUserRBACBinding

匿名ユーザーによるクラスターへのアクセスを禁止

クラスター内のロールベースアクセス制御 (RBAC) バインディングをチェックし、匿名ユーザーにアクセスを許可する設定があるかどうかを確認します。匿名アクセスが許可されている場合、悪意のあるユーザーが機密情報を盗んだり、クラスターを攻撃したりする可能性があります。

RBAC バインディングを修正して、匿名ユーザーがクラスターリソースにアクセスできる権限を削除します。

例:

  - apiGroup: rbac.authorization.k8s.io
    kind: Group
    name: 'foo-group'

関連情報