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

突然のグループ一斉在宅勤務開始!!1に
おける働き方を変革する技術や仕組み

 突然のグループ一斉在宅勤務開始!!1に
おける働き方を変革する技術や仕組み

JulyTechFesta 2021 Winterにてペパボのテレワーク開始に伴う課題を解決した技術の話をしました。

Kazuhiko Yamashita

January 24, 2021
Tweet

More Decks by Kazuhiko Yamashita

Other Decks in Programming

Transcript

  1. ಥવͷάϧʔϓҰ੪ࡏ୐ۈ຿։࢝!!1ʹ
    ͓͚Δಇ͖ํΛมֵ͢Δٕज़΍࢓૊Έ
    ʙ޿ౡݝ࢈ͷԴᥡΛ;ΜͩΜʹར༻ͨ͠ോαϒϨฤʙ

    View full-size slide

  2. ࢁԼ࿨඙!QZBNB
    (.0ϖύϘٕज़ج൫νʔϜ
    γχΞɾϓϦϯγύϧ
    UFOTOBQPODPN
    QZBNBGVO
    TUOTKQ

    View full-size slide

  3. 45/4
    -JOVY/444FSWFS
    TUOTKQ

    View full-size slide

  4. झຯ: Ωϟϯϓ

    View full-size slide

  5. ϗεςΟϯάࣄۀ &$ࢧԉࣄۀ ϋϯυϝΠυɾͦͷଞࣄۀ

    View full-size slide

  6. ೥ ϩϦϙοϓʂϨϯλϧαʔόαʔϏεఏڙ։࢝


    ೥ ϔςϜϧαʔϏεఏڙ։࢝
    ίʔυॻ͚Δͱӕ͍ͭͯϖύϘʹೖࣾ੒ޭʂʂ̍
    ೥݄೔
    ࣛࣇౡݝग़ਫࢢʹ͓͍ͯ1ࢁര஀ʂʂ̍
    ೥ ݱࡏɾ૑ۀ೥໨
    ϜʔϜʔυϝΠϯαʔϏεఏڙ։࢝
    ೥ ౦ূҰ෦΁ࢦఆସ͑

    View full-size slide

  7. GMOϖύϘ
    • શύʔτφʔʢैۀһʣ͕ςϨϫʔΫΛجຊͱ͢Δۈ຿ମ੍

    • ίϩφ΢Πϧεͷײછ֦େঢ়گʹΑͬͯ͸ɺग़ࣾΛڐՄ੍ʹ͢ΔͳͲ

    ੍ݶ͕͋Δ

    • ೥ʹ਺ճ͋Δࣾ಺ΠϕϯτʹࢀՃͰ͖ΔͳΒ͹೔ຊશࠃͲ͜ʹॅΜͰ΋Մ

    • ςϨϫʔΫख౰ͱͯࣗ͠୐ͷޫ೤අ΍௨৴අΛิॿ
    ※GMOάϧʔϓͰ͸ैۀһͷ͜ͱΛύʔτφʔͱݺͼ·͢

    View full-size slide

  8. ๻ʹى͖ͨ͜ͱ

    View full-size slide

  9. ༧ΊͰ͖͍ͯͨ͜ͱ
    ౦ژɺ෱Ԭɺࣛࣇౡͱڌ఺͕཭Ε͍ͯΔͷͰɺڌ఺ؒͷ΍ΓऔΓΛߦ͏ͨΊͷ
    ࢓૊Έ͕੔උ͞Ε͍ͯͨ

    ఆظతʹࡏ୐ۈ຿܇࿅Λߦ͍ͬͯͨͷͰɺςϨϫʔΫͰ͖Δࣄલ४උ͕

    Ͱ͖͍ͯͨ

    ձࣾͷنఆͰ͢ΒGitHub EnterpriseʹPRͯ͠࡞੒͞ΕΔۀ຿ϑϩʔͰ͋ͬͨ
    ͜ͱ͔ΒςΩετͰͷίϛϡχέʔγϣϯʹ૊৫ͱͯ͠ద༻Ͱ͖͍ͯͨ

    G Suite΍OneLoginΛ࢝Ίͱ͢ΔSaaS΁ͷҠߦΛਪਐ͍ͯͨͨ͠Ίɺۀ຿Ͱར
    ༻͢Δେମͷιϑτ΢ΣΞ͕ࣾ֎͔Βར༻Ͱ͖ͨ

    View full-size slide

  10. ςϨϫʔΫҠߦޙʹ΍ͬͨ͜ͱ
    Zoom΍Google MeetɺSlackͷ࢖͍ํͷάϥϯυϧʔϧΛఆΊͨ

    ر๬ऀΛର৅ʹΦϑΟεͰར༻͍ͯͨ͠όϩϯνΣΞΛैۀһͷՈʹແྉ
    ഑ૹɺି༩

    PC༻σΟεϓϨΠ΍ిؾ୅ͷิॿ੍ۚ౓Խ

    ډॅ஍ͷࣗ༝Խɺ໘઀ͷશΦϯϥΠϯԽ

    View full-size slide

  11. ಥવͷάϧʔϓҰ੪ࡏ୐ۈ຿։࢝!!1ʹ͓
    ͚Δಇ͖ํΛมֵ͢Δٕज़΍࢓૊Έ

    View full-size slide

  12. ڥքϞσϧ
    ϓϥΠϕʔτ
    Ϋϥ΢υ
    ౦ژΦϑΟε
    ෱ԬΦϑΟε
    ࣛࣇౡΦϑΟε
    VPN
    FW
    VPN
    ϖύϘʹ͓͍ͯ͸ओʹɺFromIPΛݩʹωοτϫʔΫͷ
    ΞΫηεΛڐՄ͍ͯͨ͠

    View full-size slide

  13. ڥքϞσϧ
    ϓϥΠϕʔτ
    Ϋϥ΢υ
    ౦ژΦϑΟε
    ෱ԬΦϑΟε
    ࣛࣇౡΦϑΟε
    VPN
    FW
    VPN
    ίϩφՒʹ͓͍ͯ
    ഁ໓!!1
    ӕͰ͢ɺ͜͜·Ͱ߽շʹഁ໓͓ͯ͠Βͣɺഁ໓͍͍͔͔ͬͯͨͬͨΒഁ໓ͬͯॻ͖·ͨ͠ɻ
    ഁ໓ɺϩυϦήε

    View full-size slide

  14. ϩʔϚ͸1೔ʹͯ͠ͳΒͣ
    چདྷΑΓ௕Β͘FromIPͰͷ੍ݶΛߦ͍ͬͯͨͨΊɺଈ࠲ʹ΄͔ͷ

    ηΩϡϦςΟϞσϧ΁ͷҠߦ͸ࠔ೉

    Կ͔͠Βͷٕज़తΞϓϩʔνΛߦ͏ͨΊʹ΋·ͣ͸ΞΫηεܦ࿏Λ֬อ

    ͢Δඞཁ͕͋Δ

    View full-size slide

  15. kanmon-kaikyo
    https://github.com/pyama86/kanmon-kaikyo

    View full-size slide

  16. ओͳΞΫηε੍ޚ͸Security Group
    ϖύϘͷຊ൪αʔό΁ͷΞΫηε͸ओʹOpenStackͷSecurity Group(SG)
    Λར༻੍ͯ͠ޚ͞Ε͍ͯΔ

    SGΛૢ࡞ͯ͠ಛఆͷIPΛFromIPʹ࣋ͭϗετ͔ΒͷSSHΛΞΫηε͢Δ
    CLIπʔϧͱͯ͠kanmonΛಉ྅ͷ @buty4649 ͕։ൃ͍ͯͨ͠

    View full-size slide

  17. kanmon
    ࣗ෼ͷ*1Λ௥Ճ͍ͨ͠4(ͷ*%ΛઃఆϑΝΠϧʹهड़
    DBULBONPOZNM
    TFDVSJUZ@HSPVQ
    ؀ڥม਺Λઃఆ
    FYQPSU04@64&3/".&VTFSOBNF
    FYQPSU04@1"44803%QBTTXPSE
    FYQPSU04@"65)@63-IUUQFYBNQMFDPNBVUIW

    ίϚϯυ࣮ߦ
    LBONPOPQFO
    kanmon open

    View full-size slide

  18. kanmonͷ՝୊
    ΋ͱ΋ͱΤϯδχΞ͕࢖͏͜ͱΛ૝ఆͨ͠πʔϧͳͷͰɺ࣮ߦ؀ڥߏங΍ɺ
    ؀ڥม਺ͷઃఆͳͲɺΤϯδχΞҎ֎Ͱͷར༻ͷෑډ͕ߴ͍

    ίϩφՒʹ͓͍ͯɺϖύϘͰ͸σβΠφʔ΍ͦͷଞͷ৬छ͕SSHӽ͠ʹ

    σϓϩΠ͢Δഎܠ͔ΒɺΤϯδχΞҎ֎ͷ৬छ΋ΞΫηεखஈΛ֬อ͢Δ

    ඞཁ͕ੜ·Εͨ

    View full-size slide

  19. kanmon-kaikyo
    kanmon-
    kaikyo
    1. Slack͔ΒϘοτʹίϚϯυΛൃߦ

    2. OAuthೝূ༻URL͕ฦ٫͞ΕΔ

    3. ೝূΛύεͰ͖ͨͳΒ͹ɺ

    ೝূΛύεͨ͠ࡍͷIPΞυϨεΛ

    ࢦఆͨ͠αʔόʹSSHڐՄ͢Δ
    1.ίϚϯυൃߦ
    2.OAuthೝূ
    3. ΞΫηεڐՄ

    View full-size slide

  20. kanmon-kaikyo
    FTTHͷIP࠶ར༻ʹΑΔηΩϡϦςΟϦεΫΛݮΒͨ͢Ίɺఆظతʹkanmon-
    kaikyoͰ௥Ճͨ͠ϙϦγʔΛ࡟আ͍ͯ͠Δ

    ϖύϘͷSSH઀ଓ͸ݪଇSTNSΛར༻ͨ͠ެ։伴ೝূɺೝՄΛߦ͍ͬͯΔͨΊɺ
    IP + ެ։伴ͷଟཁૉͰೝূ͞Ε͍ͯΔ

    View full-size slide

  21. kanmon-kaikyo

    View full-size slide

  22. ͕ɺ͔͠͠ɺ
    ಇ͘৔ॴෆ໰ͳͷʹ
    IPʹറΒΕͯΔԶͨͪ͸

    View full-size slide

  23. IPʹΑΔ੍ޚΛ΍Ί͍͕ͨ
    ଟ૚๷ޚͷ૚͕Ұͭͳ͘ͳΔ

    View full-size slide

  24. pam-google-web-oauth-rs
    https://github.com/pyama86/pam-google-web-oauth-rs

    View full-size slide

  25. pam-google-web-oauth-rs
    SSHೝূΛެ։伴 + OAuthೝূͷଟཁૉೝূԽ͢ΔPAMϞδϡʔϧɻྨࣅʹ
    google/google-authenticator-libpam ͕͋Δ͕ɺͪ͜Β͸OTPํࣜɻϖύϘ͸G
    Suiteಋೖ͔ͭG Suiteࣗମ͕2FAඞਢͳͷͰ૊৫ʹϑΟοτ͢Διϑτ΢ΣΞΛ
    ॻ͍ͨ

    ݩʑ͸Go + CͰॻ͍͍͕ͯͨɺWEB + Linuxϓϩάϥϛϯάͷάϧʔݴޠͱ͠
    ͯRustͰॻ͍ͨ΄͏͕εοΩϦॻ͚ͨͷͰษڧΛ݉Ͷͯॻ͖௚ͨ͠

    ݱࡏϖύϘͰ͸ओʹ౿Έ୆αʔόʹΠϯετʔϧ͠ɺଟཁૉೝূΛར༻͍ͯ͠Δ

    View full-size slide

  26. ͜͜·Ͱ࿩ͨ͜͠ͱ
    ग़ࣾͰ͖ͳ͍ɺVPNαʔόͷ໰୊͕ൃੜ͠ɺ͜Ε·ͰͷIPΛར༻ͨ͠ΞΫ
    ηε੍ޚ͕ϑΟοτ͠ͳ͘ͳ͖ͬͯͨ

    Ұ࣌తͳΞΫηεܦ࿏ΛΤϯδχΞɺσβΠφʔ͕Slack͔Βར༻Ͱ͖Δ

    Α͏ʹͨ͠

    SSH઀ଓʹଟཁૉೝূΛ༻͍Δ͜ͱͰɺੈքத͔Β҆શʹΞΫηεͰ͖Δ
    Α͏ʹͨ͠

    View full-size slide

  27. ۀ຿γεςϜ΁ͷΞΫηεܦ࿏

    View full-size slide

  28. ঎ࡐ͝ͱͷސ٬؅ཧΞϓϦ
    ސ٬ɺܖ໿৘ใͷӾཡ

    σʔλϝϯςφϯε

    ཤྺ؅ཧ

    View full-size slide

  29. ސ٬؅ཧΞϓϦ͋Δ͋Δૣ͘ݴ͍͍ͨ
    ͓٬༷ʹ௚઀઀͢ΔϑϩϯτΞϓϦͰ͸ͳ͍ͨΊɺOSɺϓϩάϥϛϯά
    ݴޠɺϥΠϒϥϦͷόʔδϣϯΞοϓͳͲ͕ޙճ͠ʹͳΓ͕ͪ

    ༏ઌ౓͕Լ͛ΒΕ͕ͪͰɺʮ͑ͬʂࠓͲ͖͜͏͍͏ڍಈ͋Δͷʁʁʁʯͬ
    ͍ͯ͏࣮૷͕࢒Γ͕ͪ

    View full-size slide

  30. ͦΕͰ΋ࣾ֎͔Β҆શʹར༻͍ͨ͠
    github.com/oauth2-proxy/oauth2-proxy
    oauth2-proxyΛ࠾༻͠ɺސ٬؅ཧΞϓϦͷલஈʹ

    OAuthೝূΛ௥Ճ͠ɺSSOग़དྷΔΑ͏ʹͨ͠

    View full-size slide

  31. oauth2-proxyΛར༻ͨ͠SSO
    SG
    App
    DBʹొ࿥͞Εͨ
    ϢʔβʔIDͰೝূ&ೝՄ
    ڐՄ͞ΕͨIP͔Β
    ͷΈΞΫηεՄೳ
    oauth2-proxy
    App
    oaut2-proxy͔Β࿈ܞ͞Εͨ
    ϔομ৘ใͰೝূ
    Google΍GitHubͷ
    ΞΧ΢ϯτͰOAuthೝূ
    before after

    View full-size slide

  32. oauth2-proxyΛར༻ͨ͠SSO
    nginx
    oauth2-proxy
    client
    server {
    location /oauth2/ {
    proxy_pass http://127.0.0.1:4180;
    ...
    }
    location = /oauth2/auth {
    proxy_pass http://127.0.0.1:4180;
    ...
    }
    location / {
    auth_request /oauth2/auth;
    error_page 401 = /oauth2/sign_in;
    ...
    }
    }

    View full-size slide

  33. oauth2-proxyΛར༻ͨ͠SSO
    nginx
    oauth2-proxy
    proxy_set_header X-User $user;
    proxy_set_header X-Email $email;
    App
    nginx͔ΒϓϩΩγ͢Δ৔߹ʹϦΫΤετϔομʹ
    ϢʔβʔID΍ϝʔϧΞυϨεΛຒΊࠐΊΔ
    HTTPϔομΛݩʹSSO͢Δ৔߹ɺ
    ඞͣΞΫηεݩͷIPΛνΣοΫ͢Δඞ
    ཁ͕͋Δɻෆਖ਼ͳதܧʹΑͬͯΞΧ΢
    ϯτ͕৐ͬऔΒΕΔՄೳੑ͕͋Δɻ

    View full-size slide

  34. oauth2-proxy
    طଘͷΞϓϦͷલஈʹoauth2-proxyΛ഑ஔͯ͠࢖͏༻్ͷͨΊɺ෯޿͍

    ΞϓϦέʔγϣϯʹӨڹͳ͘OAuthೝূΛద༻Մೳ

    ೝূՄೳͳϝʔϧΞυϨευϝΠϯ΍GitHub Team౳΋ࢦఆՄೳͳͷͰɺ
    ਖ਼͘͠ઃఆ͢Ε͹҆શʹ׆༻Ͱ͖Δ

    υΩϡϝϯτ΍φϨοδ΋ॆ࣮͓ͯ͠Γɺಋೖָ͕

    View full-size slide

  35. WEBϒϥ΢β͸
    OAuthͰ͍͍͚Ͳɺ

    CLI͔Β࣮ߦ͞ΕΔΞϓϦ͸ʁ

    View full-size slide

  36. Vault by Hashicorp
    ϖύϘͰ͸TLS҉߸Խ௨৴ʹར༻͢Δ伴ͷ؅
    ཧΛVaultͷPublic Key Infrastructure(PKI)
    Secret EngineΛར༻͍ͯ͠Δɻ

    View full-size slide

  37. Vault by Hashicorp
    vault server
    api.pepabo.com
    consul-template
    client
    consul-template
    TLS҉߸Խ௨৴
    Vault͕෷͍ग़͢伴Λར༻ͯ͠ɺαʔό ʙ ΫϥΠΞϯτؒͷ
    ௨৴ΛTLSΫϥΠΞϯτೝূ&௨৴Ͱ҉߸Խ

    View full-size slide

  38. Vault by Hashicorp
    WBVMUTFDSFUTFOBCMFEFTDSJQUJPOTFSWJDFDPOTVMQLJNBYMFBTFUUMIQLJ
    WBVMUXSJUFQLJSPMFTTFSWJDFDPOTVMBMMPXFE@EPNBJOTTFSWJDFDPOTVMa
    BMMPX@TVCEPNBJOTUSVFNBY@UUMI

    kanmon open
    Vault͸ൿಗ৘ใΛ҆શʹ؅ཧग़དྷΔιϑτ΢ΣΞ
    ͦͷػೳͷҰ͕ͭެ։伴ج൫
    xxx.service.consul ͷެ։伴Λ؅ཧ͢Δઃఆ

    View full-size slide

  39. consul-template
    UFNQMBUF\
    DPOUFOUT\\XJUITFDSFUaQLJJTTVFTFSWJDFDPOTVMa
    aDPNNPO@OBNFWBVMUTFSWJDFDPOTVMa^^\\%BUBJTTVJOH@DB^^\\FOE^^
    EFTUJOBUJPOVTSTIBSFDBDFSUJpDBUFTFYUSB7BVMU@3PPU@$"DSU
    DPNNBOETVEPVTSMPDBMTCJOVQEBUF@DB@DFSUT
    ^
    kanmon open
    Hashicorpͷιϑτ΢ΣΞͱ࿈ܞͯ͠ɺϑΝΠϧΛग़ྗͨ͠Γɺ
    ίϚϯυΛ࣮ߦͨ͠Γग़དྷΔϛυϧ΢ΣΞ
    Vaultͷ pki/issue/service-consulͷΤϯυϙΠϯτ͔Βূ໌ॻΛऔಘ͢Δ

    View full-size slide

  40. consul-template
    ূ໌ॻͷ༗ޮظݶΛ؂ࢹͯ͠ɺظݶ੾ΕલʹࣗಈͰߋ৽ͯ͘͠ΕΔͷͰূ
    ໌ॻ؅ཧͷख͕ؒͳ͍

    ୹໋ͳূ໌ॻΛൃߦ͢Δ͜ͱͰɺैۀһͷୀ৬࣌ʹ͸ࣗಈͰࣦޮͤ͞Δͳ
    Ͳͷॲཧ͕༰қͰ͋Δ

    View full-size slide

  41. Vault by Hashicorp
    vault server
    api.pepabo.com
    consul-template
    client
    consul-template
    TLS҉߸Խ௨৴
    Vault͕෷͍ग़͢伴Λར༻ͯ͠ɺαʔό ʙ ΫϥΠΞϯτؒͷ
    ௨৴ΛTLSΫϥΠΞϯτೝূ&௨৴Ͱ҉߸Խ
    ΫϥΠΞϯτʹͲͷΑ͏ʹ伴Λ഑෍͢Δ
    ͷ͔͕େ͖ͳ՝୊ʹͳͬͨ

    View full-size slide

  42. kagiana
    pyama86/kagiana

    View full-size slide

  43. kagiana
    WEBϒϥ΢βͰkagianaͷUIʹΞΫηεͯ͠ೝূޙɺVaultʹTLS௨৴͢ΔͨΊͷ伴Λμ΢ϯϩʔυ


    View full-size slide

  44. ๭ʮ͜Εϒϥ΢β։͘ͷ໘౗͔ͩΒCLIͰͰ͖ͳ͍͔͢Ͷʁʯ

    View full-size slide

  45. STNSΛར༻ͨ͠ެ։伴ೝূ
    STNS
    kagiana
    client
    ެ։伴Ͱ
    νϟϨϯδίʔυΛ෮߸
    νϟϨϯδίʔυ
    νϟϨϯδίʔυΛൿີ伴Ͱॺ໊ͯ͠ૹ৴
    7BVMUʹΞΫηε͢Δ伴ͷ഑෍
    stns/libstns-goΛ։ൃ͠ɺSTNSΛར༻ͨ͠ೝূΛՄೳʹͨ͠
    ೝূཁٻ

    View full-size slide

  46. ͜͜·Ͱ࿩ͨ͜͠ͱ
    ސ٬؅ཧγεςϜͳͲͷैۀһ͕ར༻͢ΔͨΊͷΞϓϦέʔγϣϯ͸มߋ಺༰Λ
    গͳ͘ɺ҆શʹར༻͢ΔͨΊʹɺoauth2-proxyͰೝূΛߦ͏Α͏ʹͨ͠

    ։ൃऀ͕ར༻͢ΔAPI͸TLSΫϥΠΞϯτೝূΛߦ͏Α͏ʹͯ͠ɺ伴ͷ഑෍͸
    Vault + kagianaΛར༻ͯ͠ߦ͍ͬͯΔ

    View full-size slide

  47. ୤ઢ OAuth2.0ೝূ

    View full-size slide

  48. ೝূͱೝՄ
    ೝূ
    ೝՄ
    ୭Ͱ͋Δ͔Λಛఆ͢Δ
    Կ͕ग़དྷΔͷ͔ΛڐՄ͢Δ

    View full-size slide

  49. OAuth(2.0)͸ݫີʹ͸ೝՄͷ࢓༷
    RFC 6749ʹͯఆٛ

    ͍͔ͭ͘ͷ࣮૷ύλʔϯ͕༗Γɺࣗ਎ͰೝՄαʔό࣮૷͢Δ৔߹͸ɺ࣮૷
    ύλʔϯʹΑͬͯ͸ೝূίʔυͷ࢖͍ճ͠ͳͲͷ੬ऑੑੜΜͰ͠·͏

    ʮOAuth 2.0 શϑϩʔͷਤղͱಈը※ʯ͕͓͢͢Ί

    ※ https://qiita.com/TakahikoKawasaki/items/200951e5b5929f840a1f

    View full-size slide

  50. ͳΜͱͳ͘ೝՄͪ͠Όͬͯ·ͤΜ͔ʁ
    TwitterͰΑ͘ݟΔGenerator

    ໺ྑṖWifi

    ೝՄ͸༻๏༻ྔΛकͬͯਖ਼͘͠

    View full-size slide

  51. ܹ͘͠୤ઢ

    View full-size slide

  52. ۭલͷ
    ΩϟϯϓϒʔϜ
    ౸དྷ

    View full-size slide

  53. ࠓʂʂʂʂʂʂʂ
    Ωϟϯϓ͕ʂʂʂ
    དྷͯ·͢ʂʂʂʂ

    View full-size slide

  54. શ͘༧໿͕औΕͳ͍ि຤
    https://booking.montbell.jp/lodging/site.php?site_id=3
    WEB༧໿ɺޮ཰త͙͗ͯ͢͢ຒ·Δ

    View full-size slide

  55. ͦΕͰ΋Զ͸Ωϟϯϓʹߦ͖͍ͨ
    https://github.com/pyama86/camp
    1. ৗࣝతͳස౓ͰαΠτΛΫϩʔϧ
    2.αΠτʹۭ͖͕ग़ͨΒɺLINEʹଈ௨஌
    3. ͋ΒΏΔ࡞ۀΛࢭΊͯɺ
    ΩϟϯϓαΠτΛ༧໿

    View full-size slide

  56. ಥવͷάϧʔϓҰ੪ࡏ୐ۈ຿։࢝!!1ʹ͓
    ͚Δಇ͖ํΛมֵ͢Δٕज़΍࢓૊Έ

    View full-size slide

  57. ςϨϫʔΫΛجຊͱͨ͠
    ձ͔ࣾͩΒͦ͜ɺ
    ςϨϫʔΫ্͕ख͍ձࣾʹͳΓ͍ͨ

    View full-size slide

  58. ςϨϫʔΫҠߦޙʹ΍ͬͨ͜ͱ
    Zoom΍Google MeetɺSlackͷ࢖͍ํͷάϥϯυϧʔϧΛఆΊͨ

    ر๬ऀΛର৅ʹΦϑΟεͰར༻͍ͯͨ͠όϩϯνΣΞΛैۀһͷՈʹແྉ
    ഑ૹɺି༩

    PC༻σΟεϓϨΠ΍ిؾ୅ͷิॿ੍ۚ౓Խ

    ډॅ஍ͷࣗ༝Խɺ໘઀ͷશΦϯϥΠϯԽ

    View full-size slide

  59. ໘઀ͷΦϯϥΠϯԽ
    ໘઀͸Google MeetΛར༻࣮ͯ͠ࢪ

    Ϩδϡϝ΍໘઀ཤྺ؅ཧʹ࠾༻؅ཧγεςϜTalentioΛ࠾༻

    ϦϞʔτͰ΋࠾༻ͷεϐʔυΛ্͛ΔͨΊ௨஌Λ޻෉

    View full-size slide

  60. talentio-notifier
    pyama86/talentio-notifier

    View full-size slide

  61. ϖύϘͷ໘઀ϑϩʔ
    ॻྨ৹ࠪ 1࣍໘઀ 2࣍໘઀ ໾һ໘઀ ɹ࠾༻ʂʂ̍
    ෳ਺ճͷ໘઀Ͱٕೳ໘ɺΧϧνϟʔϚονͳͲΛ͓࿩͠·͢

    View full-size slide

  62. pyama͕ղܾ͔ͨͬͨ͠՝୊
    εϐʔυײͷͳ͍ձࣾͰಇ͖͍ͨͱࣗ෼ࣗ਎͕ࢥΘͳ͍ͷͰɺԠื͔Β

    ߹൱࿈བྷ·ͰͷϦʔυλΠϜΛ࡟ݮ͍ͨ͠

    ໘઀ʹඞ༻ͳ৘ใ͕ඞ༻ͳͱ͖ʹಧ͘Α͏ʹ͍ͨ͠

    View full-size slide

  63. TalentioͷAPIΛར༻͠ɺ௨஌ΛࣗಈԽ
    ॻྨબߟɺ໘઀ධఆͷهೖΛϦϚΠϯυ

    ໘઀10෼લʹ͸TalentioͷϨδϡϝϖʔδͷ
    ϦϯΫΛࣗಈͰ௨஌

    ࠾༻νϟϯωϧʹ୭ʹɺͲ͏͍ͬͨґཔΛ
    ௨஌ͨ͠ͷ͔ΛೲظΛؚΊͯ౤ߘ͢Δ͜ͱ
    Ͱ࠾༻୲౰΋τϨʔγϯάՄೳ

    View full-size slide

  64. ςϨϫʔΫʹ͓͍ͯ΋
    Slack͸େ׆༂

    View full-size slide

  65. શһϦϞʔτͰ͋Δ͕Ώ͑ʹɺ୭͕͍·੮ͷ
    લʹ͍Δͷ͔ɺ୭͕ࠓ͝൧Λ৯΂͍ͯΔͷ͔
    Θ͔Βͳ͍ͷͰɺSlackͰͦΕͧΕใࠂ͠
    ͍͋ͬͯͨ

    ۈଵͷใࠂ΍཭੮΋SlackΛ׆༻

    View full-size slide

  66. ୭͕͍Δ͔͍ͳ͍͔͸SlackͷྲྀΕͰ͸

    ௥͍͖Εͳ͍

    ΦϑΟεͰ͸ͪΐͬͱ੮Λཱͯ͹ݟ͑ͨ

    ͋ͷਓ΋Πϯλʔωοτӽ͠Ͱ͸ݟ͑ͳ͍

    ςϨϫʔΫ͸฻Β͠ͱີ઀Ͱ͋Δ͕

    Ώ͑ʹɺࣗ༝౓͕ߴ͘཭੮΋૿͕͑ͪ

    ܅ͱաͨ͝͠Ն͸ઈରʹ๨Εͳ͍
    Slack͸ϑϩʔ৘ใͳͷͰෆ޲͖ͳ͜ͱ΋͋Δ

    View full-size slide

  67. Away From Keybord
    ϝϯγϣϯͰݺ͹Εͨࡍʹ཭੮Λͭͨ͑ͨΓɺఆܗใࠂΛίϚϯυԽ

    View full-size slide

  68. Away From Keybord
    ϝϯγϣϯΛ౤͛Δͱෆࡏ͕͙͢Θ͔Γɺ

    ͙͢ରԠ͕ग़དྷΔ
    ۈ຿։࢝ͳͲఆܗใࠂʹ൐͍ɺ͓·͚Λ

    ͚ͭΔ͜ͱͰɺศརʹར༻ଅਐ

    View full-size slide

  69. ࠷ۙSlackͰ޻෉͍ͯ͠Δ͜ͱ
    https://github.com/pyama86/issuer-bot
    ϑϩʔ৘ใΛετοΫ৘ใ΁ม׵͢Δ
    SlackͰϦΞΫγϣϯΛ͚ͭΔͱϘοτ͕ͦͷ಺༰Λసه͢ΔGitHub IssueͷURLΛൃߦ

    View full-size slide

  70. ศར͗ͯ͢৭ʑॻ͍ͯ͠·͍͕ͪ
    ಉ྅΁ͷґཔΛSlackʹ௕ʑॻ͍ͯ͠·͏ɺͦͯ͠ྲྀΕΔ

    େࣄͳ͓஌ΒͤͳͷʹSlackʹ͔͠৘ใ͕ͳ͍ɺͦͯ͠ྲྀΕΔ

    αʔϏε͔ΒͷΞϥʔτɺେࣄ͚ͩͲSlackͷ௨஌͕ᷓΕͯɺྲྀΕΔ
    ͜Μͳ࣌୅͔ͩΒͦ͜ɺߟ͑Δ͜ͱ͕͋Δ

    View full-size slide

  71. ৘ใͷੜଘظؒΛҙࣝͨ͠
    ίϛϡχέʔγϣϯ͕ٻΊΒΕΔ
    GibHub Issue΍NotionͳͲੜଘظ͕ؒ௕͘ɺݕࡧ͕͠΍͍͢ഔମΛ

    ར༻͢Δ

    SlackͰ΍ΓऔΓͨ͠಺༰΍ςϨϏ௨࿩ͨ͠಺༰Λจࣈىͯ͜͠͠ɺ

    ੜଘظ͕ؒ௕͍ഔମʹه࿥͢Δ͜ͱ͕কདྷͷ୭͔Λॿ͚Δ͜ͱʹͳΔ

    View full-size slide

  72. ࠓ೔࿩ͨ͜͠ͱ

    View full-size slide

  73. GMOϖύϘ
    • શύʔτφʔʢैۀһʣ͕ςϨϫʔΫΛجຊͱ͢Δۈ຿ମ੍

    • ίϩφ΢Πϧεͷײછ֦େঢ়گʹΑͬͯ͸ɺग़ࣾΛڐՄ੍ʹ͢ΔͳͲ

    ੍ݶ͕͋Δ

    • ೥ʹ਺ճ͋Δࣾ಺ΠϕϯτʹࢀՃͰ͖ΔͳΒ͹೔ຊશࠃͲ͜ʹॅΜͰ΋Մ

    • ςϨϫʔΫख౰ͱͯࣗ͠୐ͷޫ೤අ΍௨৴අΛิॿ
    ※GMOάϧʔϓͰ͸ैۀһͷ͜ͱΛύʔτφʔͱݺͼ·͢

    View full-size slide

  74. ڥքϞσϧ
    ϓϥΠϕʔτ
    Ϋϥ΢υ
    ౦ژΦϑΟε
    ෱ԬΦϑΟε
    ࣛࣇౡΦϑΟε
    VPN
    FW
    VPN
    ίϩφՒʹ͓͍ͯ
    ഁ໓!!1
    ӕͰ͢ɺ͜͜·Ͱ߽շʹഁ໓͓ͯ͠Βͣɺഁ໓͍͍͔͔ͬͯͨͬͨΒഁ໓ͬͯॻ͖·ͨ͠ɻ
    ഁ໓ɺϩυϦήε

    View full-size slide

  75. ՝୊Λղܾ͢ΔͨΊʹίʔυΛॻ͍ͨΓOSS׆༻ͨ͠
    kanmon-kaikyo - SGͷ։ดΛSlackͰ࣮ߦ

    pam-google-web-oauth-rs - SSHΛଟཁૉೝূԽ

    oauth2-proxy - طଘͷίʔυʹӨڹΛগͳ͘OAuthೝূʹରԠ

    kagiana - VaultʹΞΫηε͢ΔͨΊͷ伴ΛOAuthೝূޙʹ഑෍

    View full-size slide

  76. ςϨϫʔΫΛݪଇͱͨ͠
    ձ͔ࣾͩΒͦ͜ɺ
    ςϨϫʔΫ্͕ख͍ձࣾʹͳΓ͍ͨ

    View full-size slide

  77. ςϨϫʔΫҠߦޙʹ΍ͬͨ͜ͱ
    Zoom΍Google MeetɺSlackͷ࢖͍ํͷάϥϯυϧʔϧΛఆΊͨ

    ر๬ऀΛର৅ʹΦϑΟεͰར༻͍ͯͨ͠όϩϯνΣΞΛैۀһͷՈʹແྉ
    ഑ૹɺି༩

    PC༻σΟεϓϨΠ΍ిؾ୅ͷิॿ੍ۚ౓Խ

    ډॅ஍ͷࣗ༝Խɺ໘઀ͷશΦϯϥΠϯԽ

    View full-size slide

  78. TalentioͷAPIΛར༻͠ɺ௨஌ΛࣗಈԽ
    ॻྨબߟɺ໘઀ධఆͷهೖΛϦϚΠϯυ

    ໘઀10෼લʹ͸TalentioͷϨδϡϝϖʔδͷ
    ϦϯΫΛࣗಈͰ௨஌

    ࠾༻νϟϯωϧʹ୭ʹɺͲ͏͍ͬͨґཔΛ
    ௨஌ͨ͠ͷ͔ΛೲظΛؚΊͯ౤ߘ͢Δ͜ͱ
    Ͱ࠾༻୲౰΋τϨʔγϯάՄೳ

    View full-size slide

  79. ୭͕͍Δ͔͍ͳ͍͔͸SlackͷྲྀΕͰ͸

    ௥͍͖Εͳ͍

    ΦϑΟεͰ͸ͪΐͬͱ੮Λཱͯ͹ݟ͑ͨ

    ͋ͷਓ΋Πϯλʔωοτӽ͠Ͱ͸ݟ͑ͳ͍

    ςϨϫʔΫ͸฻Β͠ͱີ઀Ͱ͋Δ͕

    Ώ͑ʹɺࣗ༝౓͕ߴ͘཭੮΋૿͕͑ͪ

    ܅ͱաͨ͝͠Ն͸ઈରʹ๨Εͳ͍
    Slack͸ϑϩʔ৘ใͳͷͰෆ޲͖ͳ͜ͱ΋͋Δ

    View full-size slide

  80. Away From Keybord
    ϝϯγϣϯͰݺ͹Εͨࡍʹ཭੮Λͭͨ͑ͨΓɺఆܗใࠂΛίϚϯυԽ

    View full-size slide

  81. ࠷ۙSlackͰ޻෉͍ͯ͠Δ͜ͱ
    https://github.com/pyama86/issuer-bot
    ϑϩʔ৘ใΛετοΫ৘ใ΁ม׵͢Δ
    SlackͰϦΞΫγϣϯΛ͚ͭΔͱϘοτ͕ͦͷ಺༰Λసػ͢ΔGitHub IssueͷURLΛൃߦ

    View full-size slide

  82. ࠷ޙʹ
    ίϩφՒͰ৭ʑͳ࢓૊ΈΛ࡞Δ্Ͱײͨ͜͡ͱ͸ɺ͜Ε·Ͱͱߟ͑ํΛ

    ม͑ͳ͍ͱߦ͚ͳ͍෦෼͕ଟ͍

    ςϨϫʔΫ͸฻Β͠ͱີ઀Ͱ͋Δ͜ͱ

    ͜Ε·ͰՄࢹൣғʹ͋ͬͨ΋ͷ͕ݟ͑ͳ͍͜ͱ

    ಉ࣭Խͷఔ౓ʹΑΓΞϓϩʔν͕ҧ͏͜ͱ

    View full-size slide

  83. ͓͠·͍
    ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ !QC@SFDSVJU

    View full-size slide