セキュリティ

コンテナのセキュリティ

コンテナのセキュリティとは

コンテナセキュリティは、コンテナの整合性を保護します。その対象には、維持されるアプリケーションから、基盤となるインフラストラクチャまでのすべてが含まれます。コンテナセキュリティは統合された、連続的なものである必要があります。一般に、エンタープライズ向けの連続的なコンテナセキュリティには以下の機能が備わっています。

  • コンテナパイプラインとアプリケーションをセキュリティ保護する
  • コンテナデプロイ環境とインフラストラクチャをセキュリティ保護する
  • エンタープライズ・セキュリティ・ツールと統合して、既存のセキュリティポリシーを達成または上回る

コンテナが普及した理由は、アプリケーションまたはサービスのライフサイクル全体を通じて、すべての依存関係を含めて、各種の環境およびデプロイターゲットに対して、ビルド、パッケージ、プロモーションが簡単になるためです。 しかし、そのセキュリティにはまだ解決すべき課題があります。固定的なセキュリティポリシーやチェックリストでは、エンタープライズのコンテナに合わせて拡張できません。サプライチェーンにはさらに多くのセキュリティ・ポリシー・サービスが必要です。チームは、コンテナによるネットワークとガバナンスのニーズを調整する必要があります。ビルドツールやランタイムツールとサービスとを切り離す必要があります。

セキュリティをコンテナパイプラインに組み込んでインフラストラクチャを保護すると、コンテナが確実でスケーラブルなものになり、信頼性が高まります。


セキュリティをコンテナパイプラインに組み込む

イメージを収集する

コンテナはファイルの層から作成されます。コンテナコミュニティでは、このようなファイルは一般に「コンテナイメージ」と呼ばれています。セキュリティの観点からは、最も重要なのはベースイメージです。派生イメージを作成する出発点として使用されるからです。コンテナセキュリティは、ベースイメージの信頼できるソースを見つけることから始まります。ただし信頼できるイメージを使用しても、アプリケーションを追加して構成を変更していくと、新たな変数が導入されます。アプリを構築するために外部コンテンツを持ち込むときは、プロアクティブなコンテンツ管理を念頭に置く必要があります。

コンテナイメージを収集するときには、以下の事項を検討してください。

  • コンテナイメージは署名済みで、信頼できるソースから取得されているか?

  • ランタイムレイヤーとオペレーティングシステム・レイヤーは最新のものか?

  • コンテナはどの程度の期間と頻度でアップデートされているか?

  • 既知の問題は特定されているか、その問題はどのように追跡されるか?

アクセスを管理する

イメージを取得したら、次のステップとして、チームが使用するすべてのコンテナイメージへのアクセスとプロモーションを管理します。これは、ダウンロードするイメージと、ビルドするイメージの両方を保護するということです。プライベートレジストリを使用すると、ロールベースの割り当てによってアクセスを制御でき、メタデータをコンテナに割り当ててコンテンツ管理をサポートすることもできるようになります。メタデータは、既知の脆弱性の特定と追跡などの情報を提供します。プライベートレジストリは、保管したコンテナイメージに対するポリシーを自動化して割り当てる機能も実現できるので、コンテナへの脆弱性を招く原因となる人的ミスを最小限に抑えられます。

アクセスの管理方法を決定するときには、以下の事項を検討してください。

  • コンテナイメージの管理にどのようなロールベースのアクセス制御を使用できるか?

  • イメージを分類するタグ付け機能があるか?開発用のみ、テスト用、プロダクション用に承認済みと、イメージにタグ付けできるか?

  • 既知の脆弱性を追跡できるように、レジストリから視覚的なメタデータが得られるか?

  • レジストリを使用してポリシーを割り当てて自動化できるか (署名のチェック、コードスキャンなど)?

セキュリティテストを統合してデプロイを自動化する

パイプラインの最後のステップは、デプロイです。ビルドが完了したら、業界標準に従って管理する必要があります。ここでのポイントは、特に新しいセキュリティの脆弱性が検出される中で、ポリシーを自動化してセキュリティの問題があるビルドを洗い出す方法を理解することです。コンテナへのパッチ適用は再ビルドほど良い解決策ではないので、セキュリティテストの統合では自動再ビルドをトリガーするポリシーを考慮する必要があります。このステップの最初のパートとして、問題を追跡してフラグを立てられるコンポーネント分析ツールを実行します。2 番目のパートでは、自動化されたポリシーベースのデプロイ向けのツールを確立します。

セキュリティテストを統合してデプロイを自動化するときには、以下の事項を検討してください。

  • どのようにして、実行中のコンテナへのパッチ適用を防ぎ、トリガーを使用してコンテナを再ビルドして自動アップデートで置換するか?


インフラストラクチャを保護する

コンテナセキュリティのもう 1 つの層は、ホスト・オペレーティングシステム (OS) が提供する分離です。コンテナ分離を最大化するホスト OS が必要です。これは、コンテナデプロイ環境を防御するための大きな部分を占めます。ホスト OS はコンテナランタイムを使用して有効化され、理想的にはオーケストレーション・システムを通じて管理されます。コンテナプラットフォームに回復力を持たせるには、ネットワーク・ネームスペースを使用してアプリケーションと環境を隔離し、ストレージをセキュアなマウントによって接続します。API 管理ソリューションには、認証と認可、LDAP 統合、エンドポイントアクセス制御、レート制限を含める必要があります。

コンテナ・インフラストラクチャの保護方法を決定するときには、以下の事項を検討してください。

  • どのコンテナが互いにアクセスする必要があるか?どのように互いの存在を検出するか

  • 共有リソース (ネットワークとストレージなど) へのアクセスとその管理をどのように制御するか?

  • ホストのアップデートをどのように管理するか?すべてのコンテナを同時にアップデートする必要があるか?

  • コンテナの正常性をどのように監視するか?

  • 需要に対応するため、アプリケーション容量の自動的なスケーリングをどのように行うか?


Red Hat がお手伝いします

Red Hat® OpenShift Container Platform には Red Hat Enterprise Linux® が含まれています。コンテナ・アプリケーション・ライフサイクルを自動化し、セキュリティをコンテナパイプラインに統合し、DevOps チームを念頭に設計されています。Red Hat のコンテナカタログを利用すると、多数の認定済みイメージ、言語ランタイム、データベース、Red Hat Enterprise Linux を実行していればどこからでも実行できるミドルウェアにアクセスできます。Red Hat からのイメージは常に署名済みで、出処と整合性が検証されています。

Red Hat は、コンテナイメージに新たに検出された脆弱性 (継続的にアップデートされ、公開された正常性インデックスを含む) がないか監視し、セキュリティアップデートとコンテナ再リビルドをリリースし、パブリックレジストリにプッシュします。

さらに、この他にも非常に優れた機能を備えています。

  • Web スケールのコンテナ・オーケストレーションと管理
  • マルチユーザー・コラボレーション機能を備えたリッチな Web コンソール
  • CLI および IDE インタフェース
  • 自動化および Source-to-Image の構築
  • CI との統合
  • デプロイの自動化
  • リモート・ストレージ・ボリュームのサポート
  • 単純化されたインストールと管理
  • 幅広いプログラミング言語、フレームワーク、サービスのサポート

今すぐ始める

クラウド・コンピューティング

OpenShift を使用すれば、ほとんどすべてのインフラストラクチャ (パブリックまたはプライベート) で、短時間で容易にアプリケーションの構築、開発、デプロイを行えます。

Linux プラットフォーム

Red Hat Enterprise Linux は、新しいアプリケーションの展開、環境の仮想化、安全なハイブリッドクラウドの作成などに適した汎用性を誇り、Red Hat の受賞歴のあるサポートによって支えられる、安定性に優れた実績ある基盤です。


コンテナセキュリティについてさらに詳しく知る