AWSにおけるコンテナセキュリティは、AWSとお客さまによる責任共有モデルに基づいています。AWSはインフラストラクチャのセキュリティを担保しますが、お客さまが担うべきセキュリティ対策にはアドミッションコントロール、脆弱性管理、ランタイム保護といった包括的なアプローチが必要です。
目次
AWS(Amazon Web Services)は、あらゆる規模の組織にストレージ、コンピューティング能力、コンテンツ配信などの機能を提供するクラウドサービスプロバイダです。AWSは、Amazonならではのスケーラビリティと信頼性に加え、アプリケーションの迅速な設計と導入を実現するように設計されています。AWSの製品は、分析、ストレージ、ブロックチェーン、コンテナなど多岐にわたります。
AWS上のコンテナは、アプリケーションのパッケージ化、出荷、実行をシンプルに行うことができるため、非常に人気があります。AWSにおけるコンテナ戦略の成功には、セキュリティが不可欠です。
AWSは、コンテナインフラストラクチャを含むクラウドのセキュリティに責任を負います。クラウドにおけるセキュリティについては、個々のコンテナの内容、データ、そしてサービス全体の構成に対して適切な保護策を講じるのは各組織の責任です。Amazonの責任共有モデルは、Amazonの責任範囲とお客さまの責任範囲を明確に示し、コンプライアンスとセキュリティを確保するために必要となる可能性のある追加サービスも提示しています。
AWSでコンテナを保護する際に考慮すべき要素は次のとおりです。
AWS上のコンテナを保護するには、コンテナホストのOS(オペレーティングシステム)を保護することが不可欠です。複数のコンテナが同じホストを共有することが多いため、ホストへの侵入により、そのホスト上のすべてのコンテナ、あるいは環境内のすべてのコンテナにアクセスされる可能性があります。
ホストを選択する際には、各ホストにアクセス制御を適用し、セキュリティツールと継続的な監視ツールも追加する必要があります。これにより、ホストが期待どおりに動作し、デプロイ後に脆弱性が生じないことが保証されます。
イメージを定期的にスキャンして分析し、ビルドフェーズでは承認されたイメージのみを許可し、本番環境では準拠したイメージのみを実行することが重要です。適切に構成されていないイメージは、攻撃者がネットワークに侵入する最も簡単な方法の一つです。AWSは、コンテナイメージスキャン機能を提供するパートナーソリューションの活用をお客さまに推奨しています。
選択したレジストリで利用可能なすべてのイメージの整合性、信頼性、および公開日を検証できるソフトウェアも利用可能です。
開発者に管理者権限を付与することで、タスクを迅速に進められるように思えるかもしれません。しかし、これはコンテナ環境、さらにはAWS全体のセキュリティを脅かす最も危険な手段のひとつです。サービスへのアクセスは厳密に制御し、ジョブごとに必要最小限の権限のみを付与することで、内部からの悪意ある操作や誤操作によるリスクを大幅に低減できます。
また、社内の従業員の役割変更や退職などが発生した際には、不要となったアクセス権限を速やかに削除・調整することが重要です。
シークレットとは、パスワード、証明書、APIキーなど、アクセスを厳密に制御したいあらゆる情報を指します。これらは、IT運用チームや開発者が安全なアプリケーションを構築・運用するために、必要なタイミングでのみアクセス可能にすることが求められます。
シークレットはAWS Secrets ManagerまたはIAM(Identity and Access Management)ポリシーを介して安全に保管され、承認されたユーザのみがアクセスできるようにすることができます。また、サードパーティのシークレット管理プロバイダによって管理することも可能です。
最終的に、AWSコンテナのセキュリティに対するお客さまの責任は、どれだけ強固な対策を講じるかによって決まります。コンテナライフサイクルの各フェーズにおいて、セキュリティのベストプラクティスを意図的かつ体系的に組み込むことが、クラウド環境における安全性を確保する鍵となります。
Fernando Cardosoはトレンドマイクロのプロダクトマネジメント担当バイスプレジデントとして、進化を続けるAIとクラウドの領域に注力しています。ネットワークエンジニアおよびセールスエンジニアとしてキャリアをスタートさせ、データセンター、クラウド、DevOps、サイバーセキュリティといった分野でスキルを磨きました。これらの分野は、今なお彼の情熱の源となっています。