リンクバル技術部の川畑です。AWS re:Invent 2018に参加するためラスベガスに来ています。本日もKeynoteでLambdaでのRubyサポート、そしてCOBOLも使えるようになるなど衝撃的な新サービスの発表がありました。
特にサーバーレスについては、Lambdaの前にALBを配置することが可能なので、WAFを設定できるようになり、DBはDynamoDBがトランザクションをサポート開始し、オンデマンドの従量課金体系に変わったので、これからはセキュリティやデータベースの制約でLambdaにできなかったシステム開発が可能となり、Lambdaを使ったサーバーレス化が加速するのではないかと思われます。
本日はそのLambdaのセキュリティ観点を学ぶために「Securing Serverless Applications and AWS Lambda」というワークショップを受けてきたので、その内容を簡単に共有させて頂きます。
Securing Serverless Applications and AWS Lambda
ワークショップは初めに想定されている構成を説明したあと、対策するポイントの説明、ワークショップで使うGitリポジトリの共有があり、その後は個人で進めていき、わからないことがあればスタッフの方に確認するといった感じで進められました。
想定されている構成
ユーザー認証にはCognito、WebフロントページはCloudFront+S3、APIはAPI Gateway+Lambda、DBはDynamoDBとRDSを使っているといった想定の構成となります。
サーバーレスアプリケーションの対策ポイント
大きく分けて5つのカテゴリに分類されるようです。
すべてを対策するとセキュリティコストが膨大になるのでw、OWASP TOP10を確認して、効果の高いものについて対策していく。
OWASP TOP10を5つのカテゴリに分類すると以下の通り。
このあたりに整理の仕方は大変参考になりました!
この項目をもとに1つ1つ対策していくといった内容となります。
ワークショップ
ワークショップはGitリポジトリのReadmeの通りに進めていきます。ワークショップ内容は次の項目となります。
0.preparation
1.add authentication
2.Secret Manager
3.Input Validation
4.encryption in transit
5.Usage Plan
6.WAF
7.Dependency Vulnerability
8.XRay
細かい内容は割愛させて頂きますが、私は1まで完了した状態で時間切れとなりました。私の名誉のために補足させて頂きますが、ほとんどのひとは1の途中だったと思われます。最速の人でも3までしかたどり着けなかったようです。
内容は充実してて、私の場合はほとんど聞かないでも進められる内容でした。空き時間で引き続き最後までやり遂げたいと思います。
おまけ
本日はre:Playに参加してきました。毎年恒例になっているようで日本でいう野外イベントといった感じでしょうか。中にはクラブ・ゲーム・ライブの大きなドーム型のテントがありました。正直なところ私はこういう雰囲気に慣れていないので何か楽しいのかわからなかったのですが、みなさん楽しそうに過ごしていました。
会場の様子。
ライブではミュージシャンが演奏して歌っていました。