ホスティングにおける安定運用のためのアクセスコントロール手法

22522e2bc35255ab75308c399ff782f6?s=47 Takuma Kume
October 07, 2017

 ホスティングにおける安定運用のためのアクセスコントロール手法

ペパボ・はてな技術大会〜インフラ技術基盤〜@福岡
「ホスティングにおける安定運用のためのアクセスコントロール手法」
https://pepabo.connpass.com/event/65932/

22522e2bc35255ab75308c399ff782f6?s=128

Takuma Kume

October 07, 2017
Tweet

Transcript

  1. ٱถ୓അ(.01FQBCP *OD  ϖύϘɾ͸ͯͳٕज़େձʙΠϯϑϥٕज़ج൫ʙ ϗεςΟϯάʹ͓͚Δ҆ఆӡ༻ͷͨΊͷ ΞΫηείϯτϩʔϧख๏

  2. ࣗݾ঺հ ٱถ ୓അ (@takumakume) 2016೥4݄͔ΒϖύϘʹೖࣾ ΠϯϑϥΤϯδχΞ

  3. ϩϦϙοϓʂ ֹ݄ԁ͔Βར༻Ͱ͖Δʂ ສαΠτҎ্ӡ༻தʂ ඵؒ໿ສઍϦΫΤετΛॲཧʂ

  4. ϗεςΟϯάʹ͓͚Δ҆ఆӡ༻ͷͨΊͷ ΞΫηείϯτϩʔϧख๏

  5. ໨࣍ wϗεςΟϯάαʔϏεͷ҆ఆӡ༻͕؆୯Ͱ͸ͳ͍ཧ༝ w͜Ε·ͰͷΞΫηείϯτϩʔϧख๏ͷ঺հͱ՝୊ w՝୊Λղܾͨ͠৽͍͠ΞΫηείϯτϩʔϧख๏ͷ঺հ w·ͱΊ

  6. ຊ೔ͷεϥΠυͰ͸ɺߴෛՙͷαΠτʹରͯ͠ ΞΫηε੍ޚΛ࣮ࢪ͢Δख๏ʹ͍ͭͯͷ঺հΛ ͠·͢ɻ ͢΂ͯͷ໨త͸ɺαʔϏεͷ҆ఆӡ༻ͱɺΑΓ ଟ͘ͷ͓٬༷͕շదʹ͝ར༻͍͚ͨͩΔΑ͏ʹ ͢Δ͜ͱ͕೦಄ʹ͋Γ·͢ʂ

  7. ϗεςΟϯάαʔϏεͷ҆ఆӡ༻͕ ؆୯Ͱ͸ͳ͍ཧ༝ 

  8. ͦͷલʹɺͱ͋Δ8FCαʔϏεͷαʔόͷ $16࢖༻཰ΛݟͯΈ·͢ɻ 

  9. $16࢖༻཰ ͱ͋Δ8FCαʔϏεͷ$16࢖༻཰ ࣌ ࣌ ࣌ 

  10. ࣌ ࣌ ࣌ ΰʔϧσϯλΠϜ னٳΈ όονॲཧ ͱ͋Δ8FCαʔϏεͷ$16࢖༻཰ 

  11. ΰʔϧσϯλΠϜ னٳΈ όονॲཧ $16࢖༻཰ 8FCαʔϏεͷ৔߹͸λʔήοτ΍࣮૷Λ ೺Ѳ͍ͯ͠ΔͨΊɺ܏޲Λ૝૾͠΍͍͢ 

  12. Ͱ͸ɺϗεςΟϯάαʔόͷ $16࢖༻཰ΛݟͯΈ·͢ɻ 

  13. ࣌ ࣌ ࣌ ࣌ ϗεςΟϯάαʔόͷ$16࢖༻཰ 

  14. ϗεςΟϯάαʔόͷ$16࢖༻཰  Կ͔͕ಈ͍͍ͯΔ

  15. ϗεςΟϯάαʔόͷ৔߹͸ɺ ༷ʑͳϓϩάϥϜ͕࣮ߦ͞ΕΔͨΊෛՙͷ ݪҼ΋༷ʑͰରԠ͠ʹ͍͘ 

  16. ༷ʑͳෛՙͷݪҼ  ੬ऑੑ ੬ऑੑͷ͋Δ$.4ͳͲΛܦ༝ͯ͠ෆਖ਼ͳॲཧ͕࣮ߦ͞ΕΔɻ ߈ܸ αʔό୆౰ͨΓͷαΠτ਺͕ଟ͍ͨΊ߈ܸͷର৅ʹͳΓ΍͍͢ɻ ϢʔβϓϩάϥϜ ϗεςΟϯάͰ͸ࣗ༝ʹϓϩάϥϜͷ࣮ߦ͕Մೳͳ؀ڥɻ େྔʹϦιʔεΛফඅ͢ΔϓϩάϥϜ͕࣮ߦ͞ΕΔ͜ͱ͕͋Δɻ ͳͲʜ

  17. ͜ΕΒʹରͯ͠Կͷରࡦ΋͠ͳ͍৔߹ αʔό͸ߴෛՙͳঢ়ଶͱͳΓ αʔϏεͷఏڙ඼࣭͕௿Լͯ͠͠·͏ 

  18. ͜Ε·ͰͷΞΫηείϯτϩʔϧख๏ 

  19. NPE@WIPTU@NBYDMJFOUT "QBDIFIUUQE 7JSUVBM)PTU # httpd.conf <VirtualHost *> DocumentRoot /path/to/web ServerName

    www.example.jp VhostMaxClients 3 </VirtualHost>  w"QBDIFͷϞδϡʔϧ w7JSUVBM)PTUຖͷ࠷େಉ࣌઀ଓ਺Λ੍ݶ͢Δ͜ͱ͕Ͱ͖Δ 8FCΞΫηε
  20. NPE@WIPTU@NBYDMJFOUT "QBDIFIUUQE 7JSUVBM)PTU ಛఆͷ7JSUVBM)PTU΁ͷภΓΛ๷ࢭ ॏ͍εΫϦϓτͷଟॏ࣮ߦΛ๷ࢭ  8FCΞΫηε w"QBDIFͷϞδϡʔϧ w7JSUVBM)PTUຖͷ࠷େಉ࣌઀ଓ਺Λ੍ݶ͢Δ͜ͱ͕Ͱ͖Δ

  21. NPE@WIPTU@NBYDMJFOUTʹΑΔ੍ݶͷࣗಈԽγεςϜ  04 IUUQE MPH DPOpH (PMBOH ࣗಈ੍ޚγεςϜ ᶃ؂ࢹ ᶄղੳ

    ᶅઃఆ ᶆ൓ө ؂ࢹ ɾϩʔυΞϕϨʔδ ɾ)551Ϩεϙϯε ղੳ ઃఆ ݪҼαΠτʹಉ࣌઀ଓ਺੍ݶΛઃఆ ൓ө IUUQEͷHSBDFGVMSFTUBSUΛ࣮ߦ ϩά͔ΒෛՙݪҼͷαΠτΛಛఆ ෛՙͷߴ͍αΠτʹࣗಈతʹ੍ݶΛߦ͏γεςϜΛ(PMBOHͰ։ൃ
  22. ͜Ε͚ͩͰ͸ߴෛՙରࡦ͕ ෆे෼ͩͬͨ 

  23. ՝୊ 

  24. ՝୊  ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯ͸ɺΞΧ΢ϯτ୯Ґ΍ϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ ൓өʹ͸HSBDFGVMSFTUBSU͕ඞཁ ⇛HSBDFGVMSFTUBSUͷॲཧ͸ॏ͘Ϩεϙϯε஗ԆͷݪҼʹ ɹͳΔͨΊۃྗ࣮ߦͨ͘͠ͳ͍ɻ ൓өॲཧ

    ಉ࣌઀ଓ਺੍ݶͷΈߦ͏ ⇛୯ൃͰେྔͷϦιʔεΛফඅ͢ΔϓϩάϥϜʹରԠͰ͖ͳ͍ɻ ɹϦιʔεͷ੍ݶ΋࣮ࢪ͍ͨ͠ɻ ੍ݶखஈ
  25. ཁٻ͕૿͑Δʹ࿈Εͯطଘͷιϑτ΢ΣΞ ͷΈͰ͸՝୊Λղܾ͠ʹ͘͘ͳͬͨ 

  26.  ͜Ε·Ͱɺ՝୊͕͋Δ΋ͷͷ ίʔυʹམͱ͠ࠐΜͰ͍͘εϐʔυ͕ ஗͔ͬͨɻ

  27. ӡ༻πʔϧ͸೔ʑਐԽ͕ඞཁͰ͋Δ

  28. ࠷ॳ͔Β׬ᘳͳιϑτ΢ΣΞΛ࡞Δ ͜ͱ͸Ͱ͖ͳ͍ ਐԽͤ͞΍͍͢ج൫Λ࡞Γ͍ͨʂ

  29. NPE@NSVCZ ✕ 

  30. NPE@NSVCZͱ͸ʁ  wฐࣾͷ!NBUTVNPUPSZ͕։ൃ͍ͯ͠ΔIUUQEͷϞδϡʔϧ wϓϩηεͷىಈ΍ϦΫΤετͷλΠϛϯάͳͲΛܖػʹ NSVCZͷεΫϦϓτΛ࣮ߦͰ͖Δɻ wϦΫΤετύϥϝʔλΛऔಘͨ͠Γ೚ҙͷεςʔλείʔ υΛฦͨ͠ΓͰ͖Δɻ

  31. NPE@NSVCZΛબΜͩཧ༝ 

  32. NPE@NSVCZΛબΜͩཧ༝  ߴ଎ͳॲཧ΍$ݴޠͷϥΠϒϥϦΛ࢖͍͍ͨ৔߹͸NSCHFN ͱ͍͏֦ுػೳΛ࢖ͬͯ$ݴޠͰͷ࣮૷΋ՄೳͱͳΔɻ ։ൃऀͷ!NBUTVNPUPSZ͕ࡏ੶͍ͯ͠Δɻ NPE@NSVCZΛ༻͍Δ͜ͱͰIUUQEͷৼΔ෣͍Λ ։ൃޮ཰͕Α͍3VCZߏจͰΧελϚΠζ͢Δ͜ͱ͕Ͱ͖Δɻ ʢैདྷ͸.PEVMFΛ$ݴޠͰ։ൃ͢Δඞཁ͕͋ͬͨɻʣ

  33. NPE@NSVCZΛબΜͩཧ༝  NPE@NSVCZΛ༻͍Δ͜ͱͰIUUQEͷৼΔ෣͍Λ3VCZߏจͰ ΧελϚΠζ͢Δ͜ͱ͕Ͱ͖Δɻ3VCZ͸։ൃޮ཰͕ྑ͍ɻ ʢैདྷ͸.PEVMFΛ$ݴޠͰ։ൃ͢Δඞཁ͕͋ͬͨɻʣ ߴ଎ͳॲཧ΍$ݴޠͷϥΠϒϥϦΛ࢖͍͍ͨ৔߹͸NSCHFN ͱ͍͏֦ுػೳΛ࢖ͬͯ$ݴޠͰͷ࣮૷΋ՄೳͱͳΔɻ ։ൃऀͷ!NBUTVNPUPSZ͕ࡏ੶͍ͯ͠Δɻ ֦ுੑɺอकੑΛଛͳΘͣ ޮ཰Α͘։ൃՄೳ

  34. NPE@NSVCZΛબΜͩཧ༝  NPE@NSVCZΛ༻͍Δ͜ͱͰIUUQEͷৼΔ෣͍Λ3VCZߏจͰ ΧελϚΠζ͢Δ͜ͱ͕Ͱ͖Δɻ3VCZ͸։ൃޮ཰͕ྑ͍ɻ ʢैདྷ͸.PEVMFΛ$ݴޠͰ։ൃ͢Δඞཁ͕͋ͬͨɻʣ ߴ଎ͳॲཧ΍$ݴޠͷϥΠϒϥϦΛ࢖͍͍ͨ৔߹͸NSCHFN ͱ͍͏֦ுػೳΛ࢖ͬͯ$ݴޠͰͷ࣮૷΋ՄೳͱͳΔɻ ։ൃऀͷ!NBUTVNPUPSZ͕ࡏ੶͍ͯ͠Δɻ ਐԽ͠ଓ͚Δ͜ͱ͕Ͱ͖Δ

  35. NPE@NSVCZΛ࣠ͱͨ͠ ৽͍͠ΞΫηείϯτϩʔϧख๏ 

  36. IUUQBDDFTTMJNJUFSͱ͍͏ ιϑτ΢ΣΞͷΞʔΩςΫνϟΛϕʔεʹ ৽͍͠ΞΫηείϯτϩʔϧج൫Λ։ൃ 

  37. IUUQBDDFTTMJNJUFS NSVCZΛ࢖ͬͯϦΫΤετύϥϝʔλΛݩʹಉ࣌઀ଓ਺ΛΧ΢ϯτ͢Δ IUUQE NPE@NSVCZ ᶃlFYBNQMFDPNzʹΞΫηε 1)1΍$(*ͳͲ  ,74 ,FZ FYBNQMFDPN

    7BMVF  ಉ࣌઀ଓ਺ Χ΢ϯλʔ ᶄΠϯΫϦϝϯτ ᶅॲཧ ᶆσΫϦϝϯτ ͜ͷΑ͏ͳྲྀΕͰಉ࣌઀ଓ਺ΛΧ΢ϯτ͢Δ
  38. IUUQBDDFTTMJNJUFSΛ࢖ͬͯղܾͰ͖Δ͜ͱ 

  39. IUUQBDDFTTMJNJUFSΛ࢖ͬͯղܾͰ͖Δ͜ͱ  ੍ޚ୯Ґ NPE@NSVCZͰऔಘͰ͖ΔϦΫΤετύϥϝʔλΛ શͯར༻Ͱ͖Δɻ ઃఆ൓ө NSVCZΛ࢖ͬͯ؆୯ʹɺHSBDFGVMSFTUBSUΛඞཁͱ ͠ͳ͍൓өํ๏Ͱ࣮૷͢Δ͜ͱ͕Ͱ͖Δɻ

  40. IUUQBDDFTTMJNJUFSΛϕʔεʹ ௥ՃػೳΛ࣮૷ 

  41. ੍ݶ಺༰ͷ؅ཧ 

  42. ੍ݶ಺༰ͷ؅ཧ ੍ݶର৅͝ͱͷಉ࣌઀ଓ਺Λ؅ཧ͍ͨ͠ʂ IUUQE IPHFDPN  GVHBVTFSͷυϝΠϯ ϦΫΤετ IPHFDPNͷಉ࣌઀ଓ਺͸ ·Ͱʹ͍ͨ͠ʜ GVHBVTFSͷಉ࣌઀ଓ਺͸

    ·Ͱʹ͍ͨ͠ʜ
  43. ੍ݶ಺༰ͷ؅ཧ IUUQBDDFTTMJNJUFSͷΞʔΩςΫνϟʹ੍ݶ಺༰Λ؅ཧ͢ΔػೳΛ࣮૷  IUUQE NPE@NSVCZ ,74 ϦΫΤετ ॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ

    ಉ࣌઀ଓ਺ Χ΢ϯλʔ ʴ 1)1 $(*
  44. ੍ݶ಺༰ͷ؅ཧ  IUUQE NPE@NSVCZ ,74 ϦΫΤετ ॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ ಉ࣌઀ଓ਺

    Χ΢ϯλʔ ,FZ7BMVF IPHFDPN GPPDPN ,74 1)1 $(* ੍ݶ಺༰Λอ؅͢ΔͨΊͷ,74Λ४උ ੍ݶ಺༰Λࢀর
  45. ੍ݶ಺༰ͷ؅ཧ  IUUQE NPE@NSVCZ ,74 ϦΫΤετ ॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ ಉ࣌઀ଓ਺

    Χ΢ϯλʔ ,FZ7BMVF IPHFDPN GPPDPN ,74 1)1 $(* ੍ݶ಺༰Λࢀর ,74 ,FZ7BMVF IPHFVTFS GPPVTFS ϗετ୯Ґ ΞΧ΢ϯτ୯Ґ ੍ݶ୯ҐΛ૿΍͍ͨ࣌͠͸,74Λ૿΍ͤ͹ྑ͍
  46. ࣗಈ੍ޚγεςϜͱͷ࿈ܞ 

  47. ࣗಈ੍ޚγεςϜͱͷ࿈ܞ  IUUQE NPE@NSVCZ ,FZ7BMVF IPHFDPN GPPDPN ,74 (PMBOH ࣗಈ੍ޚγεςϜ

    IPHFDPN NBY@DMJFOUT GPPDPN NBY@DMJFOUT ᶃ੍ݶ৘ใͷ:".-ϑΝΠϧΛੜ੒ ᶄ:".-ΛಡΈࠐΈ ᶅ,74΁ॻ͖ࠐΈ ෛՙͷݕ஌ ϩάͷղੳ ݪҼͷಛఆ HSBDFGVMSFTUBSUͷΑ͏ʹॏ͍ॲཧ͸ෆཁ
  48. ௚઀,74ʹॻ͖ࠐΊ͹ྑ͍ͷͰ͸ʁ  z:".-Λϩʔυ͢Δzͱ͍͏൚༻తͳΠϯλʔϑΣΠεʹ ͢Δ͜ͱͰɺผͷ੍ޚγεςϜ͕࡞ΒΕͯ΋؆୯ʹ࿈ܞͰ͖Δɻ ,74ͷഉଞ੍ޚ͸NPE@NSVCZ಺Ͱ࣮૷͍ͯ͠Δ ⇛֎෦͔Βॻ͖ࠐΈΛ͠Α͏ͱ͢ΔͱλΠϛϯάʹΑͬͯ͸ ɹΤϥʔʹͳΔ

  49. ୯ൃͰେྔͷ$16ϦιʔεΛফඅ͢Δ ϓϩάϥϜ΁ͷରࡦ 

  50. DHSPVQ 

  51. DHSPVQͱ͸ ϓϩηεΛάϧʔϓԽͯ͠$16΍ϝϞϦɺσΟεΫ*0ͷ ੍ޚΛߦ͏ɺ-JOVYΧʔωϧͷػೳ  ৄ͘͠࿩͢ͱ͕࣌ؒ଍Γͳ͍ͷͰׂѪ͠·͢ʜ

  52.  ಛఆͷϦΫΤετͷΈΛର৅ͱͯ͠ DHSPVQʹΑΔ$16ͷ੍ݶΛ͍ͨ͠ʂ

  53. ಛఆͷϦΫΤετͷΈDHSPVQͰ੍ޚ͢Δ  IUUQEXPSLFS IUUQEXPSLFS IUUQEXPSLFS ίϯςϯπॲཧ ίϯςϯπॲཧ ϦΫΤετ ϦΫΤετ $16ͷ੍ݶΛ͍ͨ͠

    ϦΫΤετ ࣗ਎ʹDHSPVQͷ੍ݶΛ࣮ࢪ NSVCZ ίϯςϯπॲཧ ࣗ਎ΛݩͷDHSPVQʹ໭͢ NSVCZ $16੍ݶ
  54. ಛఆͷϦΫΤετͷΈΛର৅ͱͨ͠ DHSPVQʹΑΔ$16ͷ੍ݶΛ࣮ݱͨ͠ʂ 

  55. ՝୊ʹ͍͓ͭͯ͞Β͍ 

  56. ՝୊  ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯ͸ɺΞΧ΢ϯτ୯Ґ΍ϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ ൓өʹ͸HSBDFGVMSFTUBSU͕ඞཁ ⇛HSBDFGVMSFTUBSUͷॲཧ͸ॏ͘Ϩεϙϯε஗ԆͷݪҼʹ ɹͳΔͨΊۃྗ࣮ߦͨ͘͠ͳ͍ɻ ൓өॲཧ

    ಉ࣌઀ଓ਺੍ݶͷΈߦ͏ ⇛୯ൃͰେྔͷϦιʔεΛফඅ͢ΔϓϩάϥϜʹରԠͰ͖ͳ͍ɻ ɹϦιʔεͷ੍ݶ΋࣮ࢪ͍ͨ͠ɻ ੍ݶखஈ
  57. ՝୊  ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯ͸ɺΞΧ΢ϯτ୯Ґ΍ϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ NPE@NSVCZ͔Βऔಘͨ͠ϦΫΤετύϥϝʔλΛ ݩʹ͋ΒΏΔ୯ҐͰ੍ޚΛߦ͏͜ͱ͕Ͱ͖ΔΑ͏ʹͳͬͨɻ

  58. ՝୊  ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯ͸ɺΞΧ΢ϯτ୯Ґ΍ϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ NSVCZΛ࢖ͬͯ,74ʹσʔλΛ࣋ͭ͜ͱͰ࠶ಡࠐΈॲཧ͕ ඞཁͳ͘ͳͬͨɻ ൓өʹ͸HSBDFGVMSFTUBSU͕ඞཁ ⇛HSBDFGVMSFTUBSUͷॲཧ͸ॏ͘Ϩεϙϯε஗ԆͷݪҼʹ

    ɹͳΔͨΊۃྗ࣮ߦͨ͘͠ͳ͍ɻ ൓өॲཧ
  59. ՝୊  ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯ͸ɺΞΧ΢ϯτ୯Ґ΍ϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ DHSPVQʹΑΔ$16ͷίϯτϩʔϧΛߦ͏͜ͱͰղܾͨ͠ɻ ಉ࣌઀ଓ਺੍ݶͷΈߦ͏ ⇛୯ൃͰେྔͷϦιʔεΛফඅ͢ΔϓϩάϥϜʹରԠͰ͖ͳ͍ɻ ɹϦιʔεͷ੍ݶ΋࣮ࢪ͍ͨ͠ɻ

    ੍ݶखஈ
  60. ·ͱΊ 

  61. ·ͱΊ ϗεςΟϯάαʔόͷ҆ఆӡ༻͸؆୯Ͱ͸ͳ͍ʂ ՝୊Λղܾ͢ΔͨΊʹNPE@NSVCZΛ༻͍ͨ $16Ϧιʔεͷ੍ޚख๏ͱͯ͠ɺϦΫΤετຖͷ DHSPVQʹΑΔ$16Ϧιʔε੍ޚΛ࣮ݱͨ͠ʂ ֦ுੑɾอकੑɾੜ࢈ੑͷߴ͍ΞΫηείϯτϩʔϧ ج൫Λ։ൃͨ͠ʂ 

  62. ܅΋ϖύϘͰಇ͔ͳ͍͔ʁ ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ !QC@SFDSVJU

  63. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ