Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第31章 ストラテジーによるビルドのセキュリティー保護

31.1. 概要

OpenShift Container Platform の ビルド は、Docker デーモンソケットにアクセスできる 特権付きコンテナー で実行されます。セキュリティー対策として、ビルドおよびそれらのビルドに使用されるストラテジーを実行するユーザーを制限することを推奨します。カスタムビルド は、ソースビルド よりも本質的に安全性が低いと言えます。それらはノードの Docker ソケットへの完全なアクセスを持つ可能性があり、それらのアクセスでビルド内で任意のコードを実行する可能性があるためです。そのため、これはデフォルトで無効にされます。Docker ビルド のパーミッションを付与する場合についても、Docker ビルドロジックの脆弱性により権限がホストノードに付与される可能性があるために注意が必要です。

警告

Docker およびカスタムビルドの間、Docker デーモンによって実行されるアクションは特権があり、ホストネットワーク namespace で実行されます。このようなアクションは、EgressNetworkPolicy オブジェクトおよび静的 egress IP アドレスで定義されるネットワークルールを含む設定済みネットワークルールをバイパスします。

デフォルトで、ビルドを作成できるすべてのユーザーには Docker および Source-to-Image (S2I) ビルドストラテジーを使用するためのパーミッションが付与されます。cluster-admin 権限を持つユーザーは、このページの ユーザーへのビルドストラテジーのグルーバルな制限 セクションで説明されているように、カスタムビルドストラテジーを有効にすることができます。

許可ポリシー を使用して、どのユーザーがどのビルドストラテジーを使用してビルドできるかを制限することができます。各ビルドには、対応するビルドサブリソースがあります。ストラテジーを使用してビルド作成するには、ユーザーにビルドを作成するパーミッション および ビルドストラテジーのサブリソースで作成するパーミッションがなければなりません。ビルドストラテジーのサブリソースでの create パーミッションを付与するデフォルトロールが提供されます。

表31.1 ビルドストラテジーのサブリソースおよびロール

ストラテジーサブリソースロール

Docker

ビルド/docker

system:build-strategy-docker

Source-to-Image (S2I)

ビルド/ソース

system:build-strategy-source

カスタム

ビルド/カスタム

system:build-strategy-custom

JenkinsPipeline

ビルド/jenkinspipeline

system:build-strategy-jenkinspipeline