$30 off During Our Annual Pro Sale. View Details »

AWSアカウントのDeNA的管理手法(スイッチロール補助編)【DeNA TechCon 2022 Autumn】

DeNA_Tech
PRO
September 29, 2022

AWSアカウントのDeNA的管理手法(スイッチロール補助編)【DeNA TechCon 2022 Autumn】

You Tube:https://youtu.be/6Dn5d3Xt-_A

概要:
DeNA では AWS アカウントの一元管理のため、各アカウントへのログインにスイッチロールを利用しています。これにより、管理の観点では便利になった一方で、ユーザがログインする際には不便な点がありました。

そこで、AWS のスイッチロールを便利にするための補助ツールを作成しました。今回は、作成したツールについての説明と、そもそもなぜスイッチロールが必要なのかを、DeNA での AWS アカウント管理方法を交えてお話します。

登壇内でのリンク集:
p4, https://techcon2022.dena.dev/spring/session/managing-public-cloud-accounts/
p6, https://www.okta.com/jp/
p9, https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
p16, https://vimeo.com/user140917946/techcon2022-autumn-session03-demo1
p17, https://vimeo.com/user140917946/techcon2022-autumn-session03-demo2

◆ チャンネル登録はこちら↓
https://youtube.com/c/denatech?sub_confirmation=1

◆ Twitter
https://twitter.com/DeNAxTech

◆ DeNA Engineering
https://engineering.dena.com/

◆ DeNA Engineer Blog
https://engineering.dena.com/blog/

◆ DeNA TechCon 2022 Autumn 公式サイト
https://techcon2022.dena.dev/autumn/

DeNA_Tech
PRO

September 29, 2022
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

  1. 6-ᰦᵶᶻḳᷝḨᷨᰦ iᰦ༭Ⴤ๗ࡵౄᰦ ᯔḜᶳḯḥḊᵩḍᓟˮᆚᯕ /਻᝞ᰦ/Ҵན᝞ᰦᷣḯḨṁᵩ᷋ᶢḍᵩ᷿ ੭ᰦȾ᦯

  2. ዎڠᅏś ੭ᰦȾ᦯ ᰀ ᭆ᭄ᭆ᭄ۏᭈਨᰦˌ቏ᷥছ̀ɚ࿧ ᰀ ᶳᷝᶰḁ᝞ɪᷨḫᵩḍᡮ༥ḥᵩᷚᝯز ᰀ ᭆ᭄ᭆᭅۏᭌਨᰦ iᰦĕᜅɚ࿧ ᰀ

    ᷣḯḨṁᵩ᷋ᶢḍᵩ᷿ᝯز ᰀ ᭆ᭄ᭆᭆۏᭈਨᰦ᷷ᶆḇḯ᷋᷋ḁḳᶎჄ๗ḥᵩᷚᰦᯔ) ᯕᰦɧ̅ ᰀ ᰦ 6-ᰦᷨḊᶢᶳᷝ४Ѝ ᰀ  )ᰦᷨᰦ -ᰦᵾḯ᷋ᵶḯ᷿ᷨŠᅔᷓṋେ჏ ȼ
  3. ͪሪ p‹‹…‰᮫᮹᮹‹iepe}{ᭆ᭄ᭆᭆᮩgi{\ᮩgi‘᮹‰…ˆq{o᮹‰i‰‰q}{᮹z\{\oq{oᰀ…Œdyqeᰀey}Œgᰀ\ee}Œ{‹‰᮹ Ƚ

  4. ªf.ɵxpª.pª¡ Ⱦ  'H1$䛾$:6ᶒ㝈⟶⌮䛾௙⤌䜏  $:6䛾䝇䜲䝑䝏䝻䞊䝹䛸䛿  ᐇ㝿䛾䝇䜲䝑䝏䝻䞊䝹ᡭ㡰  ᪧ䝇䜲䝑䝏䝻䞊䝹⿵ຓ䝒䞊䝹

     ᪂䝇䜲䝑䝏䝻䞊䝹⿵ຓ䝒䞊䝹 ż ືస䞉௙⤌䜏䞉ㄢ㢟  䜎䛸䜑
  5. ᭅᮩᰦ iᰦᷨᰦ6-ᰦ୫ᢡჄ๗ᷨŠᅔᷓ ˌईḧḕḡ iᰦᶉᶣɛ࿧༭ᷥ ᰀ ᯠ࿧Ϣᯡᱰᯠ}}oyiᰦᵶᶻḳᷝḨᯡᰦᶙᰦᭅ᮫ᭅᰦ؂ݵ ᰀ --!ᰦᷥᰦ!x‹\ᰦṋʻ຦ḕḡᶲḌ 6-ᰦṟᵩṧᷖᰦ}}oyiᰦᵶᶻḳᷝḨḧ؂ݵḛḌḧ֘ḕᶲᯄ ᰀ

    ᯠ}}oyiᰦᵶᶻḳᷝḨᯡᰦ䚉ᰦ!x‹\ᰦᜑढᰦ䚉ᰦᯠ6-ᰦᰦ0‰iˆᯡ ᰀ ᜑढᷨ᷑ḇḯḨ ᰀ ṟᵩṧჄ๗ᶙମ ᰀ ᷋ḄᶊᷝḖṓḍṎᰦᰦᷨჄ๗ṋˉವ ᰀ ᛹቏ሬᷥṖḌḊᶢᶳᷝĆΆ ȿ 2NWD䛸䛿䠛 䜽䝷䜴䝗ᆺ,'⟶⌮662䛺䛹䜢 ᥦ౪䛩䜛⤫ྜㄆドᇶ┙䝃䞊䝡䝇 ͪሪ᮫ᰦp‹‹…‰᮫᮹᮹’’’ᮩ}x‹\ᮩe}z᮹w…᮹
  6. ᭅᮩᰦ iᰦᷨᰦ6-ᰦ୫ᢡჄ๗ᷨŠᅔᷓ ᅄᷨ୫ᢡჄ๗ ɀ 䛂$FFRXQW䛃 ,$08VHU ,$05ROH䐟 ,$05ROH䐠 䛂$FFRXQW䛃 ,$08VHU

    ,$05ROH䐟 ,$05ROH䐠 «
  7. ᭅᮩᰦ iᰦᷨᰦ6-ᰦ୫ᢡჄ๗ᷨŠᅔᷓ iᰦᷨ୫ᢡჄ๗ Ɂ *RRJOH*URXSV 2NWD 䛂඲♫ඹ㏻$:6㋃䜏ྎ䛃 662⏝,$08VHU $FFRXQW5ROH䐟⏝,$05ROH $FFRXQW5ROH䐠⏝,$05ROH

    $FFRXQW5ROH䐟⏝,$05ROH $FFRXQW5ROH䐠⏝,$05ROH « 䐠┠ⓗ䛾䜰䜹䜴䞁䝖⏝䛾 䝻䞊䝹䜢㑅ᢥ䛧䛶6$0/䝻䜾䜲䞁 䛂$FFRXQW䛃 ,$05ROH䐟 ,$05ROH䐠 䛂$FFRXQW䛃 ,$05ROH䐟 ,$05ROH䐠 « *RRJOH*URXSV䛻ᑐᛂ䛩䜛 $:6䜈䛾䝻䜾䜲䞁ᶒ㝈䛿 䛣䛣䛷⤫୍⟶⌮ 䐟㐃ᦠ 䐡6ZLWFK 5ROH
  8. ᭆᮩᰦ6-ᰦᷨḜᶳḯḥḊᵩḍḧᶣ ḜᶳḯḥḊᵩḍᰦᰜᰜᰜᰦᰦṟᵩṧᷥᄻᶏ᷊ᰦᰦḊᵩḍṋʮḆਥᶑḌŠᅔᷓ Ʃᶑᵽ ᰀ ᰦ0‰iˆᰦᷥᰦee}Œ{‹;ᰦᷨᰦᰦ,}yi;ᰦṋţć ᰀ ᰦ,}yi;ᰦᶣᯠᰦ,}yi<ᰦᷥᰦ‰‰Œzi,}yiᰦḛḌ୫ᢡᯡṋࣃḪ ᷇ᷨӅΒ ᰀ ᰦ0‰iˆᰦᶣᰦᯠee}Œ{‹;ᯡᶺḀᰦᯠee}Œ{‹<ᯡᷨḊᵩḍᷥḜᶳḯḥᶉ᷄Ḍ

    ᓟᙐ᮫ᰦᰦ,}yi<ᰦᷥݮᔑᷟᕇ׌ ᰀ ḜᶳḯḥḊᵩḍṋ͵ᶿɚḃḌḞ᷐ᷨǍᥡ᷽ḇḖ ᰀ ḜᶳḯḥݗᷥᕈΆḛḌ୫ᢡᷨᕇ׌ ᰀ ᷇ᷨᕇ׌ᶉᰦgzq{᮪ᰦ,i\g!{y˜᮪ᰦḘᷨšᷨ ᰦ Œ‰‹}z,}yiᰦᷟᶍ᮪ᰦ຦ᜅᷥݵṪḞ୫ᢡᕇ׌ṋḕḡᶲḌ ɂ 䛣䛾㎶䜚䛾タᐃ䛿䚸 䜰䜹䜴䞁䝖సᡂ᫬䛻 ⮬ືタᐃ䛧䛶䛔䜛 ͪሪ᮫ᰦp‹‹…‰᮫᮹᮹g}e‰ᮩ\’‰ᮩ\z\}{ᮩe}z᮹᮹y\‹i‰‹᮹0‰iˆŒqgi᮹qgᰅˆ}yi‰ᰅeˆi\‹iᰅn}ˆᰀŒ‰iˆᮩp‹zyᰦ᮪ᰦp‹‹…‰᮫᮹᮹g}e‰ᮩ\’‰ᮩ\z\}{ᮩe}z᮹-/-᮹y\‹i‰‹᮹),iniˆi{ei᮹)ᰅ‰‰Œzi,}yiᮩp‹zy 䛂$FFRXQW;䛃 8VHU$ 5ROH; 䛂$FFRXQW<䛃 5ROH< 䞉$FFRXQW;䛾䝻䜾䜲䞁ᶒ㝈 䞉5ROH<䜈䛾$VVXPH5ROHᶒ㝈 $FFRXQW<䜢 ᧯స䛩䜛ᶒ㝈
  9. ᭇᮩᰦאᣄᷨḜᶳḯḥḊᵩḍࡵ᥎ Ⱥȹ 䐟2NWD䛾$:6䜰䝥䝸 䛛䜙䝻䜾䜲䞁 䐠㋃䜏ྎ䜰䜹䜴䞁䝖ୖ䛾 䝻䞊䝹䜢㑅ᢥ 䐡㋃䜏ྎ䜰䜹䜴䞁䝖䛻䝻䜾䜲䞁 䐢┠ⓗ䛾䜰䜹䜴䞁䝖䛸 䝻䞊䝹䜢ධຊ 䐣┠ⓗ䛾䜰䜹䜴䞁䝖䛻

    䝻䜾䜲䞁᏶஢
  10. ᭇᮩᰦאᣄᷨḜᶳḯḥḊᵩḍࡵ᥎ ࿧ɪᷨᯠ6-ᰦᵶᶻḳᷝḨʻ຦ሬᔚൻᶉᯡʭᶺḆ᷊ᷥᶲႵࡰ ᰀ 6-ᰦᵶᶻḳᷝḨṋƙḉḲḧḕḞᷨᷥᰦ}}oyiᰦˆ}Œ…‰ᰦṋƙḌ᷇ḧᷥᷟḌ ᰀ 6-ᰦᷨ୫ᢡţćᶣᰦ}}oyiᰦˆ}Œ…‰ᰦᶉॅƙ ᰀ ᭆѤḊᶢᶳᷝᷨṖḲᷟ᷇ḧṋḏḒḀḃḌ ᰀ ᙩᷓ·ᶦᷨḊᶢᶳᷝᰦ᰽ᰦᙩᷓ·ᶺḀᷨḜᶳḯḥḊᵩḍ

    ᰀ Ḋᶢᶳᷝᶉ᷊᷄ᷟḡᘪЁḕḞḀᮩᮩᮩ ᰀ ᯠ᷍ᶇᰦ-‹i…ᰦᯔᙩᷓ·ᯕᰦᵶᶻḳᷝḨᷥᶲ᷍ḛṖᷢᯈᯡḧᔴṀḃḌ ᰀ ᯠᶍᷨḊᵩḍ᜿ᶁ᷍ḕḞᯈᯡᷟᶍḧቄᶺḃḌ ᰀ ᙩᷓ·ᵶᶻḳᷝḨḧᶣᯈᰦḊᵩḍḧᶣᯈᰦḧᷟḌ ȺȺ
  11. ᭈᮩᰦ঱᮫ᰦḜᶳḯḥḊᵩḍᓟˮḫᵩḍ ࡵƙତᶉḜᶳḯḥḊᵩḍḛḌᷨᶣ ᰀ ʭᶺḆ᷊ᷥᶲᯄ ᰀ ᤞǡ᷊ḏᶲᯄ 䚉ᰦɇü᷇ᷨࡵ᥎ṋᓟˮḛḌḫᵩḍṋ຦ߵḕḡᶲḞ ȺȻ

  12. ᭈᮩᰦ঱᮫ᰦḜᶳḯḥḊᵩḍᓟˮḫᵩḍ ᵶᶻḳᷝḨ; ᰀ Ḋᵩḍ ᰀ Ḋᵩḍ ᵶᶻḳᷝḨ< ᰀ Ḋᵩḍ ᰀ

    Ḋᵩḍ ᰀ Ḋᵩḍ ᮭᰦ—ᭆᭋ᭄Ű Ⱥȼ ±ᰦ iᰦᷥᶣɇüᯠɛᵶᶻḳᷝḨᰛḊᵩḍᷨḜᶳḯḥḊᵩḍ຦ḇᷝ᷋þᔠᯡṋ ᒸ࿥ḛḌḫᵩḍᶙ֬ѿḕḡᶲḌ ᷇᷇ᷨࡵɚ˨ᶙ ĆᔑᷥᷟḌ
  13. ᭈᮩᰦ঱᮫ᰦḜᶳḯḥḊᵩḍᓟˮḫᵩḍ Ёᥥൻ ᰀ ḜᶳḯḥḊᵩḍᷥḪᶲḡྖḀᷟᶲḧᰝƓṋḏḒḀḃḡᶲḌᷨᶺʭᶺḀᷟᶲ ᰀ ᙩᷓ·ᵶᶻḳᷝḨᶦᷨḊᶢᶳᷝᶉḊᶢᶳᷝḕḞḪᷖḆᷥᷟḭḡḕ᷍Ḳ ᰀ ḘᷖḘᷖᙩᷓ·ᵶᶻḳᷝḨḭḡƓᯈ ᰀ ɛ࿧ϢᷥƤḲΆኀސᶙᵵḌᷨᷥᰝŠᅔᷓᶙᓯᣢ

    ᰀ qyyq{oᰦᷟᶍᰝᶒᷝṫᷦᵶᶉᷟᶲঝᷖ᡿ᔠᷨݮᔑᶙᵵḌ ᰀ 6idᰦḫᵩḍᶣᰝɛ࿧ɢᜊᶉᵶᶻḳᷝḨߓӄṋɛŰʹݜḕḡᶲḌᷨᶉរᶲ 䚉ᰦŠᅔᷓṋ๗ᔯḕ᷊ᷟḡᷖḊᶢᶳᷝᶉ᷄ḌṖḲᷥḕḞᶲᯄ ᯔЁᶲΒṀḒᷖವḀḕḞᶲᯕ ȺȽ
  14. ᭉᮩᰦছ᮫ᰦḜᶳḯḥḊᵩḍᓟˮḫᵩḍ ˌई ᰀ ḜᶳḯḥḊᵩḍዎ̣̂ᰦ pˆ}ziᰦࢷܫṋ४Ǒᮼ୽ኀᛸ˫ ᰀ ௅ܗᜢ຦ᶣḕḡᶲᷟᶺḭḞᶙᰝɇü֬ѿḕḡᶲḌᷖᷨᶙᵵḭḞᷨᶉ౦຦ ŚѤṎḭḞ᷇ḧ ᰀ ḜᶳḯḥḊᵩḍᷨɛॅƙṋዎ̣̂

    ᰀ !x‹\ᰦᶺḀᷨᜑढ᝞ʭᷖ΢᷐ḡዎ̣̂ ᰀ ᕇ׌୽ኀṋţᶿḡᰝᯔœᷥṖḭḡᶣᯕᰦĆᔑᷟዎ̣̂ṋᷯᶰᷥᶉ᷄ḌṖḲᷥ ȺȾ
  15. ᭉᮩᰦছ᮫ᰦḜᶳḯḥḊᵩḍᓟˮḫᵩḍ ᶊᷗᯀࡵ̂ᷨӅΒ Ⱥȿ }}oyiᰦq‰ᰦ\ᰦ‹ˆ\giz\ˆxᰦ}nᰦ}}oyiᰦ ᮩ

  16. ᭉᮩᰦছ᮫ᰦḜᶳḯḥḊᵩḍᓟˮḫᵩḍ ᶊᷗᯀḫᵩḍʻ຦ᷨӅΒ Ⱥɀ }}oyiᰦq‰ᰦ\ᰦ‹ˆ\giz\ˆxᰦ}nᰦ}}oyiᰦ ᮩ

  17. ᭉᮩᰦছ᮫ᰦḜᶳḯḥḊᵩḍᓟˮḫᵩḍ ࢷܫ୽ኀᷨ̂ƙ ȺɁ ᭴ᰦབྷ༭ᷨᵶᶻḳᷝḨṋଇᅆ ᭵ᰦḇᷝ᷋ṋ᷋ḇḯ᷋ ᭷ᰦׅĴᯄ ᭶ᰦዎ᷹̂ᵩṫဥ̂ ᮼዎ̂ɚ˨

  18. ᭉᮩᰦছ᮫ᰦḜᶳḯḥḊᵩḍᓟˮḫᵩḍ Šᅔᷓ ߸ཙᷥᰦ-ᰦᶉ᷹ᵩṫᷨᰦ/ᰦṋᕿᷓʹḭḡᯠ᷋ḇḯ᷋ᯡᮼᯠɚ˨ɪםᷨຢ࡙ᯡ ɚ˨ɪם ᰀ ᯠḊᵩḍΗᯡᯠᵶᶻḳᷝḨᰦ ᰦ}ˆᰦᵶᶻḳᷝḨᶒᶳḇᵶḜᯡᶙݮᔑ ᰀ ᯠḊᵩḍΗᯡᯠᵶᶻḳᷝḨᶒᶳḇᵶḜᯡ䚉ᰦ/ᰦᶺḀღ̈́ᷥʹݜΆኀ ᵶᶻḳᷝḨᶒᶳḇᵶḜ

    ᰦ䚉ᰦᵶᶻḳᷝḨƙ࡙৙ᷥᰦᵶᶻḳᷝḨΗḧΖΗᶉዎ̂ᕇ׌ Ⱥɂ
  19. ᭉᮩᰦছ᮫ᰦḜᶳḯḥḊᵩḍᓟˮḫᵩḍ אᣄᷨ˷੯ ṟᵩṧᶙƼʻᷥ ᰀ ࢷܫṋɚḃḌᶇᶿᶉḜᶳḯḥḊᵩḍᶉ᷄ḌᰦᰦᯔŠᅔᷓᶙʭᶺḀ᷊ᷟḡᷖԚĂԝᯄᯕ ᰀ ḊᶢᶳᷝᷨʮḆਥᶑᰝɯḊᶢᶳᷝᶙମᷥ Ⴤ๗ሬᷨښॿˉವ ᰀ ЁᶲΒṀḒᷥ؂ḕḡᯠ᷇ᷨḫᵩḍƤḭḡ᷊ᶇḏᶲᯡᶉಭᷙ

    )ᰦᵶ᷋ḓḜˉವ ᰀ ࢷܫ୽ኀᶉׅᅜḛḌᷨᶉᰝ঱ḫᵩḍᷨṖḲᷟᘚຣჄ๗ḫᵩḍᶦᷨᵶ᷋ḓḜᶙᷟᶲ ᰀ ᵶ᷋ḓḜॿ᮫ᰦᭊᭉ᭄᭄Ѥ᮹যᰦ䚉ᰦ᭄Ѥ Ȼȹ
  20. ᭉᮩᰦছ᮫ᰦḜᶳḯḥḊᵩḍᓟˮḫᵩḍ ᖁᥥ qˆin}—ᰦᷨœṋᔗࣝḡḡḕ᷍ḭḞ 䚉ᰦ6-ᰦᶦᷨᵶ᷋ḓḜ৙ᶣᰦ pˆ}ziᰦʻ຦ṋࣸԻ 6-ᰦ᷈ᷝḙᵩḍᷨᰦ0ᰦԌਛᷨ݇᥉ṋԚ᷊᷄͵ᶿḌ ᯔᰦ/ᰦᷨᰦ y\‰‰ᰦṎᰦ ᰦᷥƳ֬ḕḡᶲḌᰦᯕ 䚉ᰦᝢۦ؂ݵḕḡᵶḯ᷿ᶊᵩḨḕḡᶲ᷊ĵ׌

    ȻȺ
  21. ᭊᮩᰦ᷍ḧ᷐ 6-ᰦᵶᶻḳᷝḨჄ๗ ᰀ iᰦᶉᶣᰝᵶᶻḳᷝḨᷨᅧþჄ๗ᷨḞ᷐ ᯠᰦ}}oyiᰦᵶᶻḳᷝḨᰦ䚉ᰦ!x‹\ᰦᜑढᰦ䚉ᰦ6-ᰦṟᵩṧᰦᯡḧᶲḲŠᅔᷓᷥᷟḭḡᶲḌ ᰀ Ⴤ๗ᤞᷨ᷑ḇḯḨᶙᵵḌþঝᰝṟᵩṧᷥᶣʭᶺḆ᷊ᷥᶺḭḞ ḜᶳḯḥḊᵩḍᓟˮ ᰀ ᵶᶻḳᷝḨᶦᷨḊᶢᶳᷝᶙᓯᣢᷟᷨᶉღ̈́ᷥḛḌḫᵩḍṋƙ࡙

    ᰀ ᷹ᵩṫᷨᰦ/ᰦṋᕿᷓʹḭḡ᷋ḇḯ᷋ᮼɚ˨ṋዎ̣̂ ᰀ Ḋᶢᶳᷝᶙღ̈́ᮼƼʻᷥ ᰀ Ⴤ๗ښॿˉವ ȻȻ