Upgrade to Pro — share decks privately, control downloads, hide ads and more …

medibaにおけるIAMユーザ管理の歴史 / instudystyle LT mediba IAM Management History

medibaにおけるIAMユーザ管理の歴史 / instudystyle LT mediba IAM Management History

2019/08/02 インフラ・ネットワークエンジニア勉強会 Vol.1
https://istyle.connpass.com/event/133989/
にて、LT発表した資料。

Kazuki Numazawa

August 02, 2019
Tweet

More Decks by Kazuki Numazawa

Other Decks in Technology

Transcript

  1. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE ࣗݾ঺հ ໊લ: প୔ Ұथ ॴଐ: ɹגࣜձࣾmediba ΠϯϑϥετϥΫνϟʔ෦ ΍ͬͯΔ͜ͱ: ɹओʹ

    AWS Λ࢖ͬͨγεςϜΠϯϑϥͷઃܭɾߏஙɾӡ༻ AWS ྺ: 7೥ ɹ2016೥ AWS ΢ϧτϥΫΠζνϟϯϐΦϯ
  2. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE ձࣾ঺հ גࣜձࣾmediba ۀ຿಺༰: KDDI גࣜձࣾͷ au εϚʔτύεΛத৺ͱͨ͠ au ؔ࿈αʔϏεӡӦ

    ͷଞɺࠃ಺֎ʹͯΧϧνϟʔɾήʔϜɾࢠҭͯ౳ɺ෯޿͍෼໺Ͱαʔ ϏεΛల։͠ɺϢʔβʔ͕ΠϯλʔωοτΛ௨ͯ͡ඞཁͳ࣌ʹඞཁͳ ৘ใʹΞΫηεͰ͖Δ؀ڥͮ͘ΓͷͨΊͷαʔϏεΛఏڙ͍ͯ͠· ͢ɻ ※auεϚʔτύε ͸KDDI גࣜձࣾͷ঎ඪ·ͨ͸ొ࿥঎ඪͰ͢ɻ https://www.mediba.jp/company/info.html ΑΓൈਮ
  3. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE ձࣾ঺հ ѻ͍ͬͯΔ au ؔ࿈αʔϏε(Ұ෦) • au Web ϙʔλϧ (

    https://auone.jp/ ) • au Web ϙʔλϧͷχϡʔε໘ ( https://article.auone.jp/ ) • au ఱؾ ( https://tenki.auone.jp/ ) • ϙΠϯτஷΊΔ ( https://enjoy.point.auone.jp/ ) • au εϚʔτύεͷҰ෦ίϯςϯπ • ձһಛయɺΞϓϦऔΓ์୊ɺೖୀձɺetc…
  4. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE IAMϢʔβ؅ཧ[૲૑ظ] • mediba ʹ͓͚Δ AWS ར༻͸ 2013೥ࠒ͔Β • ๭ϒϩάͷձࣾܦ༝Ͱ

    AWS ΞΧ΢ϯτΛൃߦ ͯ͠ར༻ • ͳͷͰɺ͕͢͞ʹʮroot ϢʔβΛར༻͢Δʯͱ ͍͏ΞϯνύλʔϯதͷΞϯνύλʔϯঢ়ଶ͸ ආ͚ΒΕ͍ͯͨ
  5. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE IAM Ϣʔβ؅ཧ[సػ] • AWS Λར༻ͨ͠ϓϩμΫτ͕૿͑Δͨͼʹ3ͭ ͣͭΞΧ΢ϯτ͕૿͑Δঢ়ଶ • 2015೥ࠒʹ͸40͍ۙΞΧ΢ϯτ͕͋ͬͨͱ͔ͳ ͔ͬͨͱ͔

    • ΞΧ΢ϯτ͝ͱʹ IAM ϢʔβΛ࡞੒ɾ؅ཧ͢Δ ͷ͸ਖ਼௚͖ͭ͘ͳ͖ͬͯͨ • ར༻ऀଆ΋ɺ౎౓ϩάΠϯɾϩάΞ΢τΛ܁Γ ฦ͢ͷ͕͠ΜͲ͔ͬͨͱࢥ͏
  6. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE IAM Ϣʔβ؅ཧ[స׵ظ] • Πϝʔδ͸౿Έ୆αʔόͱಉ͡ • ֤ϓϩμΫτͷ֤؀ڥ΁ͷೖΓޱͱ͚ͯͩ͠ͷ AWS ΞΧ΢ϯτΛ༻ҙ •

    ೖΓޱ͕1ͭʹͳΔͷͰɺ͜͜ͷ CloudTrail Λ ༗ޮԽͯ͠ɺϩάΠϯه࿥Λอଘɺ؂ࢹ • ౿Έ୆্ͷ IAM Ϣʔβͷ MFA ઃఆΛඞਢͱ͢ Δ͜ͱͰηΩϡϦςΟΛ޲্
  7. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE ࣮؀ڥଆ • ৽ن AWS ΞΧ΢ϯτൃߦޙɺ࠷ॳʹ
 ΫϩεΞΧ΢ϯτΞΫηε༻ͷ IAM ϩʔϧΛ༻ҙ •

    ͜ͷ IAM ϩʔϧʹɺ౿Έ୆ΞΧ΢ϯτ͔Βͷ
 ར༻ڐՄΛઃఆ • ʮMFA ඞਢʯΛ৚݅ʹઃఆ
  8. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE ࣮؀ڥଆ • IAM ϩʔϧ͸େ·͔ʹҎԼͷछྨͷ΋ͷΛ༻ҙ • ؅ཧऀ༻ • Administrator •

    ਖ਼ࣾһ༻ • IAM ͷҰ෦ݖݶҎ֎͸શͯڐՄ • (ਖ਼ࣾһҎ֎ͷ)։ൃऀ༻ • ୲౰͍ͯ͠ΔϓϩμΫτͰར༻͢ΔαʔϏεͷݖݶͷΈڐՄ • ReadOnly ༻ • ROMઐ
  9. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE ౿Έ୆ଆ • ݸਓ༻ͷ IAM Ϣʔβ͸͜͜ʹ͔͠࡞Βͳ͍ • IAM Ϣʔβʹ͸ MFA

    Λઃఆ • ؅ཧऀܥͷ IAM ϢʔβҎ֎͸ɺҎԼͷݖݶͷΈ෇༩ • εΠον͢ΔͨΊͷݖݶ (sts:AssumeRole) • ࣗ਎ͷ MFA ઃఆΛ͢Δݖݶ • ࣗ਎ͷύεϫʔυΛઃఆ͢Δݖݶ
  10. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE ౿Έ୆ଆ • ਖ਼ࣾһҎ֎ͷ IAM Ϣʔβ͸ Source IP Ͱͷૢ࡞੍ݶ ΋෇༩

    • AWS ͸ίϯιʔϧ΁ͷΞΫηεΛ੍ݶͰ͖ͳ͍ͷ Ͱɺ౿Έ୆΁ͷϩάΠϯ͸Ͳ͔͜ΒͰ΋Ͱ͖Δ • ͨͩɺਖ਼ࣾһҎ֎͸ɺΦϑΟε֎Ͱͷར༻Λ૝ఆ ͍ͯ͠ͳ͍ • ͦͷҝͷ Source IP ʹΑΔૢ࡞੍ݶ
  11. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE MFA ʹ͍ͭͯ • ਖ਼ࣾһҎ֎ • Χʔυܕͷ෺ཧ MFA σόΠεΛར༻ •

    ਖ਼ࣾһಉ༷ɺձࣾ؅ཧͷσόΠεʹඥ෇͚͔ͨͬ ͨͨΊɺձࣾͰΧʔυΛ༻ҙ • ؅ཧऀଆͰMFA Λઃఆͯ͠ΧʔυΛି༩
  12. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE IAM Ϣʔβ؅ཧ[ະདྷ] • MFA ΧʔυܕσόΠε΍Ί͍ͨ • ୯७ʹɺ෺ཧΧʔυͷ؅ཧ͕໘౗ • mediba

    Ͱ͸χΞγϣΞ։ൃΛ͍ͯ͠Δ • ஍ํڌ఺ͷձࣾʹσόΠεΛି༩Ͱ͖ͳ͍ • IP ΞυϨεʹΑΔར༻ڌ఺ͷ੍ݶΛ͍ͯ͠Δ͔Β ݸਓ୺຤Ͱྑ͍ͷͰ͸ʁ࿦ͷొ৔
  13. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE IAM Ϣʔβ؅ཧ[ະདྷ] • MFA ΧʔυܕσόΠε΍Ί͍ͨ • ୯७ʹɺ෺ཧΧʔυͷ؅ཧ͕໘౗ • mediba

    Ͱ͸χΞγϣΞ։ൃΛ͍ͯ͠Δ • ஍ํڌ఺ͷձࣾʹσόΠεΛି༩Ͱ͖ͳ͍ • IP ΞυϨεʹΑΔར༻ڌ఺ͷ੍ݶΛ͍ͯ͠Δ͔Β ݸਓ୺຤Ͱྑ͍ͷͰ͸ʁ࿦ͷొ৔ ͜ΕΒͷ఺͔Βɺ ΍ΊΔํ޲Ͱௐ੔த
  14. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE IAM Ϣʔβ؅ཧ[ະདྷ] • OS ΞΧ΢ϯτ΋ IAM Ϣʔβ͚ͩͰ؅ཧ • Systems

    Manager ͷ Session Manager Λར༻ • طʹ Session Manager ͚ͩͰ։ൃΛߦͬͯ΋Βͬ ͍ͯΔϓϩμΫτ΋͋Δ • ࠓޙɺ৽نʹߏங͢ΔϓϩμΫτͰ͸جຊతʹ Session Manager Λ࠾༻͍ͯ͘͠
  15. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE IAM Ϣʔβ؅ཧ[ະདྷ] • Session Manager ͷϝϦοτ • SSH ͷ͚݀͋ෆཁ

    • ౿Έ୆αʔόෆཁ • Private Subnet ʹ͋ͬͯ΋ར༻Մೳ • ૢ࡞ϩάΛ S3 ͱ CloudWatch Logs ʹग़ྗՄೳ • IAM ϙϦγʔͰ EC2 ΠϯελϯεͷΞΫηε੍ݶՄೳ
  16. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE IAM Ϣʔβ؅ཧ[ະདྷ] • Session Manager ͷσϝϦοτ • SSM Agent

    ͷಋೖ͕ඞཁ • OS ΞΧ΢ϯτ͕ ssm-user ͱ͍͏΋ͷݻఆ • no pass Ͱ sudo ՄೳͳݖݶΛ͍࣋ͬͯΔ • IAM Ϣʔβຖʹར༻ίϚϯυΛ੍ݶ͍ͨ͠ɺͱ͍͏͜ͱ ͕Ͱ͖ͳ͍ • ↑ͷέʔε͸ EC2 Instance Connect Ͱղܾ͠Α͏ʂ
  17. $PQZSJHIU˜NFEJCB*OD"MM3JHIUT3FTFSWFE IAM Ϣʔβ؅ཧ[ະདྷ] • Session Manager ͷσϝϦοτ • SSM Agent

    ͷಋೖ͕ඞཁ • OS ΞΧ΢ϯτ͕ ssm-user ͱ͍͏΋ͷݻఆ • no pass Ͱ sudo ՄೳͳݖݶΛ͍࣋ͬͯΔ • IAM Ϣʔβຖʹར༻ίϚϯυΛ੍ݶ͍ͨ͠ɺͱ͍͏͜ͱ ͕Ͱ͖ͳ͍ • ↑ͷέʔε͸ EC2 Instance Connect Ͱղܾ͠Α͏ʂ ݱ࣌఺Ͱɺ͜ΕΒͷ σϝϦοτ͕ϋʔυϧʹ ͳΔ͜ͱ͸ͳ͍ͨΊɺ ՄೳͳݶΓ࠾༻͍ͯ͘͠