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

キッチハイク社内勉強会 / 2021-03-03

taogawa
April 15, 2021

キッチハイク社内勉強会 / 2021-03-03

taogawa

April 15, 2021
Tweet

More Decks by taogawa

Other Decks in Programming

Transcript

  1. IAMͷʮೝূʯ • AWSͷαʔϏεར༻ʹର͢Δೝূ • IAMϢʔβʔʹର͢ΔύεϫʔυϙϦγʔͷઃఆ ◦ ύεϫʔυ͸XจࣈҎ্ɺه߸ͷ༗ແɺ༗ޮظݶͷઃఆ • MFA(ଟཁૉೝূ) ◦

    ෳ਺ͷຊਓ͔͠஌Βͳ͍ / ࣋ͨͳ͍৘ใʹΑͬͯೝূڧ౓Λڧ͘ ͢Δ ◦ ύεϫʔυ + ຊਓͷ࣋ͭσόΠεͰੜ੒ͨ͠ίʔυ
  2. AWSͷʮೝՄʯ͸ͱ͖ͬͭʹ͍͘ • ෇༩͢Δݖݶ͕๲େͰ͋Δ ◦ ๲େͳαʔϏεͷ਺ x ͦͷݖݶͷ૊Έ߹ Θͤ • ΍Γ͍ͨ͜ͱʹൺͯ͠ɺ΍ΕΔ͜ͱ͕ඇৗʹଟ

    ͍ • ݖݶઃఆ͸೥ʑ࢖͍΍͘͢ͳ͍ͬͯΔ͕ɺͦ ΕͰ΋೉͍͠ ◦ ӈͷΑ͏ͳJSONΛ௚઀मਖ਼͢Δػձ͸ଟ ͍ { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetOpsItem", "ssm:UpdateOpsItem", "ssm:DescribeOpsItems", "ssm:CreateOpsItem", "ssm:CreateResourceDataSync", "ssm:DeleteResourceDataSync", "ssm:ListResourceDataSync", "ssm:UpdateResourceDataSync" ], "Resource": "*" } ] }
  3. ϧʔτϢʔβʔ࢖͍͕ͪ • AWSͷαΠϯΞοϓ࣌ʹ࡞੒͞ΕΔΞΧ΢ϯτ ◦ AWS΁ͷϦιʔεͷ͢΂ͯͷΞΫηεݖݶΛ࣋ͭ࠷ڧͷϢʔβʔ ◦ IAMϢʔβʔͱ͸ҧ͏ • AWS͋Δ͋Δ: IAMϢʔβʔΛ࡞ΒͣɺϧʔτϢʔβʔΛͦͷ··࢖ͬͯ

    ͠·͏ ◦ AWSΛ࢖͏ਓ͸αʔϏεΛ࡞Γ͍ͨ ◦ IAMͷઃఆΛௐ΂ͯ಄௧͕ͯ͘͠Δ→ϧʔτϢʔβʔ࢖͏ ◦ ԿͰ΋Ͱ͖Δݖݶ͔ͩΒαʔϏεΛ࡞Δͷʹ͸ࠔΒͳ͍
  4. ϧʔτϢʔβʔৗ༻ͷ຤࿏ • ͦͷ͏ͪɺϧʔτϢʔβʔ͕౰ͨΓલԽ͢Δ ◦ IAMϢʔβʔͰద੾ͳݖݶ෇༩Λޙճ͠ʹ͢Δ ◦ ϧʔτϢʔβʔͷΞΫηεΩʔ / γʔΫϨοτΩʔΛ࢖͏ͳͲɺ௒ة ݥͳΦϖϨʔγϣϯ͕ৗଶԽ͢Δ

    • ΞΫηεΩʔ / γʔΫϨοτΩʔ͸ͦΕͦͷ΋ͷ͕ೝূ৘ใ ◦ ID / ύεϫʔυͷ૊Έ߹Θͤͱ΄΅ಉٛ ◦ ޡͬͯϦϙδτϦʹPushͯ͠શੈքʹެ։ → ΞΧ΢ϯτ͕ୣΘΕΔ ◦ ϧʔτϢʔβʔ͸ԿͰ΋ग़དྷΔͷͰඃ֐͕ਙେͳ΋ͷͱͳΔ
  5. ͜͜·Ͱͷ·ͱΊ • IAM(Identity and Access Management)͸AWSϦιʔε΁ͷೝূͱೝՄ ͷ؅ཧ͕໾ׂ • ʮೝূʯ͸ຊਓͱͷಉҰੑ֬ೝ •

    ʮೝՄʯ͸Ϧιʔεʹର͢ΔݖݶΛ༩͑Δ͜ͱ • AWSͷ৔߹ɺʮೝՄʯَ͕໳Ͱ͋Δ ◦ ઃఆͷϋʔυϧ͕΍΍ߴ͘ޙճ͠ʹ͞Ε͕ͪ ◦ ҰํͰAWS͸Ϣʔβʔͷ૝૾Ҏ্ʹͳΜͰ΋Ͱ͖Δ ◦ ݁Ռɺྲྀग़࣌ʹμϝʔδ͕େ͖͍
  6. ·ͣ͸খ͘͞ʮೝূʯ͔Β࢝ΊͯΈΔ • 16ݸ΋ʂʁͱͳΔ͕ɺશͯΛ͍͖ͳΓ࢝ΊΔඞཁ͸ͳ ͍ ◦ ࠷ॳ͔Β͸ඞཁͳ͍΋ͷ΋͋Δ • ͜͏͍͏ͱ͖͸՝୊Λ෼ׂɻ·ͣ͸ʮೝূʯ͔Β΍ͬͯ ΈΑ͏ •

    ʮೝূʯ͸ͻͱΓͻͱΓͷಉҰੑ֬ೝɻͦͷ؍఺͔Β ਐΊͯΈΔ ◦ MFAͷ༗ޮԽ ◦ IAMϢʔβʔΛڞ༻Ͱ͸ͳ͘ɺϢʔβʔ͝ͱʹൃ ߦ͢Δ ◦ ύεϫʔυϙϦγʔͷڧԽ ◦ ΞΫηεΩʔͷແޮԽɾඇڞ༗ • ͜Ε͚ͩͰ΋େ෼ϚγʹͳΔ ϕετϓϥΫςΟε಺Ͱͷʮೝূʯؔ࿈߲໨ ɾAWSΞΧ΢ϯτͷϧʔτϢʔβʔΞΫηεΩʔΛϩοΫ͢Δ ɾݸʑͷIAMϢʔβʔΛ࡞੒͢Δ ɾϢʔβʔͷͨΊʹڧ౓ͷߴ͍ύεϫʔυϙϦγʔΛઃఆ͢Δ ɾMFAͷ༗ޮԽ ɾΞΫηεΩʔΛڞ༗͠ͳ͍ ɾೝূ৘ใΛఆظతʹϩʔςʔγϣϯ͢Δ ɾෆཁͳೝূ৘ใͷ࡟আ ɾ௥ՃηΩϡϦςΟʹର͢ΔϙϦγʔ৚݅Λ࢖༻͢Δ
  7. ͍ͭͮͯʮೝՄʯʹऔΓ૊ΜͰΈΑ͏ • ϩʔϧ΍άϧʔϓɺϙϦγʔͳͲͷݴ༿͕ग़ͯ ͖ͨɻͳʹ͜Εʁ • ·ͣ͸͜ΕΒʹ͸໨ΛͭΉΖ͏ɻ • ඞཁͳ͚ͩͷʮೝՄʯͷ෇༩ʹऔΓ૊Ή • ۩ମతʹ͸ҎԼͷ߲໨

    ◦ ࠷খݶͷಛݖΛೝΊΔ ◦ AWS؅ཧϙϦγʔΛ࢖༻ͨ͠ΞΫηεڐ Մͷ࢖༻։࢝ ϕετϓϥΫςΟε಺ͰͷʮೝՄʯؔ࿈߲໨ ɾIAMϢʔβʔͷΞΫηεڐՄΛׂΓ౰ͯΔͨΊʹάϧʔϓΛ࢖͍·͢ ɾ࠷খݶͷಛݖΛೝΊΔ ɾΞΫηεϨϕϧΛ࢖༻ͯ͠ɺIAM ΞΫηεڐՄΛ֬ೝ͢Δ ɾAWS؅ཧϙϦγʔΛ࢖༻ͨ͠ΞΫηεڐՄͷ࢖༻։࢝ ɾΠϯϥΠϯϙϦγʔͰ͸ͳ͘ΧελϚʔ؅ཧϙϦγʔΛ࢖༻͢Δ ɾAmazon EC2ΠϯελϯεͰ࣮ߦ͢ΔΞϓϦέʔγϣϯʹର͠ɺϩʔ ϧΛ࢖༻͢Δ ɾϩʔϧΛ࢖༻ͯ͠ΞΫηεڐՄΛҕ೚͢Δ
  8. AWSͷϨʔϧʹ৐Δ • ݖݶʁͲΕΛ͚͍͍ͭͯͷ͔෼͔Βͳ͍Αʂ • ͦΜͳਓͷͨΊʹAWS͕ϏϧτΠϯͷ؅ཧϙ Ϧγʔ(ݖݶͷηοτ)Λ༻ҙͯ͘͠Ε͍ͯΔ ◦ αʔϏε͝ͱʹΞΫηεݖݶ͕ύοέʔ δԽ͞Ε͍ͯΔ ◦

    ݖݶΛ࠷ॳ͔Βॻ͔ͳͯ͘ࡁΈɺϋʔυ ϧ͕Լ͕Δ ◦ ͜ͷϙϦγʔʹ௥Ճ͢ΔܗͰɺݸผͷη ΩϡϦςΟϙϦγʔΛՃ͑Δͷ͕ఆੴ ϕετϓϥΫςΟε಺ͰͷʮೝՄʯؔ࿈߲໨ ɾIAMϢʔβʔͷΞΫηεڐՄΛׂΓ౰ͯΔͨΊʹάϧʔϓΛ࢖͍·͢ ɾ࠷খݶͷಛݖΛೝΊΔ ɾΞΫηεϨϕϧΛ࢖༻ͯ͠ɺIAM ΞΫηεڐՄΛ֬ೝ͢Δ ɾAWS؅ཧϙϦγʔΛ࢖༻ͨ͠ΞΫηεڐՄͷ࢖༻։࢝ ɾΠϯϥΠϯϙϦγʔͰ͸ͳ͘ΧελϚʔ؅ཧϙϦγʔΛ࢖༻͢Δ ɾAmazon EC2ΠϯελϯεͰ࣮ߦ͢ΔΞϓϦέʔγϣϯʹର͠ɺϩʔ ϧΛ࢖༻͢Δ ɾϩʔϧΛ࢖༻ͯ͠ΞΫηεڐՄΛҕ೚͢Δ
  9. ϢʔβʔɺϩʔϧɺάϧʔϓɺϙϦγʔΛཧղ͠Α͏ • ଓ͍ͯϢʔβʔɺϩʔϧɺάϧʔϓɺϙϦγʔͷ֓೦Λཧղ ͢Δ ◦ IAMϢʔβʔ ◦ IAMάϧʔϓ ◦ IAMϙϦγʔ

    ◦ IAMϩʔϧ ˔ ͜ΕΒΛཧղ͢Δ͜ͱ͸ϝϯςφϒϧͳIAMͷӡ༻ʹͭͳ͕ Δ ◦ ٯʹ͍͑͹ɺ͜ΕΒΛཧղ͍ͯ͠ͳͯ͘΋࠷௿ݶͷೝ Մ෇༩͸Ͱ͖Δ ▪ Ϣʔβʔʹ௚઀ϙϦγʔΛ෇༩ ◦ ࠷ॳ͔Β͖ͬͪΓ΍Ζ͏ͱͯ͠࠳ં͢ΔΑΓ΋ɺ·ͣ ͸ϝϯςφϒϧͰͳͯ͘΋ೝՄΛ੔උ͢Δ΄͏͕Α͍ Α͏ʹࢥ͏ ϕετϓϥΫςΟε಺ͰͷʮೝՄʯؔ࿈߲໨ ɾIAMϢʔβʔͷΞΫηεڐՄΛׂΓ౰ͯΔͨΊʹάϧʔϓΛ࢖͍·͢ ɾ࠷খݶͷಛݖΛೝΊΔ ɾΞΫηεϨϕϧΛ࢖༻ͯ͠ɺIAM ΞΫηεڐՄΛ֬ೝ͢Δ ɾAWS؅ཧϙϦγʔΛ࢖༻ͨ͠ΞΫηεڐՄͷ࢖༻։࢝ ɾΠϯϥΠϯϙϦγʔͰ͸ͳ͘ΧελϚʔ؅ཧϙϦγʔΛ࢖༻͢Δ ɾAmazon EC2ΠϯελϯεͰ࣮ߦ͢ΔΞϓϦέʔγϣϯʹର͠ɺϩʔ ϧΛ࢖༻͢Δ ɾϩʔϧΛ࢖༻ͯ͠ΞΫηεڐՄΛҕ೚͢Δ
  10. ϢʔβʔɺϩʔϧɺάϧʔϓɺϙϦγʔͷ໾ׂ • IAMϢʔβʔ ◦ AWS Λར༻͢Δ֤ར༻ऀ޲͚ʹ࡞੒͞ΕΔΞΧ΢ϯ τ • IAMάϧʔϓ ◦

    ಉҰͷ໾ׂΛ࣋ͭIAM ϢʔβʔΛάϧʔϓԽ͢Δػ ೳɻIAM Ϣʔβʔಉ༷ʹΞΫηεݖݶΛ෇༩͢Δ͜ͱ ͕Ͱ͖Δɻ • IAMϙϦγʔ ◦ AWS Ϧιʔε΁ͷΞΫηεݖݶΛͻͱ·ͱΊʹͨ͠ ΋ͷɻ • IAMϩʔϧ ◦ AWS αʔϏε΍ΞϓϦέʔγϣϯ(ඇϢʔβʔ)ʹର ͯ͠AWS ͷૢ࡞ݖݶΛ༩͑Δ࢓૊ΈɻผΞΧ΢ϯτ ͷϢʔβʔʹ෇༩͢Δ͜ͱ΋Ͱ͖Δɻ