こんにちは!
コンテナのセキュリティ対策を考えているこの頃、やはりマネージドサービスを利用すれば対策する箇所が減って楽だなと思っております。
今回は AWS のコンテナサービス、Fargate のセキュリティについてお話しします!
AWS が提供する ECS というコンテナサービスには、EC2 ホスト型と Fargate があります。前者は ECS + EC2 の管理が必要ですが、後者はマネージドサービスのためサーバ管理が不要となります。
本記事ではマネージドサービスである Fargate を利用する上でのセキュリティ対策について解説していきます!前回のコンテナセキュリティに関する記事と合わせて読むと、Fargate の良さがわかるので、ぜひ両記事とも読んでみてください!
スタートアップCTOが教える、AWSのコンテナセキュリティ!コンテナを安全に運用するベストプラクティスを解説😎
一般的にコンテナセキュリティで保護する5つの項目は以下になります。
ではこれらに対して Fargate を利用する場合、どんな対策が必要なのかを説明していきます。
AWS には共有範囲モデルという、どこまでが AWS の責任でどこまでがユーザーの責任かを明確にするモデルがあります。それを参考に Fargate の責任範囲を見てみましょう。
オレンジ色が AWS、水色の部分がユーザーの責任範囲となります。この図を見ると、ホストOS の管理は AWS の責任で、IAM やコンテナなどの管理はユーザーの責任ということがわかります。
つまり「ホストOS」は Fargate を利用する場合、AWS の管理下となるためセキュリティ対策は不要ということになります。
AWS は管理しているすべてのサーバに対して、定期的なセキュリティチェックを行っていたり、外部からのセキュリティ対策を行なっていたりするのでホストOSの管理に対しては安心できます。
これによりホストOS 以外の項目のみを意識すればよいことになります。
イメージとレジストリのセキュリティは、ECS ではなく ECR で行います。
ECR はデフォルトで push 時にイメージの脆弱性をスキャンしてくれます。しかし定期的なスキャンは手動で行わなければならないので、Lambda などを利用して定期的にスキャンを実行するロジックを構築しましょう。これでイメージに対するセキュリティ対策は完了です。
次にレジストリですが、ECR に対するアクセス管理を IAM で適切に設定したり、ECR に対するアクセシビリティを CloudTrail で監視したりすることで、セキュリティ対策を実施することができます。
次にオーケストレータ、Fargate の場合は ELB のセキュリティ対策が必要です。
このセキュリティ対策は Fargate 特有なものはないので、ELB のセキュリティ対策として一般的なアプローチで実施します。以下の設定を行ってください。
これによりオーケストレータのセキュリティ対策を実施できます!
最後にコンテナのセキュリティ対策を行います。実施するものとしては以下になります。
データの保護(ストレージの暗号化)に関してはどの方にも共通して必要になりますが、サードパーティに関しては特定の場合だと必要ありません。
ECSにある readonlyRootFilesystem を有効にした場合、文字通りルートファイルシステムへのアクセスは読み取り専用となるので、マルウェアなどが動けなくなるからです。
これはサービスの要件よって可否が決まりますが、確実にセキュアになるのでぜひ活用していただきたいポイントになります。ご参考になれば幸いです。
Fargate を利用するとインフラ管理をしなくていいのがやはりメリットですね。ただしコンテナ関連の管理は依然として必要になりますので、安心せずに日々監視していきたいものです。
このブログでは、AWS の記事をどんどん公開しておりますので、ご興味のある方は他の記事もご覧いただければと思います。
AWS に関する開発は、お気軽にお問い合わせください。
スモールスタート開発支援、サーバーレス・NoSQLのことなら
ラーゲイトまでご相談ください
低コスト、サーバーレスの
モダナイズ開発をご検討なら
下請け対応可能
Sler企業様からの依頼も歓迎