[[421322]]この記事は、Marionxue氏が執筆したWeChat公式アカウント「クラウドネイティブエコシステム」からの転載です。転載の許可については、WeChat公式アカウント「クラウドネイティブエコシステム」までお問い合わせください。 1CISとは何ですか? CIS[1]、またはインターネットセキュリティセンター(CIS)は、セキュリティベンチマークプログラムに関する明確かつ公平で一貫性のある業界のベストプラクティスを提供し、組織がセキュリティを評価および強化するのを支援します。 2DockerベンチセキュリティDocker Bench for Security[2]はオープンソースのスクリプトです。CIS Docker Benchmark v1.3.1[3]仕様に基づいており、本番環境でDockerコンテナを実行するための一般的なベストプラクティスに基づく数十の検査を自動化するために使用されます。 検査は、testsディレクトリ内の以下のスクリプトを呼び出すことで実行されます。検査の詳細については、スクリプトを参照してください。 - 1_ホスト_configuration.sh
- 2_docker_daemon_configuration.sh
- 3_docker_daemon_configuration_files.sh
- 4_コンテナ_イメージ.sh
- 5_コンテナ_ランタイム.sh
- 6_docker_security_operations.sh
- 7_docker_swarm_configuration.sh
- 8_docker_enterprise_configuration.sh
- 99_community_checks.sh
docker-bench-securityでは、関数内のスクリプトを修正することでチェック対象項目を選択したり、コマンドラインオプションを使ってチェック不要な項目を除外したりできます。サポートされているコマンドラインオプションを見てみましょう。 3つのコマンドオプションdocker-bench-セキュリティ - -b (オプション)カラーを印刷しません。
- -h (オプション) このヘルプメッセージを印刷する
- -l FILE (オプション) - ログ出力 Docker を使用して実行している場合、ログ出力ファイルはコンテナー内にあります。
- -u USERS (オプション)信頼できる Dockerユーザーのコンマ区切りリスト。信頼できる Docker ユーザーのコンマ区切りリスト。
- -c CHECK (オプション)特定のチェックIDのコンマ区切りリスト指定されたチェックIDのコンマ区切りリスト
- -e CHECK (オプション)除外する特定のチェックIDのコンマ区切りリスト。
- -i INCLUDE オプションコンテナまたはイメージ名内のパターンのコンマ区切りリスト に カンマ区切りのコンテナ名またはイメージ名のパターンのリストを確認します。
- -x EXCLUDE オプションコンテナまたはイメージ名内のパターンのカンマ区切りリスト 除外する コンテナまたはイメージ名から除外するパターンのコンマ区切りリストを確認します。
- -n LIMITオプションJSON出力で、アイテム(コンテナ、イメージなど)のリストを報告する際に、報告されるアイテムの数をLIMITに制限します。デフォルトは0(制限なし)。
- JSON出力でアイテム(コンテナ、イメージなど)のリストを報告する場合、報告するアイテムの数はLIMITに制限されます。デフォルトは0(無制限)です。
- -p PRINT(オプション)修復措置の印刷を無効にします。デフォルト:修復措置を印刷します。
各CIS検査項目は、スクリプト内でcheck_<section>_<number>という形式で命名されます。特定の検査項目を除外するには、…を使用します。 - sh docker-bench-security.sh -e check_2_2 # これは check_2_2 以外のすべてをチェックすることを意味します (2.2 ログレベルを確認する) は セット に '情報'
1つの項目のみチェックすることもできます。 - sh docker-bench-security.sh -c check_2_2
とても使いやすいです。 使用時には、`--help` を使用するとサポートされているコマンドラインオプションを確認できます。Docker イメージでサポートされているオプションは、Git リポジトリに記載されているオプションと一致していないことがわかりました。もちろん、独自のイメージをビルドすることもできます。 ビルドイメージ- git クローン https://github.com/docker/docker-bench-security.git
- cd docker-bench-security
- docker ビルド
以下は、Mac で検査を実行するデモです。 Mac用Dockerデスクトップ- docker 実行
- -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \
- -v /var/lib:/var/lib:ro \
- -v /var/run/docker.sock:/var/run/docker.sock:ro \
- -v `pwd`:/usr/ローカル/bin/log/ \
-
- docker/docker-bench-security -t devops.v1
- #
- # Docker Bench for Security v1.3.4
- #
- # Docker, Inc. (c) 2015-
- #
- # Docker コンテナを本番環境にデプロイする際の一般的なベストプラクティスを多数チェックします。
- # CIS Docker Community Edition ベンチマーク v1.1.0からヒントを得ました。
- #
-
- 2021年9月2日(木) 04:55:59 UTC に初期化中
-
- イメージ devops.v1を探しています
-
- [INFO] 1 - ホスト構成
- [警告] 1.1 - コンテナ用の別のパーティションが作成されていることを確認してください
- [注意] 1.2 - コンテナホストが強化されていることを確認する
- …[余分な内容は省略]
- [合格] 7.10 - 管理プレーンのトラフィックがデータプレーンのトラフィックから分離されていることを確認する(Swarm モードは有効になっていません)
-
- [INFO] チェック: 105
- [情報] スコア: 7
参考文献 [1]インターネットセキュリティセンター(CIS): https://www.cisecurity.org/ [2]Dockerベンチセキュリティ: https://github.com/docker/docker-bench-security [3]CIS Dockerベンチマーク: https://www.cisecurity.org/benchmark/docker/ |