私のプロジェクトのPython環境を管理する方法を学びながら、Dockerの使用を検討しています。コンテナ。私はDebian Wikiを理解し始めました。警告する、良いその他のオンラインリソース、Docker コミュニティのリスクについて説明します。しかし、よくわかりません。
Docker自体をインストールした後にDockerグループを作成する可能性は危険ですか?
つまり、ブログで提案されているようにDockerをインストールしたり、グループを作成したり、グループに自分自身を追加したりしない場合は、Dockerを使用して環境を管理する危険性があります(注:私は唯一のユーザーですか)。
ただし、同じ環境で複数のプロジェクトを操作すると、構成や依存関係の競合が発生する可能性があるため、迅速に問題が発生する可能性があります。また、チームメンバーとプロジェクトを共有するときに環境を調整する必要があります。これを行うには、簡単に共有できる方法でプロジェクト環境を定義する必要があります。
良いアプローチは、プロジェクトごとに別々の開発環境を作成することです。これは、コンテナとDocker Composeを使用して管理することで簡単に実行できます。
編集:こんな、重複している可能性があることに気づきました。Dockerは巨大なセキュリティホールをインストールしますか?
答え1
リスクが追加されます。ユーザーがいますこれは、追加のアクセス制御なしでルートへの簡単なパスを提供するためです。他にもそんなことがあるDebianシステムのグループたとえば、disks
Dockerをインストールしてdocker
グループを作成すること自体では、リスクは増加しません。そのようなグループにユーザーを追加しなくても問題はありません。グループにユーザーを追加するのはとにかく特権的な操作であるためです(したがって、攻撃者がこれを実行できる場合はすでに失敗しています)。
特権デーモンの実行に関連する特定のリスクもあります。たとえば、特権ドッカーデーモンをまったく実行しない他のソリューションを見てみましょう。ボードマンまたは、特にPythonプロジェクトでこの問題を解決しているためPython仮想環境。
答え2
私の意見では、コンテナシステム/サービス(DockerまたはLXD / LXCなど)またはクラウドサービス(Amazon Elastic Container Service(EC2)、Amazon Elastic Container Service for Kubernetes、Microsoft Azure Kubernetes Service、Google Kubernetes Engine(GKE)など)すべての部分をマイクロサービスに分けて別々にテスト、使用、共有することができ、均一なシステムから抜け出して賢い戦略を使用できるため、一般的なソフトウェア開発に最適なソリューションです。
コンテナシステムは、特定の開発環境やシステムをすばやく簡単に設定および稼働し、テストして試すことができ、仮想マシンやモノリシックシステムよりもリソースをより効率的に使用および管理できるため、ソフトウェア開発に最適です。です。
私の考えでは、開発環境、テスト環境、本番環境など、少なくとも3つの独立したソフトウェアプロジェクトシステムが必要です。小規模プロジェクト)プロジェクトは物理的、論理的に完全に分離されています。
安全なものはありません。ここでは、dockerの構成だけでなく、システム全体の構成も重要です。
オペレーティングシステムの設定方法、オペレーティングシステムで実行されている他のソフトウェア、ネットワークとファイアウォールの設定方法、グループとデータの共有と使用方法など。
これらすべての質問に1つの答えで答えることはできず、考慮すべき要素がたくさんあることがわかります。
とにかく、ドッカーなどのコンテナサービスに取り組んで慣れているのはボーナスになります。
Dockerのインストールには本質的なリスクはありませんが、Dockerグループの作成に関連する潜在的なリスクを理解することが重要です。
Dockerグループを使用すると、ユーザーはroot権限なしでDockerコンテナを実行できるため、便利でセキュリティが向上します。
Dockerグループは、適切に管理されていない場合にセキュリティの脆弱性を生成する可能性があります。あるいは、適切な認証と許可なしにユーザーがグループに追加されると、そのユーザーが任意のDockerコンテナを実行できるため、データ漏洩、マルウェア感染、およびその他のセキュリティ上の問題が発生する可能性があります。事件。
Dockerグループを安全な方法で作成および管理する必要があります。たとえば、次のようになります。
- Dockerグループにアクセスできるユーザー数の制限
- Dockerグループに追加されたユーザーは適切に認証され、権限が付与されます。
- Dockerコンテナのアクティビティを監視し、不正アクセスや悪意のあるアクティビティを検出して防止します。
- セキュリティパッチとアップデートでDockerを最新の状態に保ちます。
- 交通は無制限です
- 既定では、一部の Docker バージョンは、同じホスト上のすべてのネットワークトラフィックを許可します。
- 脆弱で悪意のあるコンテナイメージ
- 無制限のアクセス
- ホストカーネルに脆弱性がある
- コンテナイノベーション
別々のドッカーグループを作成してもセキュリティ上のリスクはありません(まさにあなたが要求したものです)。しかし、このグループにユーザーを追加すると、攻撃面が増える可能性があります(おそらくこれはあなたが尋ねたいものです)。実際のセキュリティリスクは脅威モデルによって異なります。
https://security.stackexchange.com/questions/178542/is-adding-docker-group-not-a-good-idea