Bastion ~ AWS Fargateで実現するサーバーレスな踏み台設計 / Bastion using AWS Fargate

C636093440dd4a8be6416e83cb980979?s=47 iselegant
September 25, 2020
5.9k

Bastion ~ AWS Fargateで実現するサーバーレスな踏み台設計 / Bastion using AWS Fargate

Infra Study Meetup #6でのLT登壇資料になります。

C636093440dd4a8be6416e83cb980979?s=128

iselegant

September 25, 2020
Tweet

Transcript

  1. A W S F a r g a t e

    Ͱ ࣮ ݱ ͢ Δ α ʔ ό ʔ Ϩ ε ͳ ౿ Έ ୆ ઃ ܭ B a s t i o n Infra Study Meetup #6 Lightning Talk @msy78
  2. ৽Ҫ խ໵ .BTBZB"3"* ϑϧελοΫσΟϕϩούʔʢۚ༥୲౰ʣ "1/"845PQ&OHJOFFST msy78 iselegant JAWS-UG Container

  3. Bastion ౿Έ୆ ϗετ ຊ೔͸ ʹؔ͢Δ͓࿩Λ͍͖ͤͯͨͩ͞·͢ɻ

  4. ύϒϦοΫͳωοτϫʔΫ͔Βɺ ϓϥΠϕʔτωοτϫʔΫ಺ʹΞΫηε͢ΔͨΊͷαʔόʔ Bastion ϗετͱ͸ʁ ...a system identified by the firewall

    administrator as a critical strong point in the network security. Generally, bastion hosts will have some degree of extra attention paid to their security, may undergo regular audits, and may have modified software. Bastion Λհ͞ͳ͍ͱϓϥΠϕʔτ಺ʹ͸৵ೖͰ͖ͳ͍ɻ Ref: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.31.6790&rep=rep1&type=pdf discussing firewalls in 1990 by Marcus J. Ranum
  5. Bastion ϗετ͕ͳ͍৔߹ อक࡞ۀ͕ඞཁͳର৅ʹ͍ͭͯɺ Πϯλʔωοτ͔ΒΞΫηεΛ ڐՄ͢Δඞཁ͕͋Δɻ

  6. Bastion ϗετ͕͋Δ৔߹ อक࡞ۀ͕ඞཁͳର৅ʹ͍ͭͯ͸ɺ ඞͣ Bastion ϗετΛܦ༝͢Δ͜ͱͰɺ ϓϥΠϕʔτωοτϫʔΫʹ഑ஔͰ͖Δɻ

  7. OS ʹϩάΠϯ͢Δલఏͷ࡞ۀ͕ଟ͍ Bastion ϗετΛར༻͢Δ໨తͱͯ͠ɺ  ো֐ௐࠪͷͨΊʹ಺෦ωοτϫʔΫ͔Βͷ8FCϦΫΤετ  ಺෦ωοτϫʔΫεΩϟϯ౳ͷςετ  DB

    ؔ࿈ͷอक࡞ۀʢ৽نςʔϒϧ࡞੒ɺۓٸ࣌σʔλύον౰ͯͳͲʣ
  8. OS ϩάΠϯՄೳͳ AWS Ϧιʔεͱͯ͠ Amazon EC2 Linux ΍ Windows ͳͲ͕ར༻ՄೳͳԾ૝αʔόʔ

  9. EC2 Bastionホスト利用には改善すべき点 ͨͩ͠ɺ ͕͋Γ·͢ɻ

  10. EC2 ͷઃܭɾӡ༻͸खؒͳͷͰ΋ͬͱָʹ͍ͨ͠ AWS提⽰のセキュリティ責任共有モデルに従ってユーザー側で担当する範囲が広い վળ఺ͦͷɿ Ref: https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2016 ސ٬σʔλ ΫϥΠΞϯτଆͷσʔλ҉߸Խ ͱσʔλͷ੔߹ੑݕূ αʔόଆͷ҉߸Խ

    ʢϑΝΠϧγεςϜ͓Αͼσʔλʣ /8τϥϑΟοΫͷอޢ ʢ҉߸Խ੔߹ੑΞΠσϯςΟςΟʣ ϓϥοτϑΥʔϜɺΞϓϦέʔγϣϯ ϑΝΠΞ΢Υʔϧߏ੒ ΦϖϨʔςΟϯάɾγεςϜɺωοτϫʔΫߏ੒ ΞΠσϯςΟςΟ ΞΫηε؅ཧ ج൫αʔϏε ίϯϐϡʔςΟϯά ετϨʔδ σʔλϕʔε ωοτϫʔΫ AWS άϩʔόϧ ΠϯϑϥετϥΫνϟ ΞϕΠϥϏϦςΟκʔϯ Ϧʔδϣϯ Τοδ ϩʔέʔγϣϯ "84*". 利⽤者 による管理 AWS による管理
  11. ウィルス/マルウェア対 策 ・ 監 査 ロ グ 取 得 ・

    パーミッション設計・OS ユーザー/グループ設計・ OSライブラリバージョン 管理・カーネルパラメー タ・ネットワークセキュ リ テ ィ ・ デ ィ ス ク パ ー ティショニング・SSH鍵 管 理 ・ P A M 設 計 FISC 安全対策基準 ۀքඪ४ίϯϓϥΠΞϯε΍ ن੍ͷ४ڌཁٻ͸ OS ྖҬ΋ର৅ ӡ༻ෛՙ͕ߴ͘ͳΓ͕ͪɻ
  12. ͦͷଞ͕04ϨΠϠʔ͕Ϛωʔδυͳ ΞʔΩςΫνϟΛ࠾༻ͯ͠΋ɺ #BTUJPOϗετ͸04ϨϕϧͰ؅ཧ͕ඞཁɻ Ϟμϯͳߏ੒ͱͷဃ཭ վળ఺ͦͷɿ Managed Managed Managed

  13. Πϯλʔωοτܦ༝ͷΞΫηεܦ࿏Λ ۃྗݮΒͤΔͱΑΓ҆શɻ Attack Surface ΛݮΒ͍ͨ͠ վળ఺ͦͷ̏ɿ public -> privateに できればベター

  14. ・EC2 ͷઃܭɾӡ༻͸खؒͳͷͰ΋ͬͱָʹ͍ͨ͠ EC2 Bastion ͷ໰୊఺ʹ͍͓ͭͯ͞Β͍͢Δͱɺ ɾϞμϯͳߏ੒ͱͷဃ཭Λͳ͍ͨ͘͠ ・Attack Surface ΛݮΒ͍ͨ͠

  15. ͜ΕΒͷ໰୊఺ʹରॲ͢ΔͨΊʹɺ AWS Fargate AWS Systems Manager (Session Manager) Λར༻ͯ͠ɺ#BTUJPOϗετͷαʔόʔϨεԽΛݕ౼ͯ͠Έ·͢ɻ

  16. AWS Fargate ・サーバーレスなコンテナ向けエンジン ・OSバージョンアップや セキュリティ対策はAWS側の責務

  17. Ref: https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2016 ސ٬σʔλ ΫϥΠΞϯτଆͷσʔλ҉߸Խ ͱσʔλͷ੔߹ੑݕূ αʔόଆͷ҉߸Խ ʢϑΝΠϧγεςϜ͓Αͼσʔλʣ /8τϥϑΟοΫͷอޢ ʢ҉߸Խ੔߹ੑΞΠσϯςΟςΟʣ ϓϥοτϑΥʔϜɺΞϓϦέʔγϣϯ

    ϑΝΠΞ΢Υʔϧߏ੒ ΦϖϨʔςΟϯάɾγεςϜɺωοτϫʔΫߏ੒ ΞΠσϯςΟςΟ ΞΫηε؅ཧ ج൫αʔϏε ίϯϐϡʔςΟϯά ετϨʔδ σʔλϕʔε ωοτϫʔΫ AWS άϩʔόϧ ΠϯϑϥετϥΫνϟ ΞϕΠϥϏϦςΟκʔϯ Ϧʔδϣϯ Τοδ ϩʔέʔγϣϯ "84*". 利⽤者 による管理 AWS による管理 ίϯςφΠϝʔδ &$4ίϯϑΟά Ref: https://www.slideshare.net/AmazonWebServices/operational-excellence-with-containerized-workloads-using-aws-fargate-con320r1-aws-reinvent-2018 OSɺNW ߏ੒ɺίϯςφϓϥοτϑΥʔϜ͸ AWS ଆ͕؅ཧ 各種業界標準のコンプライアンスには AWS 側が準拠している Ref: https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2016
  18. AWS Systems Manager (Session Manager) ɾαʔόʔӡ༻ʹؔ͢Δ౷߹αʔϏε ・SSH ͳ͠ͰίϯιʔϧϩάΠϯՄೳ ※ SSM

    ΤʔδΣϯτͷಋೖ͕ඞཁ
  19. "84$-*͔Β΋ΞΫηεͰ͖Δɻ ".$ܦ༝ͰΞΫηεՄೳ Bastionホストへの 接続経路は不要になる Session Manager経由で ターミナルへアクセス可能

  20. AWS Fargate AWS Systems Manager (Session Manager) Fargate λεΫʹ SSM

    ΤʔδΣϯτΛಋೖ͢Ε͹ EC2 ಉ༷ΞΫηεՄೳʹͳΓͦ͏ʜ ✕
  21. ࣮ࡍʹࢼͯ͠ΈΔɻ

  22. SSM ΞΫςΟϕʔγϣϯ Step 1: Session Manager Ͱ઀ଓ͢ΔͨΊʹɺ ΞΫςΟϕʔγϣϯίʔυͱ ID Λൃߦ͠ɺ

    ύϥϝʔλετΞʹอଘ͓ͯ͘͠ɻ
  23. Bastion ϗετΠϝʔδ࡞੒ Step 2: GitHub ্͔Β SSM ΤʔδΣϯτΛऔಘ͠ɺ ίϯςφΛϏϧυ͢Δɻ ؀ڥม਺͔ΒΞΫςΟϕʔγϣϯίʔυ

    ͱ ID Λऔಘ͢ΔॲཧΛ%PDLFSGJMF্ʹ ௥Ճ͢Δɻ
  24. Docker Πϝʔδͷొ࿥ Step 3: ϏϧυࡁΈΠϝʔδΛϨδετϦʹ ొ࿥͢Δɻ ECS ܦ༝Ͱ Fargate ্ʹλεΫΛىಈɻ

  25. SSM ΁ͷίϯςφొ࿥ Step 4: ίϯςφ͕ىಈ͞ΕΔͱಉ࣌ʹɺ ύϥϝʔλετΞ͔ΒΞΫςΟϕʔγϣ ϯίʔυͱ ID Λऔಘͯ͠ SSM

    ʹొ࿥͢Δɻ
  26. Bastion ϗετ΁ͷ઀ଓ Step 5: Session Manager ܦ༝Ͱɺ Fargate λεΫͱͯ͠ىಈ͍ͯ͠Δ Bastion

    ϗετʹ઀ଓՄೳͱͳΔɻ
  27. վળ఺ΛશͯΫϦΞͨ͠ ߏ੒͕Մೳ Attack Surfaceが減らせた OS؅ཧෛՙΛݮΒͤͨ アーキテクチャが統一 EC2 ಉ༷ɺར༻͚࣌ͩىಈ͢Ε͹Α͍ɻ

  28. Bastion ϗετΛ Fargate Խ͢Δ͜ͱͰ ӡ༻ͷखؒΛলུˍΞʔΩςΫνϟΛ౷ҰͰ͖Δɻ ຊ೔ͷ͓͞Β͍ Session Manager Λ׆༻͢Δ͜ͱͰɺ Attack

    Surface Λ࡟ݮ͢Δ͜ͱ͕Ͱ͖Δɻ
  29. Thank you! Infra Study Meetup #6 Lightning Talk @msy78