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

どこで動いてるの?AWS IAM のコントロールプレーンとデータプレーンに思いを馳せる/iam-background

YukihiroChiba
September 11, 2022

どこで動いてるの?AWS IAM のコントロールプレーンとデータプレーンに思いを馳せる/iam-background

YukihiroChiba

September 11, 2022
Tweet

More Decks by YukihiroChiba

Other Decks in Technology

Transcript

  1. SF*OWFOUΩʔϊʔτʹͯ  AWS re:Invent 2021 - Keynote with Dr. Werner

    Vogels https://www.youtube.com/watch?v=8_Xs8Ik0h1w&list=PL2yQDdvlhXf9j fi ZENJYPXX8GYUOzQCuT AWS IAM ͷಇ͖ͷ঺հɺ ɹͦͷதͰίϯτϩʔϧϓϨʔϯͱσʔλϓϨʔϯʹ͍ͭͯݴٴ
  2. ઌʹ݁࿦  ϓϦϯγύϧ AWSαʔϏε IAM ΤϯυϙΠϯτ σʔλϓϨʔϯ όʔδχΞ๺෦Ϧʔδϣϯ AWS IAM

    άϩʔόϧ ΤϯυϙΠϯτ ίϯτϩʔϧϓϨʔϯ ͦͷ΄͔ͷϦʔδϣϯ σʔλϓϨʔϯ AWS IAM ೝূɾೝՄͷ࣮ࢪ ೝূɾೝՄͷ࣮ࢪ *".Ϧιʔεͷૢ࡞ ʢྫɿϙϦγʔͷมߋʣ "84αʔϏε΁ͷ ϦΫΤετ ʢྫɿ&$ͷىಈʣ ɾઃఆมߋͷ఻೻ ɾ೿ੜΩʔͷੜ੒
  3. ॻ͔Ε͍ͯΔ͜ͱͷ֓ཁ  • ϩʔϧ΍ϙϦγʔͱ͍ͬͨIAMϦιʔε͸ίϯτϩʔϧϓϨʔϯʹอ؅͞Ε͍ͯΔ • IAMϦιʔεͷઃఆมߋϦΫΤετ͸ίϯτϩʔϧϓϨʔϯʹૹ৴͞ΕΔ • ঎༻Ϧʔδϣϯ޲͚ͷίϯτϩʔϧϓϨʔϯ͸όʔδχΞ๺෦Ϧʔδϣϯʹͻͱ ͭͷΈ͋Δ •

    ίϯτϩʔϧϓϨʔϯͰͷઃఆมߋ͸IAMʹΑΓ֤ϦʔδϣϯͷσʔλϓϨʔϯ ʹ఻೻͞ΕΔ • σʔλϓϨʔϯ͸ίϯτϩʔϧϓϨʔϯͷϦʔυϨϓϦΧͷΑ͏ͳ΋ͷͰ͋Δ • ֤Ϧʔδϣϯʹ͓͚ΔAWSαʔϏε΁ͷϦΫΤετ͸౰֘Ϧʔδϣϯͷσʔλϓ ϨʔϯʹΑͬͯೝূɾೝՄ͞ΕΔ • ֤ϦʔδϣϯͷσʔλϓϨʔϯ͸গͳ͘ͱ΋3ͭͷAZʹ෼ࢄ͞Ε͍ͯΔ • ίϯτϩʔϧ/σʔλϓϨʔϯͱ΋ʹܭըతͳμ΢ϯλΠϜ͸θϩ
  4. ΧελϚʔ͕ಇ͖͔͚ΒΕΔͷ͸ίϯτϩʔϧϓϨʔϯ  όʔδχΞ๺෦Ϧʔδϣϯ AWS IAM άϩʔόϧ ΤϯυϙΠϯτ ίϯτϩʔϧϓϨʔϯ AWS Management

    
 Console ϓϩάϥϜΞΫηε JBNBNB[POBXTDPN •IAMϦιʔεͷ࡞੒ɾઃఆมߋ͸ίϯτϩʔϧϓϨʔϯ΁ͷΞΫηε •ೝূ৘ใΛؚΉIAMϦιʔε͕อ؅͞Ε͍ͯΔ *".Ϧιʔεͷૢ࡞ ʁ
  5. ΧελϚʔ͕ಇ͖͔͚ΒΕΔͷ͸ίϯτϩʔϧϓϨʔϯ  όʔδχΞ๺෦Ϧʔδϣϯ AWS IAM άϩʔόϧ ΤϯυϙΠϯτ ίϯτϩʔϧϓϨʔϯ AWS Management

    
 Console ϓϩάϥϜΞΫηε JBNBNB[POBXTDPN όʔδχΞ๺෦ʹͷΈ ͋Δ͜ͱ͕໌ࣔ͞Ε͍ͯΔ ໊લղܾͯ͠Ҿ͚Δ*1ΞυϨεͷ ϩέʔγϣϯΛ֬ೝ͢Δͱ όʔδχΞͷ΋ͷ ʁ
  6. "84ϦΫΤετͷೝূɾೝՄΛ͢Δͷ͕σʔλϓϨʔϯ  AWS Management 
 Console ϓϩάϥϜΞΫηε •σʔλϓϨʔϯ༻ͷIAMΤϯυϙΠϯτ͸ΧελϚʔ͕ ௚઀ΞΫηε͢ΔͨΊͷ΋ͷͰ͸ͳ͍ Ϧʔδϣϯ

    σʔλϓϨʔϯ AWS IAM ೝূɾೝՄͷ࣮ࢪ IAM ΤϯυϙΠϯτ ਺ඦສͷϗετʹΑΓ࣮ݱ ඵؒԯͷ"1*ίʔϧ ʢશϦʔδϣϯͷ߹ࢉͰʣ AWS re:Invent 2021 - Keynote with Dr. Werner VogelsͰ ৄ͘͠औΓ্͛ΒΕ͍ͯ·͢ ʁ
  7. ίϯτϩʔϧϓϨʔϯ͔ΒσʔλϓϨʔϯ΁ͷ఻೻  AWS Management 
 Console ϓϩάϥϜΞΫηε Ϧʔδϣϯ σʔλϓϨʔϯ AWS

    IAM ೝূɾೝՄͷ࣮ࢪ IAM ΤϯυϙΠϯτ όʔδχΞ๺෦Ϧʔδϣϯ গͳ͘ͱ΋ͭͷ ";ʹ෼ࢄ ίϯτϩʔϧϓϨʔϯ ઃఆมߋͷ఻೻ ݁Ռ੔߹ੑ ʁ
  8. γʔΫϨοτΞΫηεΩʔͱ೿ੜΩʔ  •Ϣʔβʔ͔ΒͷϦΫΤετʹ͸ AWS SigV4ؚ͕·ΕΔ •AWS SigV4 ʹ͸γʔΫϨοτΞΫηεΩʔͷ΄͔ɺ೔෇ɾϦʔδϣϯɾαʔϏε ͷ৘ใؚ͕·Ε͍ͯΔ Ϧʔδϣϯ

    σʔλϓϨʔϯ AWS IAM IAM ΤϯυϙΠϯτ όʔδχΞ๺෦Ϧʔδϣϯ ίϯτϩʔϧϓϨʔϯ αʔϏε ΤϯυϙΠϯτ AWS SigV4 ॺ໊෇͖ϦΫΤετ ɾγʔΫϨοτΞΫηεΩʔ ɾ೔෇ ɾϦʔδϣϯ ɾαʔϏε
  9. γʔΫϨοτΞΫηεΩʔͱ೿ੜΩʔ  •γʔΫϨοτΞΫηεΩʔ͸ίϯτϩʔϧϓϨʔϯʹอ؅͞Ε͍ͯΔ •σʔλϓϨʔϯʹ͸γʔΫϨοτΞΫηεΩʔͦͷ΋ͷ͸อ؅͞Εͳ͍ •೔෇ͱϦʔδϣϯͷ৘ใΛؚΉ೿ੜΩʔ͕σʔλϓϨʔϯʹੜ੒͞ΕΔ Ϧʔδϣϯ σʔλϓϨʔϯ AWS IAM IAM

    ΤϯυϙΠϯτ όʔδχΞ๺෦Ϧʔδϣϯ ίϯτϩʔϧϓϨʔϯ αʔϏε ΤϯυϙΠϯτ AWS SigV4 ॺ໊෇͖ϦΫΤετ γʔΫϨοτΞΫηεΩʔ ɾγʔΫϨοτΞΫηεΩʔ ɾ೔෇ ɾϦʔδϣϯ ɾαʔϏε ੜ੒ ೿ੜΩʔ ೔෇ɺϦʔδϣϯͷ৘ใΛؚΉ ݻ༗ͷ೿ੜΩʔ
  10. γʔΫϨοτΞΫηεΩʔͱ೿ੜΩʔ  •αʔϏεΤϯυϙΠϯτΛ௨ͯ͡IAMΤϯυϙΠϯτʹϦΫΤετ͕౸ୡ͢Δͱɺ αʔϏεͷ৘ใΛ௥Ճͨ͠৽ͨͳ೿ੜΩʔ͕ੜ੒͞ΕΔ •Ϣʔβʔɺ೔෇ɺϦʔδϣϯɺαʔϏεͷείʔϓΛߜͬͨ೿ੜΩʔ͕ੜ੒͞Ε IAMΤϯυϙΠϯτͰΩϟογϡ͞ΕΔ Ϧʔδϣϯ σʔλϓϨʔϯ AWS IAM

    IAM ΤϯυϙΠϯτ όʔδχΞ๺෦Ϧʔδϣϯ ίϯτϩʔϧϓϨʔϯ αʔϏε ΤϯυϙΠϯτ AWS SigV4 ॺ໊෇͖ϦΫΤετ γʔΫϨοτΞΫηεΩʔ ɾγʔΫϨοτΞΫηεΩʔ ɾ೔෇ ɾϦʔδϣϯ ɾαʔϏε ੜ੒ ೿ੜΩʔ ϦΫΤετ౸ୡ࣌ɺ αʔϏεͷ৘ใΛ௥Ճͨ͠ ೿ੜΩʔΛੜ੒ ೿ੜΩʔ ੜ੒ Ϣʔβʔɺ೔෇ɺϦʔδϣϯɺ αʔϏεݻ༗ͷΩʔ͕ੜ੒͞Ε Ωϟογϡ͞ΕΔ
  11. શମΠϝʔδͷ͓͞Β͍  ϓϦϯγύϧ AWSαʔϏε IAM ΤϯυϙΠϯτ σʔλϓϨʔϯ όʔδχΞ๺෦Ϧʔδϣϯ AWS IAM

    άϩʔόϧ ΤϯυϙΠϯτ ίϯτϩʔϧϓϨʔϯ ͦͷ΄͔ͷϦʔδϣϯ σʔλϓϨʔϯ AWS IAM ೝূɾೝՄͷ࣮ࢪ ೝূɾೝՄͷ࣮ࢪ *".Ϧιʔεͷૢ࡞ ʢྫɿϙϦγʔͷมߋʣ "84αʔϏε΁ͷ ϦΫΤετ ʢྫɿ&$ͷىಈʣ ɾઃఆมߋͷ఻೻ ɾ೿ੜΩʔͷੜ੒
  12. ো֐ͷ֓ཁ  • 6:44 - 9:12(PDT)ͷؒɺIAM ͷ API ϦΫΤετͷ஗ԆͱΤϥʔ཰্͕ঢͨ͠ •

    6:44 - 10:02ͷؒɺҰ෦Ϧʔδϣϯ΁ͷߋ৽ͷ఻೻͕஗Ԇͨ͠ • ME-SOUTH-1, EU-SOUTH-1, AP-EAST-1, AF-SOUTH-1 • ৽نʹ࡞੒ɾߋ৽ͨ͠IAMϦιʔεͰͷೝূɾೝՄ͕ਖ਼ৗʹߦΘΕͳ͔ͬͨՄೳ ੑ͕͋Δ • طଘͷIAMϦιʔεʹΑΔೝূɾೝՄʹ͸Өڹ͕ͳ͔ͬͨ % curl https://status.aws.amazon.com/data.json | jq '.archive | sort_by(.date) | .[] | select(.service == "iam")' ˛ϔϧεμογϡϘʔυͷཤྺ͔Β֬ೝ͍ͯ͠·͢
  13. ো֐ͷӨڹൣғͷΠϝʔδ  ϓϦϯγύϧ AWSαʔϏε IAM ΤϯυϙΠϯτ σʔλϓϨʔϯ όʔδχΞ๺෦Ϧʔδϣϯ AWS IAM

    άϩʔόϧ ΤϯυϙΠϯτ ίϯτϩʔϧϓϨʔϯ ͦͷ΄͔ͷϦʔδϣϯ σʔλϓϨʔϯ AWS IAM ೝূɾೝՄͷ࣮ࢪ ೝূɾೝՄͷ࣮ࢪ ো֐ͷൣғʁ *".Ϧιʔεͷૢ࡞ ʢྫɿϙϦγʔͷมߋʣ
  14. ো֐ͷӨڹൣғͷΠϝʔδ  ϓϦϯγύϧ AWSαʔϏε IAM ΤϯυϙΠϯτ σʔλϓϨʔϯ όʔδχΞ๺෦Ϧʔδϣϯ AWS IAM

    άϩʔόϧ ΤϯυϙΠϯτ ίϯτϩʔϧϓϨʔϯ ͦͷ΄͔ͷϦʔδϣϯ σʔλϓϨʔϯ AWS IAM ೝূɾೝՄͷ࣮ࢪ ೝূɾೝՄͷ࣮ࢪ ো֐ͷൣғʁ *".Ϧιʔεͷૢ࡞ ʢྫɿϙϦγʔͷมߋʣ "84αʔϏε΁ͷ ϦΫΤετ ʢྫɿ&$ͷىಈʣ ίϯτϩʔϧϓϨʔϯͱ ಠཱ͍ͯ͠ΔͨΊӨڹͳ͠ʁ
  15. ো֐ͷ֓ཁ  • 4:59 (PDT)͔ΒετοΫϗϧϜϦʔδϣϯͰ IAM ೝূ API Τϥʔ͕૿Ճ •

    ౰֘Ϧʔδϣϯͷ͍͔ͭ͘ͷαʔϏε͕ӨڹΛड͚Δ • ෳ਺ͷαʔϏεΧςΰϦͰΠϕϯτ͕ه࿥͞ΕΔ • 5:24 ʹճ෮Λ։࢝ • 5:58 [S3] ϦΫΤετͷ໰୊ղܾ͕Ξφ΢ϯε • 6:02 [EC2] ໰୊ղܾ͕Ξφ΢ϯε • 6:11 [ELB] ໰୊ղܾ͕Ξφ΢ϯε • 6:03 - 6:28 ʹϩʔυόϥϯαʔͷ઀ଓੑͷ໰୊ͱWAFΤϥʔͷ૿Ճ͕ൃੜ % curl https://status.aws.amazon.com/data.json | jq '.archive | sort_by(.date) | .[] | select(.description | contains("IAM"))' ˛ϔϧεμογϡϘʔυͷཤྺ͔Β֬ೝ͍ͯ͠·͢
  16. ো֐ͷӨڹൣғͷΠϝʔδ  ϓϦϯγύϧ AWSαʔϏε IAM ΤϯυϙΠϯτ σʔλϓϨʔϯ όʔδχΞ๺෦Ϧʔδϣϯ AWS IAM

    άϩʔόϧ ΤϯυϙΠϯτ ίϯτϩʔϧϓϨʔϯ ετοΫϗϧϜϦʔδϣϯ σʔλϓϨʔϯ AWS IAM ೝূɾೝՄͷ࣮ࢪ ೝূɾೝՄͷ࣮ࢪ "84αʔϏε΁ͷ ϦΫΤετ ʢྫɿ&$ͷىಈʣ IAM ΤϯυϙΠϯτ ো֐ͷൣғʁ AWSαʔϏε
  17. ো֐ͷӨڹൣғͷΠϝʔδ  ϓϦϯγύϧ AWSαʔϏε IAM ΤϯυϙΠϯτ σʔλϓϨʔϯ όʔδχΞ๺෦Ϧʔδϣϯ AWS IAM

    άϩʔόϧ ΤϯυϙΠϯτ ίϯτϩʔϧϓϨʔϯ ετοΫϗϧϜϦʔδϣϯ σʔλϓϨʔϯ AWS IAM ೝূɾೝՄͷ࣮ࢪ ೝূɾೝՄͷ࣮ࢪ "84αʔϏε΁ͷ ϦΫΤετ ʢྫɿ&$ͷىಈʣ ଞϦʔδϣϯͷσʔλϓϨʔϯͱ ಠཱ͍ͯ͠ΔͨΊӨڹͳ͠ IAM ΤϯυϙΠϯτ AWSαʔϏε ো֐ͷൣғʁ
  18. ·ͱΊ  • ίϯτϩʔϧϓϨʔϯ • όʔδχΞ๺෦ϦʔδϣϯʹͻͱͭͷΈଘࡏ͢Δ • IAMϦιʔε͕อ؅͞Ε͍ͯΔ • σʔλϓϨʔϯ

    • ίϯτϩʔϧϓϨʔϯ͔ΒIAMϦιʔε͕ෳ੡͞ΕΔ • ֤Ϧʔδϣϯʹଘࡏ͢Δ • ֤ϦʔδϣϯͷೝূɾೝՄΛߦ͏ • গͳ͘ͱ΋3ͭͷAZʹ෼ࢄ͞Ε͍ͯΔ