コンテナ セキュリティ

GCP でコンテナ環境を保護しましょう。

概要

コンテナ化により、開発チームは開発をスピードアップし、ソフトウェアを効率的にデプロイし、運営規模をこれまでにないほど拡大できます。コンテナ化ワークロードが増えると、構築とデプロイのライフサイクルの各ステージでセキュリティの統合が必要になります。ここでは、3 つの重要な分野で GCP のコンテナ環境を保護する方法を説明します。

インフラストラクチャのセキュリティ

インフラストラクチャのセキュリティとは、コンテナ管理プラットフォームが適切なセキュリティ機能を提供することです。Kubernetes には ID、シークレット、ネットワークを保護するためのセキュリティ機能が含まれています。また、Kubernetes Engine は Cloud IAM、Cloud Audit Logging、Virtual Private Cloud などの GCP のネイティブ機能を使用し、Google セキュリティの長所をワークロードにもたらします。

ソフトウェアのサプライ チェーン

ソフトウェアのサプライ チェーンの保護とは、コンテナ イメージのデプロイが安全であることを意味します。これはコンテナ イメージに脆弱性がないことと、構築するイメージがデプロイ前に変更されていないことを確保する方法です。

ランタイム セキュリティ

ランタイム セキュリティを使用すると、本番環境で悪意のある動作をするコンテナを特定し、ワークロードの保護に向けて対処できます。

コンテナを実行すると、根本的に異なるセキュリティ モデルを採用できる

簡単なパッチ管理と不変性

簡単なパッチ管理と不変性

コンテナは不変であるため、変更するには新しいイメージをデプロイします。イメージを定期的に再構築することでパッチ管理が簡単にでき、コンテナが次回デプロイされたときにパッチが取得されます。イメージのセキュリティ審査を定期的に行い、環境の全体像を理解できます。

攻撃可能な箇所の削減

攻撃可能な箇所の削減

コンテナはアプリケーションに直接パッケージ化されることが多いため、VM よりもはるかに小さいホスト OS で動作するようになっています。このような最小限のホスト OS により、ワークロードの攻撃可能な箇所が削減されます。

リソースやワークロードの分離

リソースやワークロードの分離

コンテナでは、cgroup と名前空間を使用してストレージ ボリュームなどのリソースを特定のプロセスに簡単に分離できます。gVisor などのテクノロジーにより、他のアプリケーションとは別に、サブ VM サンドボックスのワークロードを論理的に分離できます。

インフラストラクチャのセキュリティ

コンテナ インフラストラクチャのセキュリティとは、コンテナ化されたサービスを安全に構築するために必要なツールをデベロッパーに提供することです。このような機能は通常、Kubernetes などのコンテナ オーケストレーターに組み込まれています。Kubernetes Engine を使用した場合、この機能は Google Cloud の他の機能に加えてネイティブに表示されます。

ID と承認

Kubernetes Engine では、Cloud IAM を使用してプロジェクトへのアクセスを管理し、ロールベースのアクセス制御(RBAC)を使用してクラスタと名前空間へのアクセスを管理できます。

監査ロギング

Kubernetes では API 監査ログが自動的に収集されます。Kubernetes Engine では Cloud Audit Logging によって API 監査ログが自動的に記録されます。

ネットワーキング

Kubernetes Engine で、クラスタ内のポッド間通信を管理するネットワーク ポリシーを作成します。プライベート IP には限定公開クラスタを使用し、共有 VPC には Kubernetes Engine リソースを含めます。

コンプライアンス

Kubernetes Engine は ISO 27001、ISO 27017、ISO 27108、HIPAA、PCI-DSS などのコンプライアンス証明書を多数取得しています。

最小限のホスト OS

Kubernetes Engine は、コンテナを実行するために最適化された専用 OS である Container-Optimized OS(COS)をデフォルトで使用します。COS は Google がオープンソースで維持しています。

最新のコンポーネント

Kubernetes Engine では、マスターは自動的に Kubernetes の最新バージョンに適用され、ノードにはノードの自動アップグレードを使用できます。

ソフトウェアのサプライ チェーン

ソフトウェアのサプライ チェーンでは、環境内にデプロイされているものを正確に把握します。つまり、コーディング、イメージの作成、デプロイなどのアプリケーションの管理をします。こうした機能は通常、CI / CD パイプラインやコンテナ レジストリ(Google Container Registry など)に、コンテナを本番環境にデプロイする前のアドミッション チェックとして組み込まれています。

安全なベースイメージ

Google Container Registry には DebianUbuntu のベースイメージが用意されており、Google が定期的にパッチを適用しテストしています。

脆弱性スキャン

Google Container Registry には、CVE データベースの既知の脆弱性がないかどうかイメージやパッケージをスキャンする脆弱性スキャン機能が用意されています。

デプロイ ポリシー

Kubernetes Engine では、Binary Authorization を使用し、イメージの証明書に基づいて環境にデプロイする内容を制限します。

定期的な構築

コンテナの再構築と再デプロイは定期的に行えるので、ご利用の環境に段階的に提供される最新のパッチを活用できます。

ランタイム セキュリティ

コンテナのランタイム セキュリティとは、ご利用の環境で実行されているコンテナへのセキュリティ脅威をセキュリティ対応チームが検出して対処することです。このような機能は通常、セキュリティ運用ツールに組み込まれています。

モニタリング

Kubernetes Engine は Stackdriver と統合されており、ログ解析が簡単にできます。また、Cloud Security Command Center(Cloud SCC)にセキュリティ イベントを書き込むこともできます。

異常なアクティビティの検出

Google パートナーを活用して、Cloud SCCAqua SecurityCapsule8StackRoxSysdig SecureTwistlock など)で攻撃を監視し結果を表示できます。

分離

悪意のあるコンテナが他のコンテナに影響するのを防ぎます。コンテナのセキュリティ分離を強化するには、コンテナのランタイム サンドボックスである gVisor を利用します。

リソース

コンテナ セキュリティに固有の詳細情報については、以下をご覧ください。

Kubernetes Engine セキュリティの概要

Kubernetes Engine 強化ガイド

コンテナ セキュリティのブログシリーズ

NIST SP 800-190: Application Container Security Guide

KubeCon 2017 での発表: Shipping in Pirate-Infested Waters

Google Cloud

使ってみる

学習と構築

GCP を初めてご利用の場合は、あらゆる GCP プロダクトを $300 相当の無料クレジットでお試しいただけます。

さらにサポートが必要な場合

Google のエキスパートが、適切なソリューションの構築や、お客様のニーズに合ったパートナーを見つけるお手伝いをいたします。