[AWS] Secret Manager
Secret Manager๋ ๋ง ๊ทธ๋๋ก ์ํฌ๋ฆฟ ๊ฐ๋ค์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ ๊ณต๋๋ ๊ธฐ๋ฐ ์๋น์ค ์ค ํ๋๋ค.
ํจ์ค์๋๋ DB ์ ์์ ๋ณด ๊ฐ์ ๋ณด์์ ๋ฏผ๊ฐํ ๊ฐ๋ค์ ๋ค๋ฃจ๊ธฐ ์ํด ์กด์ฌํ๋ค.
๋น์ฉ
๊ณ ์ ๋น์ฉ์ด ์กด์ฌํ๋ค. Secret ํ๋๋น ์ ์ ์ก 0.4๋ฌ๋ฌ ์ ๋๋ฅผ ๋ถ๊ณผํ๋ค.
API ํธ์ถ๋ ๋น์ฉ์ด 1๋ง๊ฑด๋น 0.05๋ฌ๋ฌ๋ก ์กด์ฌํ๊ธด ํ๋๋ฐ, ์ด๊ฒ ๊ทธ๋ ๊ฒ ๋น๋ฒํ๊ฒ ํธ์ถ๋๋ ๋ฆฌ์์ค๋ ์๋๋ ํฌ์ง๋ ์์ ๊ฒ์ด๋ค.
๊ทธ๋์ ๊ฐ๋ฅํ๋ฉด ๋จ์ผ secret์ ์ด๊ฒ์ ๊ฒ ๋ชจ์์ ์งฑ๋ฐ์๋๋๊ฒ ๋น์ฉ์ ์ผ๋ก๋ ์ ๋ฆฌํ๊ฒ ๋ค.
https://aws.amazon.com/ko/secrets-manager/pricing/
์ด์
๊ทธ๋ผ ์ด๊ฒ ๋ค๋ฅธ ์ ์ฅ์๋ ๊ด๋ฆฌ๋ฐฉ์๊ณผ ๋น๊ตํด์ ๋ญ๊ฐ ๋ ์ข์๊ฑธ๊น?
์ฌ์ค ํค/๊ฐ์ ์ ๋นํ ๊ตฌ๊ฒจ๋ฃ๊ณ ์ฝ๋๊ฑด ์ด๋ค ๋ค๋ฅธ Store ์๋น์ค๋ฅผ ์จ๋ ๋ฌ์ฑํ ์ ์๋ ๋ฌธ์ ๋ค.
**1. ์ ๊ทผ ๋ก๊ทธ **
๋ค๋ฅธ Store ์๋น์ค๋ค์ ๋ฐ์ดํฐ ์ ๊ทผ์ ๋ํด์ ํ๋ํ๋ ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ์ง ์๋๋ค. ๊ทธ๋์ ๋ญ๊ฐ ๋ณด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ ๋ฌธ์ ๋ฅผ ์ถ์ ํ๊ธฐ๊ฐ ์ด๋ ต๋ค.
ํ์ง๋ง Secret์ ๋ํ ์ ๊ทผ์ ํญ์ CloudTrail์ ์ ๊ทผ ๋ก๊ทธ๊ฐ ๋จ๋๋ค.
2. ๋ฐํ์ ๋ก๋ - ํ๋ฌธ ์ ์ฅ ํํผ
์ปจํ
์ด๋ ํ๊ฒฝ ๋ณ์ ๋ฑ์ ํจ์ค์๋๋ฅผ ํ๋ฌธ์ผ๋ก ์ ์ฅํ๋ ๊ฒ์ ์๋นํ ์ํ์ฒ๋งํ ํ๋์ด๋ค. ๋งค์ฐ ์ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ์ ์ถ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
Secret์ ์ฌ์ฉํ๋ฉด Secret์ ๋ํ ๊ฐ์ ์ฐธ์กฐ๋ก ํ๊ฒฝ๋ณ์ ์ค์ ์ ๊ฐ์ํ ์ ์๋ค. (AWS ECS์ ๊ฒฝ์ฐ)
**3. ๋์ ์ํธํ ์์ค **
๋ณ๊ฑฐ ์๋๊ฒ์ฒ๋ผ ๋ณด์ผ ์๋ ์์ง๋ง, Secret์ ๋งค์ฐ ๊ฐํ ์ํธํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
KMS๋ผ๋ ๋ณ๋ ์ํธํ ์์คํ
์ ์ฌ์ฉํด์ ๋ฐ์ดํฐ ํค๋ฅผ ๋ง๋ค๊ณ , ๊ทธ ํค๋ก ์ํฌ๋ฆฟ์ ์ํธํํด์ ์ ์ฅํ๋ ๊ฒ์ด๋ค.
๊ทธ๋์ KMS์ Secret์ด ์์คํ
์ ์ผ๋ก ๊ฒฉ๋ฆฌ๋์ด์๊ธฐ ๋๋ฌธ์ ์ ์ถ ์ํ์ด ๋น๊ต์ ์ ๋ค.
KMS๋ฅผ ์ฐ๊ธฐ ๋๋ฌธ์ ๋ด๋ถ์ ์ผ๋ก ๋ดํฌ ์ํธํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
์ฐธ์กฐ: https://blog.naver.com/sssang97/224204769009
์ ํ์ฌํญ
๊ฐ secret์๋ ํฌ๊ธฐ ์ ํ์ด ์กด์ฌํ๋ค.
์ ํ์ ์ํฌ๋ฆฟ๋น 64 KiB ์ ๋๋ค. ๊ทธ๋์ ๋๋ฌด ํฐ ๊ฐ์ ๋ฃ์ง ์๋ ๊ฒ์ด ์ข๋ค.
์ํฌ๋ฆฟ ๋ง๋ค์ด๋ณด๊ธฐ
ํ์ด์ง์ ์ง์ ํด์ ์ํฌ๋ฆฟ ์์ฑ์ ์ง์ ํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ด ๋ฐ ๊ฒ์ด๋ค.

์ํฌ๋ฆฟ์๋ ์ฌ๋ฌ๊ฐ์ง ํ์ ์ด ์๋๋ฐ, ์ผ๋ฐ์ ์ผ๋ก๋ "๊ธฐํ" ํ์ ์ด ์ฌ์ฉ์ฌ๋ก์ ์ ํฉํ ๊ฒ์ด๋ค.

์ฌ๊ธฐ์๋ ํค/๊ฐ ์์ผ๋ก ์ฌ๋ฌ๊ฐ์ ์ํฌ๋ฆฟ ์ ๋ณด๋ฅผ ๋์์ ์ง์ด๋ฃ์ ์ ์๋ค.
์ด๊ฑด ๋ด๋ถ์ ์ผ๋ก JSON ๊ฐ์ผ๋ก ์ ์ฅ๋๋ค.
ํน์ ์์ ํ
์คํธ๋ก ์
๋ ฅํ ์๋ ์๋ค.
์ด๋ฌ๋ฉด yaml์ด๋ ์ํ๋ ํฌ๋งท์ ๋ฐ๋ผ์ ์ ์ฅํ ์๋ ์๋๋ฐ, ๋์ ์๋ key ์ถ์ถ ๊ธฐ๋ฅ ๊ฐ์๊ฑด ๋ชป์ด๋ค.
์ ๋นํ ์์ฑํ๋ฉด ์ด๋ฐ ์์ผ๋ก ๋ฆฌ์์ค๊ฐ ์์ฑ๋๋ค.
๋ณด์์์ ์ด์ ๋ก ๊ธฐ๋ณธ ํ์ด์ง์๋ ๊ทธ ๊ฐ์ด ๋
ธ์ถ๋์ง๋ ์๋๋ค.
์ ๊ธฐ์ "๋ณด์ ์ํธ ๊ฐ ๊ฒ์"์ ๋๋ฅด๋ฉด ๊ฐ์ด ๋ ธ์ถ๋๊ณ , ์์ ํ ์๋ ์๊ฒ ๋๋ค.

AWS ECS์ ํตํฉ
์ํฌ๋ฆฟ ๋งค๋์ ๋ ์ผ๋ถ ์๋น์ค๋ค๊ณผ์ ๊ฐ๋ ฅํ ํตํฉ์ ์ง์ํ๋ค. ํน์ ์ํฌ๋ฆฟ์ ๊ฐ์ ์๋์ผ๋ก ์ฃผ์ ํ๊ฑฐ๋ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ฐ, ๊ทธ ๊ธฐ๋ฅ์ด ์ง์๋๋ ๋ํ์ ์ธ ์๋น์ค๊ฐ ECS๋ค.
ECS ์์ ์ ์์ ์ปจํ ์ด๋ ์คํ-ํ๊ฒฝ๋ณ์์ ๊ฐ์ "ValueFrom"์ผ๋ก ์ค์ ํด์ ์ํฌ๋ฆฟ ์ ๋ณด๋ฅผ ๋ฃ์ผ๋ฉด, ECS๊ฐ ํ์คํฌ๋ฅผ ์์ํ ๋๋ง๋ค ์๋์ผ๋ก ์ํฌ๋ฆฟ ๊ฐ์ ๋์ ์ผ๋ก ์ฃผ์ ํด์ค๋ค.
"์ํฌ๋ฆฟ๋งค๋์ ARN:ํค์ด๋ฆ::"์ ํํ๋ก ๋ฃ์ผ๋ฉด ์ํฌ๋ฆฟ์ ํน์ key ๊ฐ๋ง ๋ฃ๊ณ , "์ํฌ๋ฆฟ๋งค๋์ ARN"๋ฅผ ๊ทธ๋ฅ ๋ฃ์ผ๋ฉด ํด๋น ์ํฌ๋ฆฟ์ ์ ์ฒด ๊ฐ(JSON ๊ฐ)์ด ๋ค์ด๊ฐ๋ค.
๊ทผ๋ฐ ์ฌ๊ธฐ์๋ ํ๊ณ๊ฐ ์๋ค.
์ํฌ๋ฆฟ์ ์ถ๊ฐํ๋ฉด, ๊ทธ๋๋ง๋ค key ๊ฐ์ ํ๋ํ๋ ๋งคํํด์ค์ผ ํด์ ๋งค์ฐ ๋ฒ๊ฑฐ๋กญ๋ค๋ ๊ฒ์ด๋ค. ํน์ ์ํฌ๋ฆฟ์ ๋ชจ๋ key๋ฅผ ์๋์ผ๋ก loadํ๋ค๊ฑฐ๋ ํ๋ ๊ธฐ๋ฅ์ด ์๋ค.
AWS ํ์์๋ ์ด ๊ธฐ๋ฅ์ ๊ณ ๋ คํ๊ณ ๋ ์์ง๋ง, ์ฐ์ ์์๋ ๋ฎ์๊ฑฐ๊ฐ๋ค. ์ด์๋ 5๋
์งธ ๋ฐฉ์น๋๊ณ ์๋ค.
์ ์ผํ ๋์์ ๊ทธ๋ฅ ์ํฌ๋ฆฟ์ ์ ์ฒด JSON ๊ฐ์ ํต์งธ๋ก ๋ก๋ํ ๋ค์์ ํ๋ก๊ทธ๋จ์์ ํ์ฑํด์ ์ฐ๋ ๊ฒ์ด๋ค.
๊ธฐํ ํ๊ฒฝ
ECS์ฒ๋ผ ์ง์ ํตํฉ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋๊ฒ ์๋๋ผ๋ฉด, ํ๋ก๊ทธ๋จ ๋จ์์ AWS SDK๋ฅผ ์ฌ์ฉํด์ ์ํฌ๋ฆฟ ๊ฐ์ ์ง์ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ด ๋๋ค.
์์ธ๋ก AWS๋ ์ํฌ๋ฆฟ์ ๊ธฐ๋ฅ ํตํฉ ์์ค์ด ์ ์กฐํ๋ค.
AWS Lambda, Batch ๊ฐ์ ๊ธฐ๋ฅ๋ค๋ ECS๋งํผ์ ํตํฉ์ ์ง์ํ์ง ์๋๋ค.
์ฐธ์กฐ
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html
https://stackoverflow.com/questions/57191835/aws-ecs-how-to-retrieve-specific-key-from-secret-manager
https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_limits.html
https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html?utm_source=openai