3.2K Views
February 10, 24
スライド概要
KoedoLUG 2024.02 発表資料その2
Georepublic / OSGeo.JP / Japan Unix Society / OpenStreetMap Foundation Japan
S3でアンチウイルスかけたいんじゃ Taro Matsuzawa (@smellman) KoedoLUG 2024/02 KoedoLUG 2024/02 1
自己紹介 Georepublic Japan GIS Engineer Sub-President, Japan UNIX Society Director, OSGeo.JP Director, OpenStreetMap Foundation Japan Lead of United Nation OpenGIS/7 core Breakcore cluster KoedoLUG 2024/02 2
やった事 S3にファイルをアップロードしたら、Lambdaでアンチウイルスをかける という仕組みは元々あった 今回はPython 3.12に対応をした ついでにLocalstackでテストもした KoedoLUG 2024/02 3
bucket-antivirus-function https://github.com/Georepublic/bucket-antivirus-function 元々はUpside Travel, Inc.が作ったもの Upstreamが全滅している(2024/02/19現在) しょうがないので、会社のレポジトリに移動してPython 3.12に対応した 元はPython 3.7で止まっていて、LambdaのランタイムがEOLを迎えていた ついでにAmazon Linux 2023で動くようにした ついでにLocalstackでテストもした KoedoLUG 2024/02 4
おおざっぱな仕組み S3にファイルをアップロードすると、Lambdaが起動する(イベントトリガー) LambdaはアップロードされたファイルをClamAVでスキャンする ウイルスがあれば、ファイルを検知した旨をLogに出力する。また、削除フラグが有効な らファイルを削除する ウイルスがなければ、何もしない KoedoLUG 2024/02 5
やってること アンチウイルスの定義もS3で共有している 定期的にアップデートをする必要がある LambdaはS3にアップロードされたファイルを取得して、ClamAVでスキャンする ClamAVはS3にアップロードされたファイルを直接スキャンできないので、一時フ ァイルを作成してスキャンする KoedoLUG 2024/02 6
localstackとは https://www.localstack.cloud/ AWSのローカル環境を提供するツール 今回はS3とLambdaを使ったので、それだけを使った 他にもいろいろある KoedoLUG 2024/02 7
使い方 https://github.com/Georepublic/bucket-antivirusfunction/blob/master/.github/workflows/lambda.yaml Github Actionsのテストがわかりやすいかも READMEにも使い方は書いています Python 3.12のランタイムで動かす必要があります CDKとかでデプロイすると楽です KoedoLUG 2024/02 8
まとめ Lambdaも定期的にEOLを迎えるので、アップデートを忘れないように ClamAV本体もたまにアップデートがあるので、それも忘れないように Local開発環境があるといろいろ楽になります Localstackは便利です KoedoLUG 2024/02 9