なるべく楽したい
AWSセキュリティ
Leaner Technologies Inc.
黒曜
(@kokuyouwind)
$ whoami
-
黒曜 / @kokuyouwind
-
名古屋在住
-
Leaner Technologies Inc. 所属
-
Railsエンジニア
-
Next.js とか AWS 周りも触ってる
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/2441388/i_yumemi.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548310/スクリーンショット_2022-05-10_15.02.58.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9408799/IMG_3133.jpg)
We're Hiring!!!
AWS セキュリティ
なんかいろいろある
IAM
WAF
SSO
Config
Organization
GuardDuty
SecurityGroup
CloudTrail
SecurityHub
ControlTower
Inspector
🤔
何をどこまでやれば……?
ちゃんと安全に運用したうえで、
なるべく楽したい!
どうやって安全に楽をするか
-
AWSのベストプラクティスに従う
-
SecurityHub でセキュリティチェック
-
-
なるべく持ち物を減らし、ツールの既定に合わせる
-
Fargateを使い管理対象インスタンスを減らす
-
ネットワーク環境構築をCopilot CLIに任せる
-
-
アプリケーションレベルでもAWSサービスを活用する
-
典型的な攻撃はアプリ到達前にWAFで防ぐ
-
ECRコンテナスキャンで脆弱性をチェックする
-
…という話をしていきます
アジェンダ
-
セキュリティレイヤーの分類
-
AWSアカウントのセキュリティ
-
ネットワークのセキュリティ
-
Webアプリのセキュリティ
-
データストアのセキュリティ
-
まとめ
アジェンダ
-
セキュリティレイヤーの分類
-
AWSアカウントのセキュリティ
-
ネットワークのセキュリティ
-
Webアプリのセキュリティ
-
データストアのセキュリティ
-
まとめ
AWSでWebアプリを運用するとき、
攻撃されそうなポイントを考えてみる
ざっくりしたWebアプリ構成
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9545820/セキュリティレイヤー__3_.png)
攻撃ポイント1: AWSアカウント
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9545841/攻撃レイヤー1.png)
攻撃ポイント2: ネットワーク
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9545848/攻撃レイヤー2.png)
攻撃ポイント3: Webアプリ
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9545865/攻撃レイヤー3.png)
攻撃ポイント4: データストア
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9545890/攻撃レイヤー4.png)
このあたりは確実に対策が必要
アジェンダ
-
セキュリティレイヤーの分類
-
AWSアカウントのセキュリティ
-
ネットワークのセキュリティ
-
Webアプリのセキュリティ
-
データストアのセキュリティ
-
まとめ
AWSアカウントの初期設定は
ベストプラクティスに従うのが確実
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9545908/スクリーンショット_2022-05-09_18.09.43.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9545910/スクリーンショット_2022-05-09_18.10.25.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9545919/スクリーンショット_2022-05-09_18.12.48.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9545924/スクリーンショット_2022-05-09_18.13.58.png)
SecurityHub で設定状況チェック
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9547970/スクリーンショット_2022-05-10_9.35.11.png)
Leaner のセキュリティスコア
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9547971/スクリーンショット_2022-05-10_9_36_57.png)
セキュリティスコア100%じゃないの?
-
リモートワークだと物理MFAデバイスのハードルが高い
-
ルート封印だけとはいえ、アカウント作るたびに
誰かがボトルネックになるのは避けたい -
今は1passwordの仮想デバイスでMFA設定している
-
-
重要度: 中 以下は個別に対応するか検討している
-
Copilot CLIで作ったリソースが引っかかっているのは
リスク低ければ対応を見送っている -
ログ系は全対応するとコストが嵩む
-
環境ごとにAWSアカウントを分ける
誤操作や悪用時のリスクを低減
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9547998/アカウント分割__1_.png)
Control Tower使わないの?
-
徐々に設定を増やしていく戦略にしたので未導入
-
SSOなど自分が未使用だったものは
まず個別に触れてから統合サービスを入れたかった -
新サービス用のAWSアカウント準備を優先したので
なるべく小さく対応したかった
-
-
次にAWSアカウント作る前には移行しておきたい
-
権限管理も現状は最低限の分類なので、
移行のタイミングで見直したい
-
アジェンダ
-
セキュリティレイヤーの分類
-
AWSアカウントのセキュリティ
-
ネットワークのセキュリティ
-
Webアプリのセキュリティ
-
データストアのセキュリティ
-
まとめ
VPCやセキュリティグループは
Copilot CLIに任せると安全かつ楽
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548033/スクリーンショット_2022-05-10_10.29.02.png)
Copilot CLIで構築した環境
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548039/copilot構成.png)
Copilot CLI構築の良い点
-
VPCだけでなくALBやECSのセキュリティグループも
自動で作ってくれる-
ECSはALBからのアクセスしか受けつけない設定になる
-
-
ECS on Fargateになるので持ち物が減る
-
EC2のOSやミドルウェア更新を気にしなくて良くなる
-
copilot svc exec でsshライクな作業も可能
-
-
今ならApp Runnerだともっと持ち物を減らせる
-
WAF未対応など課題がありECSにしている
-
アジェンダ
-
セキュリティレイヤーの分類
-
AWSアカウントのセキュリティ
-
ネットワークのセキュリティ
-
Webアプリのセキュリティ
-
データストアのセキュリティ
-
まとめ
Webアプリのセキュリティ対策
-
AWS WAFを挟んで典型的な攻撃を到達前にブロック
-
基本的なManaged Ruleを適用
-
標準リクエストで引っかかってしまうエンドポイントは
個別に許可ルールを設定
-
-
ECRでコンテナイメージをスキャン
-
重大な脆弱性がないかだけ定期的にチェック
-
-
GitHub Dependabotでセキュリティアラート
-
VAddyで定期的に脆弱性検査テスト
AWS WAF の推奨設定
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548209/スクリーンショット_2022-05-10_13.39.47.png)
Waf Charmのブログ記事にある
導入推奨セットがわかりやすい
AWS WAF の実際の設定
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548218/スクリーンショット_2022-05-10_13.43.31.png)
AWS WAF のブロックサンプル
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548226/スクリーンショット_2022-05-10_13.45.59.png)
AWS WAF のブロック通知
Slack通知してFalse Positive なブロックがないかチェック
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548378/waf.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548383/スクリーンショット_2022-05-10_15.34.01.png)
ECR Container Scan
コンテナイメージを Clair でスキャンした結果が見られる
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548254/スクリーンショット_2022-05-10_14_02_53.png)
Critical含めていっぱい出てない?
CVEは False Positive も結構出る
(DockerのFAQにも項目がある)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548261/スクリーンショット_2022-05-10_14.10.22.png)
Docker ImageのCVEは推移が重要
イメージ検査を重視するなら拡張スキャンにすると良さそう
(ただしスキャン毎のコストがそこそこ掛かるようになる)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/482970/images/9548263/スクリーンショット_2022-05-10_14.14.07.png)
アジェンダ
-
セキュリティレイヤーの分類
-
AWSアカウントのセキュリティ
-
ネットワークのセキュリティ
-
Webアプリのセキュリティ
-
データストアのセキュリティ
-
まとめ
データストアのセキュリティ対策
-
基本的なことをちゃんとやる
-
RDSはパブリックアクセスを無効にする
-
RDSの接続元はセキュリティグループで絞る
-
S3は「パブリックアクセスをすべてブロック」にする
-
データの暗号化を有効にする
-
-
SecurityHubに従っていれば上記は設定されているはず
アジェンダ
-
セキュリティレイヤーの分類
-
AWSアカウントのセキュリティ
-
ネットワークのセキュリティ
-
Webアプリのセキュリティ
-
データストアのセキュリティ
-
まとめ
どうやって安全に楽をするか(Reprise)
-
AWSのベストプラクティスに従う
-
SecurityHub でセキュリティチェック
-
-
なるべく持ち物を減らし、ツールの既定に合わせる
-
Fargateを使い管理対象インスタンスを減らす
-
ネットワーク環境構築をCopilot CLIに任せる
-
-
アプリケーションレベルでもAWSサービスを活用する
-
典型的な攻撃はアプリ到達前にWAFで防ぐ
-
ECRコンテナスキャンで脆弱性をチェックする
-
なるべく楽したいAWSセキュリティ
By 黒曜
なるべく楽したいAWSセキュリティ
AWS Startup Communityの「スタートアップ事例祭り 〜監視・モニタリング・セキュリティ編〜」で発表した資料です。 https://aws-startup-community.connpass.com/event/241721/
- 11,427