Copyright © 2023 Bitkey Inc. All right reserved.TrivyでAWSセキュリティをシフトレフトしようQiita Night 〜AWS vol.2〜 登壇資料 (2023/05/24)株式会社ビットキー 星野貴信 2023/05/24
View Slide
2Copyright © 2023 Bitkey Inc. All right reserved.発表スライドは公開済みのためBitkeyDevelopersのTwitterアカウントから手元に開いてお楽しみくださいスライドへのリンク
3Copyright © 2023 Bitkey Inc. All right reserved.自己紹介星野 貴信Hoshino Takanobu2014.032020.012022.11ソフトウェアエンジニアとしてキャリアを開始受託開発でRubyやPHPによるWebアプリケーションを開発する過程で、AWSの面白さに目覚め、インフラ方面に進む株式会社LCLクラウドエンジニアとしてサービス運用改善やAWSの活用をリード株式会社ビットキーSREとして入社し、現在はSETとのハイブリッド品質を軸に多方面に活動好きなAWSサービス
4Copyright © 2023 Bitkey Inc. All right reserved.Devトークの案内We are hiring ! & Devトークありますhttps://jobs.qiita.com/employers/240/dev_talks/566
5Copyright © 2023 Bitkey Inc. All right reserved.会社紹介https://speakerdeck.com/bitkey/yuzati-yan-woxiang-shang-saserukagiha-fen-duan-nojie-xiao-jue-dui-nizhi-merarenaisumatorotukuwoxi-usisutemunoli-ce?slide=2
6Copyright © 2023 Bitkey Inc. All right reserved.会社紹介https://speakerdeck.com/bitkey/yuzati-yan-woxiang-shang-saserukagiha-fen-duan-nojie-xiao-jue-dui-nizhi-merarenaisumatorotukuwoxi-usisutemunoli-ce?slide=11
7Copyright © 2023 Bitkey Inc. All right reserved.会社紹介https://speakerdeck.com/bitkey/yuzati-yan-woxiang-shang-saserukagiha-fen-duan-nojie-xiao-jue-dui-nizhi-merarenaisumatorotukuwoxi-usisutemunoli-ce?slide=15
8Copyright © 2023 Bitkey Inc. All right reserved.この発表から得られること1. クラウドインフラ、特にAWSに対するInfrastructure as Codeのテスト技法2. セキュリティスキャナ Trivyの概要と導入時のポイント
9Copyright © 2023 Bitkey Inc. All right reserved.今日話すことSREかつSETということで、今日はクラウドインフラのテストについて話します!
10Copyright © 2023 Bitkey Inc. All right reserved.今日話すことクラウドインフラのテストの中からInfrastructure as Code(IaC)のテスト技法を取り上げます
11Copyright © 2023 Bitkey Inc. All right reserved.Outline1. なぜクラウドインフラをテストするのか2. Infrastructure as Codeのテスト技法3. Trivyの概要4. Trivy運用時のTips5. まとめ
12Copyright © 2023 Bitkey Inc. All right reserved.1. なぜクラウドインフラをテストするのか
13Copyright © 2023 Bitkey Inc. All right reserved.ビットキーは事業領域が広く、プロダクトが多岐に渡りますそのようなプロダクト群を支えるインフラは、マルチクラウドで、携わる開発者も増加します1. なぜクラウドインフラをテストするのかクラウドインフラをテストする目的
14Copyright © 2023 Bitkey Inc. All right reserved.規模が大きくなればなるほど、セキュリティなど、チェックしなければいけない項目は増加します全容を把握するのが難しく、包括的なチェックには時間がかかってしまいます1. なぜクラウドインフラをテストするのかクラウドインフラをテストする目的
15Copyright © 2023 Bitkey Inc. All right reserved.ソフトウェアを開発するようにクラウドインフラもデプロイ前にテストがしたいテストによるフィードバックを早める「シフトレフト」をします1. なぜクラウドインフラをテストするのかクラウドインフラをテストする目的
16Copyright © 2023 Bitkey Inc. All right reserved.IaC化をすることで、事前のテストを容易にしてシフトレフトを加速させることができます1. なぜクラウドインフラをテストするのかクラウドインフラをテストする目的
17Copyright © 2023 Bitkey Inc. All right reserved.2. Infrastructure as Codeのテスト技法
18Copyright © 2023 Bitkey Inc. All right reserved.2. Infrastructure as Codeのテスト技法IaCにどのようなテスト技法があるか1. リンターによるシンタックスチェック + α2. Policy as Codeによるカスタムチェック3. 静的解析によるセキュリティチェック4. 実際にデプロイしてリソースを作成する
19Copyright © 2023 Bitkey Inc. All right reserved.2. Infrastructure as Codeのテスト技法1. リンターによるシンタックスチェック + α・terraform validateCLIにビルトインされているシンタックスチェック・TFLint事前定義されたルールセットでベストプラクティスなどをチェック・cfn-lintCloudFormation Resource Specificationに沿っているかやベストプラクティスのチェック
20Copyright © 2023 Bitkey Inc. All right reserved.2. Infrastructure as Codeのテスト技法2. Policy as Codeによるカスタムチェック・Hachicorp SentinelHashicorpのプロダクト専用のPolicy as Codeのフレームワーク・ConftestPolicy記述言語RegoによるOpen Policy AgentのPolicy適用をサポートするユーティリティCloudFormation専用ではなく汎用のツールのため、Terraformでも使えます※Policy as Codeは前述のリンターでカバーしきれない、独自のルールを定義してチェックすることを支援します
21Copyright © 2023 Bitkey Inc. All right reserved.2. Infrastructure as Codeのテスト技法3. 静的解析によるセキュリティチェック・Trivy・Checkcov・Terrascan・Synk Infrastructure主にOSSとして提供されていたり、SaaSの1機能として利用可能です
22Copyright © 2023 Bitkey Inc. All right reserved.2. Infrastructure as Codeのテスト技法・TerratestTerraformをApplyしてリソースを検証可能なユーティリティを提供している・TaskCatCloudFormation Templateをマルチリージョンにデプロイして成否のレポートを生成するツール※これらのツールは大規模環境でプラットフォームエンジニアリングチームが、社内に配布するTerraformモジュールやCloudFormation Templateを継続的にメンテし続ける用途で使われると想像しています4. 実際にデプロイしてリソースを作成する
23Copyright © 2023 Bitkey Inc. All right reserved.クラウドインフラの主要なテスト技法1. 静的なコード検査2. 動的なデプロイ実行ここまでのまとめ
24Copyright © 2023 Bitkey Inc. All right reserved.ここまでのまとめ特に静的なコード検査は、素早いフィードバックを得ることで、インフラ構築をより安全にミスなく行うことを支援します
25Copyright © 2023 Bitkey Inc. All right reserved.3. Trivyの概要
26Copyright © 2023 Bitkey Inc. All right reserved.ここからは紹介したツールのうちセキュリティスキャナのTrivyを取り上げます3. Trivyの概要Trivyの紹介
27Copyright © 2023 Bitkey Inc. All right reserved.・コンテナイメージ・ファイルシステム・Gitリポジトリ・VMイメージ・Kubernetes・AWS3. Trivyの概要Trivyの紹介 多様なスキャン対象
28Copyright © 2023 Bitkey Inc. All right reserved.・OSパッケージ・SWの依存パッケージ・既知の脆弱性(CVEs)・IaCのセキュリティ・AWSアクセスキーなど・ソフトウェアライセンス3. Trivyの概要Trivyの紹介 多様な検出対象
29Copyright © 2023 Bitkey Inc. All right reserved.Trivyの前身にあたるTerraformのセキュリティスキャナとしてtfsecが開発されていましたhttps://github.com/aquasecurity/tfsec3. Trivyの概要tfsecとの関係
30Copyright © 2023 Bitkey Inc. All right reserved.tfsecもAqua Securityによって買収されたことでTrivyに統合されることとなりました3. Trivyの概要tfsecとの関係
31Copyright © 2023 Bitkey Inc. All right reserved.Trivyに移行を推奨するアナウンスが出ていますので、もし利用中の方が移行を進めましょうhttps://github.com/aquasecurity/tfsec/discussions/19943. Trivyの概要tfsecとの関係
32Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTips
33Copyright © 2023 Bitkey Inc. All right reserved.TerraformでS3バケットを作成します4. Trivy運用時のTipsTirvyを実際に使ってみる
34Copyright © 2023 Bitkey Inc. All right reserved.Trivyを実行します4. Trivy運用時のTipsTirvyを実際に使ってみる
35Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsTirvyを実際に使ってみる
36Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsTirvyを実際に使ってみる
37Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsTirvyを実際に使ってみる
38Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsTirvyを実際に使ってみる
39Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsTirvyを実際に使ってみる
40Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsTirvyを実際に使ってみる
41Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsTirvyを実際に使ってみる
42Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsTirvyを実際に使ってみる
43Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsTirvyを実際に使ってみる
44Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsTirvyを実際に使ってみる😳
45Copyright © 2023 Bitkey Inc. All right reserved.1. パブリックアクセスブロックの未設定2. バケット暗号化の未設定3. バケットロギングの未設定4. バケットバージョニングの未設定5. カスタマーマネージドキーによる暗号化の未設定4. Trivy運用時のTipsチェックの内訳
46Copyright © 2023 Bitkey Inc. All right reserved.紹介したチェックのうち、この2つの項目は可能な限り対応するのが望ましいと考えます・パブリックアクセスブロックの未設定・バケット暗号化の未設定4. Trivy運用時のTipsチェックとの向き合い方※ 2023年4月から全ての新しいバケットに対してパブリックアクセスブロックが有効化、アクセスコントロールリストが無効化されているため、誤ってバケットがパブリックになるリスクは減っていますが明示的に設定することは依然として有効ですhttps://aws.amazon.com/jp/about-aws/whats-new/2022/12/amazon-s3-automatically-enable-block-public-access-disable-access-control-lists-buckets-april-2023/
47Copyright © 2023 Bitkey Inc. All right reserved.他の項目は要件と相談して対応可否を決定しましょう・バケットロギングの未設定・バケットバージョニングの未設定・カスタマーマネージドキーによる暗号化の未設定4. Trivy運用時のTipsチェックとの向き合い方
48Copyright © 2023 Bitkey Inc. All right reserved.4. Trivy運用時のTipsチェックを解消したコードバケットバージョニングとバケットロギングはignoreするコメントを追加Customer Managed Keyでバケットを暗号化パブリックアクセスをブロック
49Copyright © 2023 Bitkey Inc. All right reserved.Trivyの実行を開発者が毎回手で実行していては抜け漏れが発生しがちですアプリケーション開発と同じように、Gitのpre-commithookや、GitHub ActionsなどのCI環境で自動実行されるようにしましょう4. Trivy運用時のTips自動で実行しよう※ Trivyのようなリポジトリで利用するCLIはaquaで管理すると導入がスムーズですhttps://aquaproj.github.io/
50Copyright © 2023 Bitkey Inc. All right reserved.5. まとめ
51Copyright © 2023 Bitkey Inc. All right reserved.5. まとめTrivyによって、TerraformやCloudFormationで記述されたAWSインフラのセキュリティチュックを自動化してシフトレフトすることできましたチェックは鵜呑みにせず、要件に応じて向き合っていきましょうHappy Testing !
52End of FileCopyright © 2023 Bitkey Inc. All right reserved.