アドミッションコントロール、脆弱性管理、およびランタイム保護から成る包括的なアプローチを必要とする重大な課題です。
Amazon Web Services(AWS)は、あらゆる形態および規模の組織に対して、ストレージ、演算能力、コンテンツ配信などの機能を提供するクラウドサービスプロバイダです。Amazon Web Servicesは、Amazonの特長である拡張性と信頼性を備え、迅速なアプリケーション設計と展開が可能です。AWSの製品は、分析とストレージからブロックチェーンとコンテナにまで及びます。
AWSのコンテナは、アプリケーションをパッケージ化し、出荷し、実行するための簡単な方法を提供することから、非常に人気があります。
クラウド自体のセキュリティの責任はAWSにありますが、クラウド内のセキュリティ、つまり個々のコンテナの内容、データ、および全般的なサービス設定に対して適切な保護を確保する責任は各組織にあります。Amazonの責任共有モデルには、コンプライアンスとセキュリティを保証するために必要になる可能性がある追加のサービスも含め、Amazonの責任の範囲と各組織の責任の範囲が明確に規定されています。
以下に、AWSコンテナを保護する際に考慮すべき事項を示します。
AWSでは、ルートアカウントは、システムにとって重要と見なされるものも含め、サーバ上で利用可能なすべてのAWSサービスとリソースへの完全なアクセス権を持つ管理者ユーザです。またルートを使用して、サーバ上でのプログラムのインストールとアンインストールを行うことができ、アカウント上のすべてのリソースにアクセスすることもできます。
このルートアカウントは非常に大きな権限を持つため、1人目のユーザを作成するためのみに使用し、その後はこのログイン情報を安全に保管しておくべきです。ルートの使用が絶対に必要な場合は、そのアクセス権に対する保護は、多要素認証よりも強力である必要があります。
イメージを定期的にスキャンおよび分析し、ビルド段階では承認されたイメージのみを、また稼働時は基準に適合したイメージのみを許可することは重要です。不十分に設定されたイメージを用いる手法は、攻撃者がネットワークに侵入する最も簡単な方法の1つです。
選択したレジストリで利用可能なすべてのイメージの完全性、信頼性、公開日を検証できるソフトウェアを利用することを求められます。
タスクをすばやく実行できるように開発者に管理者権限を与えた方が便利に思えるかもしれませんが、これはコンテナ、そしてAWS環境全体までも危険にさらす可能性があります。サービスへのアクセスを制御し、各ジョブに付与される権限の量を制限することにより、悪意のある攻撃の可能性を大幅に減らすことができます。
会社内の従業員の役割の変更に応じて、個々のアクセスと権限を調整することを忘れないでください。
シークレットとは、パスワード、証明書、APIキーなどのことで、アクセス制御に用いられるものです。これらは、IT運用チームと開発者向けに、機密情報を非公開にし、正確なコンテナが稼働するために必要な場合にのみアクセスできるようにする安全なアプリケーションをより適切に構築および実行できるように使用されています。
シークレットは、承認されたユーザのみがアクセスできるように、S3(Simple Storage Service)バケットまたはIAM(Identity and Access Management)ポリシーを使用することにより、S3に安全に保管できます。これらは、サードパーティのシークレット管理プロバイダによって管理することもできます。
AWSコンテナセキュリティの強さは、当然そのセキュリティを確保するためにどれだけの対策が講じられたかにかかっています。コンテナライフサイクルの各フェーズでセキュリティのベストプラクティスを意図的に実施することにより、企業はクラウド内のすべての機密アプリケーションデータを確実に保護することができます。