JAWS-UG朝会で発表した"CloudFormation StackSets × AWS Organizationsで設定の自動化"の発表資料です
$MPVE'PSNBUJPO4UBDL4FUTº"840SHBOJ[BUJPOTͰઃఆͷࣗಈԽ/3*ωοτίϜגࣜձࣾɹࠤʑ+"846(ேձୈճ#jawsug_asa
View Slide
ࠤʑCMPHIUUQTCMPHUBLVSPTOFU5XJUUFS!ELGKࣗݾհ #jawsug_asa
+BQBO"1/"NCBTTBEPSબग़͞Ε·ͨࣗ͠ݾհ #jawsug_asa
ೝఆηΩϡϦςΟࢼݧͷରࡦຊཁཧ͔Β߈ུ͢Δʰ"84ೝఆηΩϡϦςΟઐࣝʱIUUQTBN[OUP1,4D("84ೝఆηΩϡϦςΟઐࣝͷษڧͷํͱ"84ͷηΩϡϦςΟͷΨΠυϒοΫͱͯࣥ͠චʢͨͭ͠Γʣ#jawsug_asa
ࠓ͢༰"84ͷΞΧϯτηΩϡϦςΟ"84ͷηΩϡϦςΟαʔϏε$MPVE'PSNBUJPO4UBDL4FUTͱ"840SHBOJ[BUJPOT#jawsug_asa
ຊͷΰʔϧ"840SHBOJ[BUJPOTͱ$MPVE'PSNBUJPO4UBDL4FUTΛࣗͰͬͯΈΑ͏㱺ࣗͰखΛಈ͔͢ͷେࣄʂʂ#jawsug_asa
"84ͱηΩϡϦςΟ͍Ζ͍ΖΔ͜ͱ͕ଟͯ͘ɺ͍͜͠ͱࢥͬͨ͜ͱ͋Γ·ͤΜ͔શମ૾ΛѲ͢ΔͨΊʹɺͬ͘͟Γͱྨͯ͠Έ·͠ΐ͏#jawsug_asa
"84ͱηΩϡϦςΟ"84ͷηΩϡϦςΟ̏ͭͷ࣠Ͱߟ͑Δᶃ"84ʹߏஙͨ͠ωοτϫʔΫͱαʔόʔͷηΩϡϦςΟᶄ"84ૢ࡞ʹؔ͢Δݖݶʢ*".ʣᶅηΩϡϦςΟΛҡ࣋ཧ͢ΔͨΊͷ"84αʔϏεAWS ManagementConsoleRoleVPCAWS CloudSubnetInternet gatewayAmazon Simple StorageService (S3)VPN gatewayEndpointsUserૢ࡞ݖݶInstance Instance InstanceAWS LambdaRoleᶄᶃAWS Command LineInterfaceAWS Config AWS Systems ManagerAWS Service Catalog AWS Trusted Advisor AWS CloudTrailᶅηΩϡϦςΟΛҡ࣋ཧ͢ΔαʔϏε#jawsug_asa
ᶃ"84ʹߏஙͨ͠ωοτϫʔΫͱαʔόʔͷηΩϡϦςΟڞ༗Ϟσϧͷͷ෦ઃܭͷߟ͑ํΦϯϓϨͱେ͖͘ҧΘͳ͍͕ɺઃఆͷํ"84ͷྲّྀʹै͏ඞཁ͕͋ΔIUUQTBXTBNB[PODPNKQDPNQMJBODFTIBSFESFTQPOTJCJMJUZNPEFM#jawsug_asa
ᶄ"84ͷૢ࡞ʹؔ͢Δݖݶʢ*".ʣ"84ͷηΩϡϦςΟͷத֩ͷҰͭͲΜͳʹωοτϫʔΫαʔόʔͷηΩϡϦςΟΛڧݻʹ͍ͯͯ͠ɺ"84Λૢ࡞͞ΕΔͱ͕݀։͚ΒΕΔ"84ͷബ͍ຊɹ*".ͷϚχΞοΫͳIUUQTCPPUIQNKBJUFNT#jawsug_asa
ᶅηΩϡϦςΟΛҡ࣋ཧ͢ΔɹͨΊͷ"84αʔϏε"84ಠࣗͷ෦ར༻͠ͳͯ͘γεςϜΛηΩϡΞͳঢ়ଶΛҡ࣋Ͱ͖Δ͕ɺ্ख͘׆༻͢ΔͱࣗྗͰΔΑΓഒָʹͳΔ"84ͷബ͍ຊᶘΞΧϯτηΩϡϦςΟͷϕʔγοΫηΦϦʔIUUQTCPPUIQNKBJUFNT#jawsug_asa
ηΩϡϦςΟΛҡ࣋͢ΔͨΊͷ"84αʔϏε
ΨʔυϨʔϧͱ͍͏"84ͷઃܭࢥηΩϡϦςΟҰઃఆ͓ͯ͠ऴ͍Ͱͳ͍ɻڥશମʹܧଓతͳΨόφϯεΛఏڙ͢Δҝͷϧʔϧ͕ඞཁɻ"84རศੑΛอͪͳ͕Βɺαϙʔτ͢ΔαʔϏεΛఏڙ͍ͯ͠Δᶃ༧ɹʜɹ*".4$1Ͱېࢭࣄ߲ͷૢ࡞ࣄ߲Λग़དྷͳ͘͢Δ͜ͱᶄݕɹʜɹېࢭࣄ߲ͷૢ࡞͕͞ΕͨΒؾ͕͚Δঢ়ଶʹ͢Δ͜ͱΨʔυϨʔϧؔॴ#jawsug_asa
$MPVE5SBJMAWS ManagementConsoleUserAWS Command LineInterfaceAWS CloudTrailAmazon Simple StorageService (S3)Amazon CloudWatch"84Ϧιʔεͷૢ࡞ཤྺΛهɾ௨ᶃϚωδϝϯτίϯιʔϧͱ"1*ͷૢ࡞ཤྺΛ4ʹอଘᶄ$MPVE8BUDI-PHTΛར༻ͯ͠4/4ܦ༝Ͱ௨ՄೳAWSϦιʔε#jawsug_asa
$POpHఆˍΠϕϯτൃੜ࣌ʹ"84ͷঢ়ଶΛهᶃ"84ͷঢ়ଶΛه͠ཧ͢ΔαʔϏεᶄ$POpH3VMFTΛར༻͢Δ͜ͱʹΑΓɺ͋Δ͖ঢ়ଶ͔Β֎Εͨ͜ͱΛݕ͢Δ͜ͱ͕Ͱ͖ΔAWS ConfigUserAWSϦιʔεͷߏมߋߏཧɾهͷอଘมߋޙͷߏͷධՁʢConfig RulesʣAmazon SimpleNotification Service#jawsug_asa
(VBSE%VUZڴҖͷݕग़ᶃηΩϡϦςΟ؍͔ΒͷڴҖϦεΫΛݕग़ᶄϩάσʔλʢ71$'MPX-PHT $MPVE5SBJM&WFOU-PHT %/4-PHTʣΛੳᶅڴҖΛ"*ʹΑΓΠϯςϦδΣϯεʹݕग़ѱҙͷ͋ΔεΩϟϯΠϯελϯεͷڴҖΞΧϯτͷڴҖAmazon GuardDutyFlow logsEvent LogsDNS LogsϩάڴҖͷஅAmazon SimpleNotification ServiceAmazon CloudWatchEvents௨#jawsug_asa
4FDVSJUZ)VChttps://aws.amazon.com/jp/security-hub/ηΩϡϦςΟΞϥʔτΛҰݩཧᶃ(VBSE%VUZ .BDJF *OTQFDUPSͷΞϥʔτΛ౷߹ͯ͠ཧᶄ֤छϩάΛݩʹίϯϓϥΠΞϯενΣοΫᶅαʔυύʔςΟπʔϧͱͷ࿈ܞɾෳ"84ΞΧϯτͷ౷߹Մೳ#jawsug_asa
5SVTUFE"EWJTPS"84ͷར༻ঢ়گΛධՁᶃ̑ͭͷ؍ʢίετ࠷దԽɾύϑΥʔϚϯεɾηΩϡϦςΟɾϑΥʔϧττϨϥϯεɾαʔϏε੍ݶʣͰධՁᶄσϑΥϧτͰద༻͞Ε͍ͯΔͷͰɺҰݟͯΈΔ͜ͱᶅ௨ʢ&ϝʔϧͷΈʣՄೳ#jawsug_asa
$POUSPM5PXFShttps://aws.amazon.com/jp/controltower/ෳΞΧϯτͷηΩϡϦςΟઃఆͱࢹᶃ"84ͷϕετϓϥΫςΟεΛΓࠐΜͩઃఆͰɺ"84ΞΧϯτͷߏஙᶄΞΧϯτͷϙϦγʔΛܧଓతʹཧͱՄࢹԽᶅطଘͷΞΧϯτΛ$POUSPM5PXFSʹొ͢Δͷා͍#jawsug_asa
ηΩϡϦςΟͷઃܭͷࢦ
/*45αΠόʔηΩϡϦςΟϑϨʔϜϫʔΫྨ ΧςΰϦʔಛఆʢ*EFOUJGZʣɾࢿ࢈ཧɾϏδωεڥɾΨόφϯεɾϦεΫΞηεϝϯτɺϦεΫΞηεϝϯτཧɾαϓϥΠνΣʔϯϦεΫϚωδϝϯτޚʢ1SPUFDUʣɾΞΫηε੍ޚɾҙ্͓ࣝΑͼτϨʔχϯάɾσʔληΩϡϦςΟɾใΛอޢ͢ΔͨΊͷϓϩηε͓Αͼखॱɾอकɾอޢٕज़ݕʢ%FUFDUʣɾҟৗͱΠϕϯτɾηΩϡϦςΟͷܧଓతͳϞχλϦϯάɾݕϓϩηεରԠʢ3FTQPOEʣɾରԠܭըͷ࡞ɾίϛϡχέʔγϣϯɾੳɾݮ෮چʢ3FDPWFSʣɾ෮چܭըͷ࡞ɾվળɾίϛχέʔγϣϯIPA CSFίΞhttps://www.ipa.go.jp/files/000071204.pdf
"848FMM"SDIJUFDUFEϑϨʔϜϫʔΫப ઃܭݪଇӡ༻্ͷ༏लੑɾӡ༻Λίʔυͱͯ͠ӡ༻ɾఆظతʹɺখنͳɺݩʹ͢͜ͱ͕Ͱ͖ΔมߋΛద༻͢Δɾӡ༻खॱΛఆظతʹվળ͢ΔɾোΛ༧͢Δɾ͋ΒΏΔӡ༻্ͷো͔ΒֶͿηΩϡϦςΟɾڧݻͳೝূج൫ͷ࣮ɾτϨαϏϦςΟʔͷ࣮ݱɾશϨΠϠʔͷηΩϡϦςΟͷద༻ɾηΩϡϦςΟͷϕετϓϥΫςΟεͷࣗಈԽɾૹத͓ΑͼอதͷσʔλอޢɾσʔλʹਓͷखΛೖΕͳ͍ɾηΩϡϦςΟΠϕϯτͷඋ͑৴པੑɾো͔Βࣗಈతʹ෮چ͢Δɾ෮چखॱΛςετ͢Δɾਫฏํʹεέʔϧͯ͠ू߹తͳϫʔΫϩʔυͷՄ༻ੑΛߴΊΔɾΩϟύγςΟʔΛײʹཔΒͳ͍ɾࣗಈԽͰมߋΛཧ͢ΔύϑΥʔϚϯεޮɾߴͳςΫϊϩδʔΛ୭Ͱ͑ΔΑ͏ʹ͢Δɾ͢Ͱάϩʔόϧʹల։͢ΔɾαʔόʔϨεΞʔΩςΫνϟΛ༷͢ΔɾΑΓසൟʹ࣮ݧ͢ΔɾϝΧχΧϧγϯύγʔΛߟྀ͢Δίετ࠷దԽɾΫϥυͷࡒཧͷӡ༻ɾফඅϞσϧΛಋೖ͢ΔɾશମతͳޮΛଌఆ͢Δɾඅ༻Λੳ͠ɺؼ݁ͤ͞ΔAWS Well-Architected ϑϨʔϜϫʔΫhttps://aws.amazon.com/jp/architecture/well-architected/
"84ͷηΩϡϦςΟαʔϏεΛ׆༻ྫ
ϑϨʔϜϫʔΫʹͯΊͯΈΔͱʁLambdaSystems Manager AutomationCloudFormationOrganizations SCPIAMSNSConfigCloudWatchInspectorMacieGuardDutyShieldFirewall ManagerWAFVPC༧ ޚ ݕ ରԠ ෮چ௨ࣗಈԽLambdaCloudWatchௐࠪCloudWatchCloudTrail౷߹Security Hub#jawsug_asa
ΞʔΩςΫνϟʔผʹݟͯΈΔͱShieldWAFCloudFrontELB߈ܸରࡦ ରϦιʔεNACLSecurityGroupωοτϫʔΫޚ ରϦιʔεELB EC2RDSKMSσʔλอޢ ରϦιʔεEC2RDSS3%%P4߈ܸΞϓϦέʔγϣϯ߈ܸෆਖ਼ωοτϫʔΫΞΫηεෆਖ਼ɹσʔλΞΫηεInspectorSystemsManagerαʔόʔཧSecurity Hub CloudTrail CloudWatchGuardDuty Config VPCFlow logsՄࢹԽɾϞχλϦϯά௨௨SNS௨ӡ༻୲ࢹɾશϨΠϠʔͷηΩϡϦςΟͷద༻ɾτϨαϏϦςΟʔͷ࣮ݱ#jawsug_asa
γεςϜͷϨΠϠʔผʹͯΊΔͱϚωδϝϯτίϯιʔϧ71$Ծઐ༗ྖҬ&$04ྖҬϩʔΧϧσΟεΫ3%4σʔλϕʔε4ετϨʔδ$MPVE8BUDIࢹ%JSFDU$POOFDU/8ηΩϡϦςΟͷରԠྫʢޚʣݕͷରԠྫ(VBSE%VUZ$POUSPM5PXFS4FDVSJUZ)VC'JSFXBMM.BOBHFS.BDJF5SVTUFE"EWJTPSɾ"84ΞΧϯτɿར༻੍ݶɾ*".Ϣʔβɿૢ࡞ݖݶͱଓݩ੍ݶɹར༻ՄೳϦιʔεʹର͢ΔΞΫηείϯτϩʔϧɺଟཁૉೝূͷಋೖɾຊ൪ڥɺ։ൃڥͱ͍ͬͨڥ୯ҐͰ71$ͷɾαϒωοτ୯ҐͰͷ௨৴੍ޚɺϧʔςΟϯάઃఆɾ71$ϑϩʔϩάͷऔಘɾ4FDVSJUZ(SPVQʹΑΔαʔόؒ௨৴੍ޚɾ4ZTUFNT.BOBHFSΛར༻ͯ͠ͷɺαʔόঢ়ଶͷѲͱҰׅύονͯɾαʔόͷϩάΠϯཧͷΈͱɺϩάूͷΈͷಋೖɾ҉߸ԽΦϓγϣϯʹΑΔσΟεΫશମͷ҉߸Խ$MPVE5SBJMʹΑΔ"84ૢ࡞ཤྺτϥϑΟοΫϩά֤छΞϓϦέʔγϣϯϩά04ϩάΠϯཤྺ%#ࠪϩά"84αʔϏε֤छʹΑΔϩάɾΞϥʔτݕࠪ͢Δ͖ϩάɾઐ༻ઢʢ%9ʣ71/Λར༻ͨ͠ܦ࿏҆શͷ֬อɾ5SBOTJU(BUFXBZΛར༻ͨ͠71$ɾܦ࿏ͷཧɾܦ࿏ͷԽʹΑΔࣄۀܧଓੑͷ֬อɾDBMSͷػೳʹΑΔςʔϒϧશମʢදྖҬʣͷ҉߸ԽɾDBʹର͢ΔΞΫηεݖݶͷཧɾ҉߸ԽΦϓγϣϯʹΑΔετϨʔδશମͷ҉߸ԽɾΫϥΠΞϯταΠυ҉߸ԽΩʔʹΑΓσʔλΛอޢɾCloudWatchʹΑΔAWSͷࢹͱɺӡ༻ࢹιϑτΣΞΛར༻ͨ͠αʔϏεɺΞϓϦέʔγϣϯࢹͷซ༻*OTQFDUPS"84ͷར༻ঢ়گͷࠪ"84ΞΧϯτͷઃఆͱΨόφϯεηΩϡϦςΟʔΞϥʔτͷूͱݕɾରԠ"84ͷෆਖ਼ར༻ͷݕ04ɺΞϓϦͷηΩϡϦςΟධՁ'JSFXBMMͷҰݩཧͱݕɾରԠ4ͷػີใͷݕग़ɺྨɺอޢ0SHBOJ[BUJPOT#jawsug_asa
༧త౷੍ͱൃݟత౷੍ηΩϡϦςΟͷϕετϓϥΫςΟεͷҰͭ0SHBOJ[BUJPO6OJUAutomationAWS Systems ManagerAWS ConfigRuleઃఆෆඋΛݕम෮ࢦࣔ༧త౷੍ൃݟత౷੍SCPAWS OrganizationsSCPΛར༻ͯ͠ΞΧϯτશମʹېࢭࣄ߲ͷઃఆAWSΞΧϯτIAM UserྫʣSPPUϢʔβʔͷΞΫηεΩʔͷ࡞Λېࢭ͢Δྫʣ*".Ϣʔβʔͷ.'"͕༗ޮʹͳ͍ͬͯΔ͔νΣοΫ͢ΔҰ࣌తʹIAMϢʔβʔͷແޮԽ#jawsug_asa
αʔϏεΛ্ख͘׆༻͢Δͱӡ༻ָ͕ʹͳΔ
ηΩϡϦςΟͷઃఆΛखಈͰઃఆ͢Δͱʁ̍ʙ̎ݸͩͱରԠՄೳ͕ͩɺΞΧϯτ͕ݸ͋ͬͨͱͨ͠Βʁਓ͕ؒखͰΔͱϛεൈ͚࿙Ε͕ൃੜ͢ΔɻͦΕҎલʹ໘͍͘͞#jawsug_asa
"840SHBOJ[BUJPOTͷ׆༻
"840SHBOJ[BUJPOTͷ༻ޠ#jawsug_asaཁૉ໊ ֓ཁ৫"840SHBOJ[BUJPOTͰཧ͢ΔରͷશମࢀՃ͢Δ"84ΞΧϯτશͯϚελʔΞΧϯτ"840SHBOJ[BUJPOTΛઃఆͨ͠"84ΞΧϯτʢ৫ʹ̍ͭͷΈʣϝϯόʔΞΧϯτ৫ͷϚελʔΞΧϯτҎ֎ͷશͯͷ"84ΞΧϯτ৫୯Ґʢ06৫ͷཧతͳάϧʔϓཧ༻ϧʔτʢSPPUʣ৫ͷ֊ͷ࠷্ҐαʔϏείϯτϩʔϧϙϦγʔར༻Ͱ͖Δ"84αʔϏεͷ੍ޚΛهड़ͨ͠ϙϦγʔ
0SHBOJ[BUJPOTͷ֊ߏAccount Account AccountOrganizational unit Organizational unit3PPUAccountRootԼʹΞΧϯτͷஔՄೳʢඇਪʣOUͷ֊ߏઃఆՄೳ#jawsug_asa৫୯Ґʢ06ʣͰཧ͞Εɺ্ҐͷઃఆԼҐʹܧঝ͞ΕΔ
αʔϏείϯτϩʔϧϙϦγʔʢ4$1ʣ4$1Λ͏ͱ"84ΞΧϯτ୯ҐͰͷݖݶ੍ޚ͕Մೳ4FSWJDF$POUSPM1PMJDZʢ4$1ʣ*EFOUJUZCBTFEQPMJDZʢ*".ʣ˓˓˓☓☓༗ޮͳݖݶ*".ͷΈͳΒͣϧʔτΞΧϯτͷ੍ݶՄೳʢ1FSNJTTJPOTόϯμϦʔΑΓڧྗʣ
4$1ͷ੍ޚͷܧঝ #jawsug_asa0SHBOJ[BUJPOTͷ֊ͱݖݶͷܧঝAccount Account AccountOrganizational unit Organizational unitSCPΞΧϯτ୯Ґʹద༻SCPOUશମʹద༻3PPUΞΧϯτͰ*".ΛؤுΔΑΓɺ੍ޚ͞ΕͨαϯυϘοΫεΞΧϯτΛ࡞Δ΄͏ָ͕͔͠Εͳ͍
$MPVE'PSNBUJPO4UBDL4FUT
$MPVE'PSNBUJPO4UBDL4FUT #jawsug_asaCloudFormationStackSetsStackΞΧϯτAʢϝϯόʔΞΧϯτʣ౦ژϦʔδϣϯStackΦϋΠΦϦʔδϣϯΞΧϯτʢϚελʔΞΧϯτʣStackΞΧϯτBʢϝϯόʔΞΧϯτʣ౦ژϦʔδϣϯStackͷ࡞ͱ࣮ߦෳͷ"84ΞΧϯτϦʔδϣϯʹର͠$MPVE'PSNBUJPOͷελοΫΛ࡞Ͱ͖Δػೳ
0SHBOJ[BUJPOTº4UBDL4FUT#jawsug_asaAWS AccountAWS AccountOUʢ৫୯Ґʣ3PPUCloudFormationStackSetswithOrganizationsAWS AccountOUʹࢀՃAWS AccountελοΫͷ࡞ʢOUઃఆͷՃʣελοΫͷআʢOUઃఆͷআʣOU͔Β0SHBOJ[BUJPOTͱ࿈ܞͤͯ͞ɺ06ࡿԼʹࣗಈతʹ4UBDL4FUTͷద༻ΊͪΌͪ͘Όศར
"840SHBOJ[BUJPOTº$MPVE'PSNBUJPO4UBDL4FUTࢼͯ͠ΈΑ͏ʂʂ
ࢧ͍ߦͬͯΔ͚Ͳʁࢧ͍ߦͰ"840SHBOJ[BUJPOTͷػೳ͕ར༻Մೳͳϓϥϯ͕͋Γ·͢/3*ωοτίϜɹʲ"840SHBOJ[BUJPOTରԠʳ"84ࢧ͍ߦαʔϏεIUUQTXXXOSJOFUDPNQSPEVDUTBXTQBZNFOU#jawsug_asa
·ͱΊ
ࠓͨ͠༰"84ͷΞΧϯτηΩϡϦςΟ"84ͷηΩϡϦςΟαʔϏε$MPVE'PSNBUJPO4UBDL4FUTͱ"840SHBOJ[BUJPOT#jawsug_asa
ຊͷΰʔϧ"840SHBOJ[BUJPOTͱ$MPVE'PSNBUJPO4UBDL4FUTΛࣗͰͬͯΈΑ͏㱺ͬͯΈͨ͘ͳΓ·͔ͨ͠ʁɹ-FU`͂5SZʂʂ#jawsug_asa