github ์ ์ด์ค ์ธ์ฆ(two factor authentication, 2FA) ์ ์ฉํด์ ๋ณด์ ๊ฐํํ๊ธฐ(gitlab, bitbucket ํฌํจ)
๊ฐ์
ํดํน์ผ๋ก ์ธํด ์ทจํ ์ ์๋ ๊ฒฝ์ ์ ์ด๋์ด ๋ง์์ง๋ค ๋ณด๋ ๋ถ์ผ๋ฅผ ๋ง๋ก ํ๊ณ ์ ๋ฐฉ์์ ์ผ๋ก ํดํน์ด ์ผ์ด๋๊ณ ์์ต๋๋ค.
ํนํ ๋ฐ์ดํ๊ฐ ์ค์ํ๋ค ๋ณด๋ ๋์ฌ์จ์ด์ฒ๋ผ ๋ฐ์ดํ๋ฅผ ์ํธํํ๊ณ ๋ณผ๋ชจ๋ก ๋์ ์๊ตฌํ๋ ๊ฒฝ์ฐ๊ฐ ์ ๋ฐํด์ง๊ณ ๋ค์ํด์ ธ์ ๋์๋ ์ด๋ ค์์ง๊ณ ํผํด๋ ์ปค์ง๊ณ ์์ต๋๋ค.
์ต๊ทผ์๋ ๊ธฐ์ ๋ค๋ github ๋ฅผ ์ฌ์ฉํด์ ํ๋ก์ ํธ ์์ค๋ฅผ ์ฌ๋ฆฌ๊ณ ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ๋ ๋ง์๋ฐ github ๊ณ์ ์ ๋ค๋ฅธ ์์คํ ๊ณ์ ๊ณผ ๋์ผํ๊ฒ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ค๋ฅธ ๊ณณ์ ํธ๋ฆด ๊ฒฝ์ฐ github ๋ ๊ฐ์ด ํธ๋ฆด ํ๋ฅ ์ด ๋์์ง๊ฒ ๋ฉ๋๋ค.
ํด์ปค๋ค์ ๊ณ์ ์ ํ์ทจํ ํ์ github ํ๋ก์ ํธ๋ฅผ ์ญ์ (๋ฌผ๋ก ํด์ปค PC๋ก clone ์ ๋ฐ์๊ฒ ์ฃ .)ํ๊ณ ๋ณต๊ตฌ๋ฅผ ๋๊ฐ๋ก ๋นํธ์ฝ์ธ์ ์๊ตฌํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค๊ณ ํ๋ ์ด๋ค์ ์ฐฝ์๋ ฅ๊ณผ ๋ถ์ง๋ฐํจ์๋ ๋๋๊ธฐ๋ ํฉ๋๋ค.
๋ ๋ค๋ฅธ ์ฌ๋ก๋ก๋ ์ค์ ๋๋ ์ด์์ ํธ์์ฑ๋๋ฌธ์ "AWS instance์ SSH ๋ก ์ ๊ทผํ๊ธฐ ์ํ private key"๋ฅผ github ํ๋ก์ ํธ์ ์ฌ๋ ค ๋จ์ ๊ฒฝ์ฐ ์ด๋ฅผ ๊ฐ์ ธ๊ฐ์ ํด๋น ์ธ์คํด์ค์ ์ ์ํ ํ์ ์ฑ๊ตด๊ธฐ๋ฅผ ๋๋ ค์ ์๊ธ ํญํ์ ๋ง๊ฒ ํ๊ธฐ๋ ํฉ๋๋ค.
์ด๋ฐ ๊ณต๊ฒฉ์ ๋์ํ๊ธฐ ์ํด์๋ ๋ช ๊ฐ์ง ์ค์ํ ๋ณด์์ ๊ธฐ๋ณธ ์์น์ ๊ฐ์ถ๊ณ ์คํํ๋ ๊ฒ์ด ํฐ ๋์์ด ๋ฉ๋๋ค.
๊ทธ์ค์ ํ๋๋ ๋ฏผ๊ฐํ ์ ๋ณด(SSH private key, DB ์ ์ ์ ๋ณด)๋ฅผ ์ ์ฅ์์ ์ฌ๋ฆฌ์ง ์๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์ํด์๋ 12 factor app ์ ์ค์ ํญ๋ชฉ์ ๋์จ ๊ฒ์ฒ๋ผ ์์ค ์ฝ๋์ ์ค์ ์ ๋ถ๋ฆฌํ๋ ์์ ์ด ํ์ํฉ๋๋ค.
2๋ฒ์งธ๋ ์ด ๊ธ์์ ์ค๋ช ํ ์ด์ค ์ธ์ฆ์ ์ ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ด์ค ์ธ์ค์ ์ ์ฉํ๋ฉด id์ ์ํธ๊ฐ ๋ ธ์ถ๋์ด๋ ๊ณ์ ์ ๋์ฉํ๋ ๊ฒ์ ๋ง์ ์ ์์ต๋๋ค.
github ์ค์
2 factor ์ธ์ฆ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๊ฒฉ ์ ์ฅ์ ์ฐ๊ฒฐ ํ๋กํ ์ฝ์ ssh ๊ฐ ์๋ https ๋ฅผ ์ฌ์ฉํ๋ฉด pull/push ๊ฐ ์ ๋๋ก ์ ๋ฉ๋๋ค. ์ด๊ฒฝ์ฐ ssh ๋ก ๋ณ๊ฒฝํ๊ฑฐ๋ github token ์ ๋ฐ์์ ๋ฑ๋กํด ์ค์ผ ํฉ๋๋ค.
๊ถ์ฅํ๋ 2 factor ์ธ์ฆ ๋ฐฉ๋ฒ์ Mobile TOTP ์ด๋ฉฐ github ์์ ์ถ์ฒํ๋ ์ฑ์ Authy , 1Password, LastPass Authenticator ๋ก ๋ฏธ๋ฆฌ ํด๋ํฐ์ ์ค์นํด ๋์ต๋๋ค.
์ด์ github ์ ๋ก๊ทธ์ธํ ํ์ Settings → Security ์ ๋ค์ด๊ฐ์ Enable two-factor authentication ์ ํ์ฑํํฉ๋๋ค.
ํ์ฑํ๊ฐ ๋๋ฌ์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ธ์ฆ ๋ฐฉ๋ฒ์ ๋ฌป๋ ํ๋ฉด์ด ๋์ค๋๋ฐ ์ ๋ app ์ ์ฌ์ฉํ ์์ ์ด๋ฏ๋ก Set up using an app ๋ฅผ ์ ํํ์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํด๋ํฐ ๋ถ์ค๋ฑ์ ๊ฒฝ์ฐ์ ๋ณต๊ตฌํ ์ ์๋๋ก Recovery codes ๊ฐ ๋์ค๋๋ฐ ๊ผญ ๋ค์ด๋ก๋ํ ํ์ ๋ฐฑ์ ํด ๋์ด์ผ ํฉ๋๋ค.
๊ทธํ์ QR Code ๊ฐ ํ์๋๋ฉด ์ฑ์ ๋์์ ์ค์บํ ํ์ 6์๋ฆฌ ์ซ์๋ฅผ ์ ๋ ฅํ๋ฉด 2 factor auth ์ค์ ์ด ์๋ฃ๋ฉ๋๋ค.
Authy ์ ๊ฒฝ์ฐ ์ฑ์ ์ฐ์ธก ์๋จ ๋ฉ๋ด๋ฅผ ํด๋ฆญํ๊ณ Add acount ๋ฅผ ๋๋ฅด๋ฉด QR ์ค์บํ ์ ์์ต๋๋ค.
๋ฑ๋ก์ด ๋๋ฌ์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ด ๋์ค๋๋ฐ SMS ๋ก ๋ณต๊ตฌํ ์ ์๋๋ก ์ฌ์ฉํ๋ ์ ํ ๋ฒํธ๋ฅผ ํ๋ ๋ฑ๋กํด ์ค๋๋ค.
ํด๋ํฐ ์ธ์ฆ์ด ๋๋ฌ์ผ๋ฉด ์ด์ ๊ณ์ ๋ณด์ ๊ฐํ๋ฅผ ์ํ 2 factor ์ธ์ฆ ์ค์ ์ด ์๋ฃ๋์๊ณ ๋ค์๋ถํฐ๋ ๋ก๊ทธ์ธ์์ OTP ๋ฒํธ๋ฅผ ๊ฐ์ด ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
gitlab ์ค์
- gitlab ์ ๋ก๊ทธ์ธ ํ ํ์ Profile settings ๋ฉ๋ด์ ๋ค์ด๊ฐ๋๋ค.
- Account → Two-Factor Authentication ์ Enable ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- QR Code ๊ฐ ๋์ค๋ฉด OTP app ์ผ๋ก ์ค์บํ ํ์ ๋์จ 6์๋ฆฌ ์ซ์๋ฅผ ๋ฃ์ด์ ๋ฑ๋กํฉ๋๋ค.
- ๋ฑ๋ก์ด ์๋ฃ๋๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋์ค๋๋ฐ ๊ผญ Download codes ๋ฅผ ๋๋ฌ์ ๋ณต๊ตฌ ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ ํ ํ์ Proceed ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด์ Proceed ๋ฅผ ํด๋ฆญํ๋ฉด 2 factor ์ธ์ฆ ์ค์ ์ด ์๋ฃ๋ฉ๋๋ค.
Bitbucket ์ค์
์ถ๊ฐ ์์ ์ ๋๋ค.