IAM - 100-hours-a-week/9-team-Devths-WIKI GitHub Wiki
๋ชฉ์ฐจ (ํผ์น๊ธฐ/์ ๊ธฐ)
๐ก ์ต์ ๊ถํ ์์น(Least Privilege)์ด๋? ์ฌ์ฉ์์๊ฒ ์ ๋ฌด ์ํ์ ํ์ํ ์ต์ํ์ ๊ถํ๋ง ๋ถ์ฌํ์ฌ, ์ค์๋ ๊ณ์ ํ์ทจ๋ก ์ธํ ํผํด๋ฅผ ์ต์ํํ๋ ๋ณด์ ์์น์ ๋๋ค.
๋ณธ ๋ฌธ์๋ ์ฐ๋ฆฌ ์๋น์ค์ ๋ฏผ๊ฐ ๋ฐ์ดํฐ(์ด๋ ฅ์, ๊ฐ์ธ์ ๋ณด)๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ์ค๊ณ๋ IAM ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ๋๋ค. ๋ชจ๋ ์ธํ๋ผ ์ ๊ทผ์ ์ ์ ์ธ์ฆ(MFA)์ด ์๋ฃ๋ ์ํ์์๋ง ํ์ฉ๋ฉ๋๋ค.
MFA๊ฐ ๋์ด์์ง์์ผ๋ฉด, ๊ถํ ๋ถ์กฑ์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
| ๊ตฌ๋ถ | ์ฌ์ฉ์ | ์ฃผ์ ํ ๋น ์ ์ฑ | ์ ๊ทผ ์์ค |
|---|---|---|---|
| Cloud | david, henry |
AdministratorAccess, Force-MFA-Factor, SSM-Session
|
์ธํ๋ผ ์ ๊ถํ ๋ฐ ๋ณด์ ๊ด๋ฆฌ |
| Full-Stack | neon, yun |
ReadOnlyAccess (S3, EC2, DB ๋ฑ), SSM-Session, Force-MFA-Factor, S3-Access-Devths-dev
|
๋ฆฌ์์ค ๋ชจ๋ํฐ๋ง ๋ฐ ์ฝ๊ธฐ ๊ถํ |
| AI | estar |
ReadOnlyAccess (S3, EC2 ๋ฑ), SSM-Session, Force-MFA-Factor, S3-Access-Devths-dev
|
๋ฆฌ์์ค ๋ชจ๋ํฐ๋ง ๋ฐ ์ฝ๊ธฐ ๊ถํ |
| Backend | s3 | S3-Access-Devths-dev |
[Non-MFA] CLI์ฉ ๊ฐ๋ฐ์ฉ S3 ๊ถํ (Presigned-URL) |
| CI/CD | github-actions |
S3-Access-Devths-artifact, AWSCodeDeployRole
|
[Non-MFA] CLI์ฉ CICD ์ ์ฉ S3 ๋ฒํท ๊ถํ |
์ฐ๋ฆฌ ์๋น์ค์ ๋ชจ๋ ์ฌ์ฉ์๋ ๋ก๊ทธ์ธ ์ MFA(2์ฐจ ์ธ์ฆ)๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉด ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์์ต๋๋ค.
-
๋์ ๋ฐฉ์:
DenyAllExceptListedIfNoMFA๊ตฌ๋ฌธ์ ํตํด MFA ๋ฏธ์ธ์ฆ ์ ๋ชจ๋ Actions์Deny์ฒ๋ฆฌํฉ๋๋ค. -
์์จ์ฑ ๋ถ์ฌ: ์ฌ์ฉ์๊ฐ ์์ ์ ํจ์ค์๋์ MFA ๊ธฐ๊ธฐ๋ ์ง์ ๊ด๋ฆฌํ ์ ์๋๋ก
iam:CreateVirtualMFADevice๋ฑ์ ๊ถํ์ ์์ธ์ ์ผ๋ก ํ์ฉํฉ๋๋ค.
- Admin: ์ธํ๋ผ ๊ตฌ์ถ ๋ฐ ๋ณด์ ์ค์ ์ ์ํด ๊ด๋ฆฌ์ ๊ถํ์ ๊ฐ์ง๋๋ค.
-
Full-Stack: ๊ฐ๋ฐ์ ํ์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ํ์ธ์ ์ํด ์ฝ๊ธฐ ๊ถํ(
ReadOnly)์ ๋ถ์ฌํ๋, ์ค์๋ก ์ธํ ๋ฐ์ดํฐ ์ญ์ ๋ ์ธํ๋ผ ๋ณ๊ฒฝ์ ๋ฐฉ์งํฉ๋๋ค.
SSM-Session ๊ถํ์ ๊ธฐ์กด SSH ํค ๊ณต์ ๋ฐฉ์์ ์ํ์ ์ ๊ฑฐํฉ๋๋ค.ํน์ ์ฌ์ฉ์์๊ฒ ๊ผญ ํ์ํ ssm:StartSession ๊ถํ๋ง ์ง์ ์ฐ๊ฒฐํ์ฌ ๊ถํ ์ค๋จ์ฉ์ ๋ฐฉ์งํฉ๋๋ค.
๋ํ, SSM๊ณผ CloudWatch+S3๋ฅผ ํตํด์ ์ค์๊ฐ์ผ๋ก ์
์ฑ ํค์๋(rm -rf ๋ฑ)์ด ์
๋ ฅ๋๋ฉด ๋ชจ๋ํฐ๋ง ์ฑ๋๋ก ์๋ฆผ์ด ์ค๋๋ก ์ค์ ํฉ๋๋ค.
์ํํ ๋ฉ์์ง์ ๋ํด์ ํ์ฌ ์ ํ๋ ์ค์
๋๋ค. (sudo su๋ ์ฒดํฌ์ฉ)
๋ก๊ทธ ๊ธฐ๋ก ๋ฐ ์๋ฆผ ์ด๋ฏธ์ง (ํผ์น๊ธฐ/์ ๊ธฐ)
- Github Actions๋ ๋ฐฑ์๋ ์๋ฒ์ ์คํฌ๋ฆฝํธ(CLI)๋ ์ฌ๋์ด ์ง์ OTP ๋ฒํธ๋ฅผ ์ ๋ ฅํ ์ ์์ต๋๋ค.
- ํด๋น ๊ณ์ ๋ค์ MFA๊ฐ ์๋ ๋์ , ์ ์ฒด ์ธํ๋ผ ๊ถํ์ด ์๋ ํน์ S3 ๋ฒํท(dev-data, artifact)์๋ง ์ ๊ทผํ ์ ์๋๋ก ๊ถํ์ ์ข๊ฒ ์ค์ ํ์ต๋๋ค.
- ๋ง์ฝ CI/CD ํค๊ฐ ํ์ทจ๋๋๋ผ๋ ๊ณต๊ฒฉ์๋ ๋ฐฐํฌ ํ์ผ ์ ์ฅ์ ์ธ์ ๋ค๋ฅธ ์ธํ๋ผ(DB, VPC ์ค์ ๋ฑ)์๋ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ ์๋น์ค๋ ์ด๋ ฅ์์ ํฌํธํด๋ฆฌ์ค๋ผ๋ ๋ฏผ๊ฐํ ๊ฐ์ธ์ ๋ณด๋ฅผ ๋ค๋ฃน๋๋ค.
- ๊ฐ๋ฐ ๊ณผ์ ์์ DB ๋ด์ฉ์ ํ์ธํด์ผ ํ์ง๋ง, ์ด์ ํ๊ฒฝ์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์์ ํ๊ฑฐ๋ ์ญ์ ํ๋ ํ์๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์น๋ช ์ ์ ๋๋ค.
- ๋ฐ๋ผ์ '์ฝ๊ธฐ ์ ์ฉ'์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ์ฌ ํด๋จผ ์๋ฌ๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
- ๊ด๋ฆฌ์๋ ๊ฐ๋ฐ์์ ๊ณ์ ์ด ํ์ทจ๋ ๊ฒฝ์ฐ, ์๋ง ๋ช ์ ์ด๋ ฅ์ ํ์ผ์ด๋ ๊ฐ์ธ์ ๋ณด๊ฐ ํ๊บผ๋ฒ์ ์ ์ถ๋ ์ ์์ต๋๋ค.
- ID/PW ์ธ์ ๋ฌผ๋ฆฌ์ ์ฅ์น(OTP)๋ฅผ ํตํ 2์ค ๋ฐฉ์ด์ ์ ๊ตฌ์ถํ์ฌ ์ ์ถ ์ฌ๊ณ ๋ฅผ ์์ฒ ์ฐจ๋จํ๊ธฐ ์ํจ์ ๋๋ค.
- ์ธ๋ฐ์ด๋ ํฌํธ์ ์ ํ ๋ฐ ๋ก๊ทธ ๊ฐ์ฌ๋ฅผ ์ํด์ SSM์ ์ฌ์ฉํ์ต๋๋ค. ์ถ๊ฐ ์ค๋ช - https://github.com/100-hours-a-week/9-team-Devths-WIKI/wiki/SSM