$30 off During Our Annual Pro Sale. View Details »

なるべく楽したいAWSセキュリティ

 なるべく楽したいAWSセキュリティ

オリジナル: https://slides.com/kokuyouwind/aws-startup-community-202205

AWS Startup Communityの「スタートアップ事例祭り 〜監視・モニタリング・セキュリティ編〜」で発表した資料です。 https://aws-startup-community.connpass.com/event/241721/

kokuyouwind

May 10, 2022
Tweet

More Decks by kokuyouwind

Other Decks in Programming

Transcript

  1. なるべく楽したい
    AWS
    セキュリティ
    Leaner Technologies Inc.
    黒曜
    (@kokuyouwind)

    View Slide

  2. $ whoami
    黒曜 / @kokuyouwind
    名古屋在住
    Leaner Technologies Inc.
    所属
    Rails
    エンジニア
    Next.js
    とか AWS
    周りも触ってる

    View Slide

  3. https://leaner.jp/

    View Slide

  4. We're Hiring!!!

    View Slide

  5. AWS
    セキュリティ

    View Slide

  6. なんかいろいろある
    IAM
    WAF
    SSO
    Config
    Organization GuardDuty
    SecurityGroup
    CloudTrail
    SecurityHub
    ControlTower
    Inspector

    View Slide

  7. 🤔
    何をどこまでやれば……

    View Slide

  8. ちゃんと安全に運⽤したうえで、
    なるべく楽したい!

    View Slide

  9. どうやって安全に楽をするか
    AWS
    のベストプラクティスに従う
    SecurityHub
    でセキュリティチェック
    なるべく持ち物を減らし、ツールの既定に合わせる
    Fargate
    を使い管理対象インスタンスを減らす
    ネットワーク環境構築をCopilot CLI
    に任せる
    アプリケーションレベルでもAWS
    サービスを活⽤する
    典型的な攻撃はアプリ到達前にWAF
    で防ぐ
    ECR
    コンテナスキャンで脆弱性をチェックする

    View Slide


  10. という話をしていきます

    View Slide

  11. アジェンダ
    セキュリティレイヤーの分類
    AWS
    アカウントのセキュリティ
    ネットワークのセキュリティ
    Web
    アプリのセキュリティ
    データストアのセキュリティ
    まとめ

    View Slide

  12. アジェンダ
    セキュリティレイヤーの分類
    AWS
    アカウントのセキュリティ
    ネットワークのセキュリティ
    Web
    アプリのセキュリティ
    データストアのセキュリティ
    まとめ

    View Slide

  13. AWS
    でWeb
    アプリを運⽤するとき、
    攻撃されそうなポイントを考えてみる

    View Slide

  14. ざっくりしたWeb
    アプリ構成

    View Slide

  15. 攻撃ポイント1: AWS
    アカウント

    View Slide

  16. 攻撃ポイント2:
    ネットワーク

    View Slide

  17. 攻撃ポイント3: Web
    アプリ

    View Slide

  18. 攻撃ポイント4:
    データストア

    View Slide

  19. このあたりは確実に対策が必要

    View Slide

  20. アジェンダ
    セキュリティレイヤーの分類
    AWS
    アカウントのセキュリティ
    ネットワークのセキュリティ
    Web
    アプリのセキュリティ
    データストアのセキュリティ
    まとめ

    View Slide

  21. AWS
    アカウントの初期設定は
    ベストプラクティスに従うのが確実

    View Slide

  22. https://dev.classmethod.jp/articles/aws-1st-step-2021/

    View Slide

  23. https://dev.classmethod.jp/articles/aws-security-all-in-one-2021/

    View Slide

  24. SecurityHub
    で設定状況チェック
    https://aws.amazon.com/jp/security-hub/

    View Slide

  25. Leaner
    のセキュリティスコア

    View Slide

  26. セキュリティスコア100%
    じゃないの?
    リモートワークだと物理MFA
    デバイスのハードルが⾼い
    ルート封印だけとはいえ、アカウント作るたびに
    誰かがボトルネックになるのは避けたい
    今は1password
    の仮想デバイスでMFA
    設定している
    重要度:
    中 以下は個別に対応するか検討している
    Copilot CLI
    で作ったリソースが引っかかっているのは
    リスク低ければ対応を⾒送っている
    ログ系は全対応するとコストが嵩む

    View Slide

  27. 環境ごとにAWS
    アカウントを分ける
    誤操作や悪⽤時のリスクを低減

    View Slide

  28. Control Tower
    使わないの?
    徐々に設定を増やしていく戦略にしたので未導⼊
    SSO
    など⾃分が未使⽤だったものは
    まず個別に触れてから統合サービスを⼊れたかった
    新サービス⽤のAWS
    アカウント準備を優先したので
    なるべく⼩さく対応したかった
    次にAWS
    アカウント作る前には移⾏しておきたい
    権限管理も現状は最低限の分類なので、
    移⾏のタイミングで⾒直したい

    View Slide

  29. アジェンダ
    セキュリティレイヤーの分類
    AWS
    アカウントのセキュリティ
    ネットワークのセキュリティ
    Web
    アプリのセキュリティ
    データストアのセキュリティ
    まとめ

    View Slide

  30. VPC
    やセキュリティグループは
    Copilot CLI
    に任せると安全かつ楽

    View Slide

  31. https://aws.github.io/copilot-cli/ja/

    View Slide

  32. Copilot CLI
    で構築した環境

    View Slide

  33. Copilot CLI
    構築の良い点
    VPC
    だけでなくALB
    やECS
    のセキュリティグループも
    ⾃動で作ってくれる
    ECS
    はALB
    からのアクセスしか受けつけない設定になる
    ECS on Fargate
    になるので持ち物が減る
    EC2
    のOS
    やミドルウェア更新を気にしなくて良くなる
    copilot svc exec
    でssh
    ライクな作業も可能
    今ならApp Runner
    だともっと持ち物を減らせる
    WAF
    未対応など課題がありECS
    にしている

    View Slide

  34. アジェンダ
    セキュリティレイヤーの分類
    AWS
    アカウントのセキュリティ
    ネットワークのセキュリティ
    Web
    アプリのセキュリティ
    データストアのセキュリティ
    まとめ

    View Slide

  35. Web
    アプリのセキュリティ対策
    AWS WAF
    を挟んで典型的な攻撃を到達前にブロック
    基本的なManaged Rule
    を適⽤
    標準リクエストで引っかかってしまうエンドポイントは
    個別に許可ルールを設定
    ECR
    でコンテナイメージをスキャン
    重⼤な脆弱性がないかだけ定期的にチェック
    GitHub Dependabot
    でセキュリティアラート
    VAddy
    で定期的に脆弱性検査テスト

    View Slide

  36. AWS WAF
    の推奨設定
    https://www.wafcharm.com/blog/how-to-choose-aws-managed-rules/
    Waf Charm
    のブログ記事にある
    導⼊推奨セットがわかりやすい

    View Slide

  37. AWS WAF
    の実際の設定

    View Slide

  38. AWS WAF
    のブロックサンプル

    View Slide

  39. AWS WAF
    のブロック通知
    Slack
    通知してFalse Positive
    なブロックがないかチェック
    https://zenn.dev/leaner_tech/articles/20211125-waf-notify

    View Slide

  40. ECR Container Scan
    コンテナイメージを Clair
    でスキャンした結果が⾒られる

    View Slide

  41. Critical
    含めていっぱい出てない?
    CVE
    は False Positive
    も結構出る
    (Docker
    のFAQ
    にも項⽬がある)
    https://github.com/docker-library/faq#image-building

    View Slide

  42. Docker Image
    のCVE
    は推移が重要
    イメージ検査を重視するなら拡張スキャンにすると良さそう
    (
    ただしスキャン毎のコストがそこそこ掛かるようになる)
    https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/image-scanning.html

    View Slide

  43. アジェンダ
    セキュリティレイヤーの分類
    AWS
    アカウントのセキュリティ
    ネットワークのセキュリティ
    Web
    アプリのセキュリティ
    データストアのセキュリティ
    まとめ

    View Slide

  44. データストアのセキュリティ対策
    基本的なことをちゃんとやる
    RDS
    はパブリックアクセスを無効にする
    RDS
    の接続元はセキュリティグループで絞る
    S3
    は「パブリックアクセスをすべてブロック」にする
    データの暗号化を有効にする
    SecurityHub
    に従っていれば上記は設定されているはず

    View Slide

  45. アジェンダ
    セキュリティレイヤーの分類
    AWS
    アカウントのセキュリティ
    ネットワークのセキュリティ
    Web
    アプリのセキュリティ
    データストアのセキュリティ
    まとめ

    View Slide

  46. どうやって安全に楽をするか(Reprise)
    AWS
    のベストプラクティスに従う
    SecurityHub
    でセキュリティチェック
    なるべく持ち物を減らし、ツールの既定に合わせる
    Fargate
    を使い管理対象インスタンスを減らす
    ネットワーク環境構築をCopilot CLI
    に任せる
    アプリケーションレベルでもAWS
    サービスを活⽤する
    典型的な攻撃はアプリ到達前にWAF
    で防ぐ
    ECR
    コンテナスキャンで脆弱性をチェックする

    View Slide