Rotation ๊ธฐ๋ฐ Secret ๊ด๋ฆฌ ๋ฐ Multi-tenant ๊ฒฉ๋ฆฌ ์ ๋ต์ ํตํ ๋ณด์ ์ํคํ ์ฒ ์ต์ ํ
Manage Sensitive Data In Application Code | ๐๏ธ Build A Secure Configuration Service
AI ์์ฝ
Context
์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋ ๋ด ๋ฏผ๊ฐ ์ ๋ณด ๋ ธ์ถ ์ํ๊ณผ ๋ฐ์ดํฐ ๋ถ๋ฅ ์ฒด๊ณ ๋ถ์ฌ๋ก ์ธํ ๋ณด์ ์ทจ์ฝ์ฑ ๋ฐ์. ํนํ Multi-tenant ํ๊ฒฝ์์ ํ ๋ํธ ๊ฐ ๋ฐ์ดํฐ ์ ์ถ์ ๋ฐฉ์งํ๊ธฐ ์ํ ์๊ฒฉํ ๋ ผ๋ฆฌ์ /๋ฌผ๋ฆฌ์ ๊ฒฉ๋ฆฌ ๊ตฌ์กฐ ํ์์ฑ ๋๋.
Technical Solution
- ์๋ Rotation ํ์ ์ฌ๋ถ์ ๋ฐ๋ผ Secrets Manager($0.40/secret)์ SSM Parameter Store(Free)๋ฅผ ๊ตฌ๋ถํ์ฌ ์ฑํํ๋ ๋น์ฉ-ํจ์จ์ ๊ด๋ฆฌ ์ฒด๊ณ ๊ตฌ์ถ
- PII ๋ฐ์ดํฐ ๋ณดํธ๋ฅผ ์ํด API ์๋ต ์ Field Masking ๋ฐ ๋ก๊ทธ ์ถ๋ ฅ ์ Sanitization ํ๋ก์ธ์ค๋ฅผ ์ ์ฉํ ๋ฐ์ดํฐ ์ ์ถ ์์ฒ ์ฐจ๋จ
- DynamoDB Partition Key Prefix์ IAM Condition Keys(dynamodb:LeadingKeys)๋ฅผ ๊ฒฐํฉํ์ฌ ์ ์ฑ ๊ธฐ๋ฐ์ ๋ ผ๋ฆฌ์ Tenant Isolation ๊ตฌํ
- Runtime Secret Fetching ๋ฐ TTL ๊ธฐ๋ฐ ์บ์ฑ ์ ๋ต์ ๋์ ํ์ฌ Deploy-time Resolve ๋ฐฉ์์ ์ ๋ฐ์ดํธ ์ง์ฐ ๋ฌธ์ ํด๊ฒฐ ๋ฐ API ํธ์ถ ๋น์ฉ ์ ๊ฐ
- ๋ฐ์ดํฐ ๋ฏผ๊ฐ๋(PII, PHI, Financial)์ ๋ฐ๋ผ Encryption at rest/transit ๋ฐ Tokenization์ ์ฐจ๋ฑ ์ ์ฉํ ๋ฐ์ดํฐ ๋ถ๋ฅ ์ฒด๊ณ ์๋ฆฝ
์ค์ฒ ํฌ์ธํธ
- DB Credentials ๋ฑ ์ฃผ๊ธฐ์ ๋ณ๊ฒฝ์ด ํ์ํ ๊ฐ์ Secrets Manager์ ์๋ Rotation ๊ธฐ๋ฅ์ ์ฐ์ ๊ฒํ ํ์ญ์์ค. - Application Config ๋ฐ Feature Flag์ ๋น์ฉ ํจ์จ์ ์ธ SSM Parameter Store์ SecureString ํ์ ์ ํ์ฉํ์ญ์์ค. - Multi-tenant ์ค๊ณ ์ JWT Claim์์ Tenant ID๋ฅผ ์ถ์ถํ๊ณ , ์ด๋ฅผ DynamoDB Partition Key Prefix์ IAM Policy์ ์ฐ๋ํ์ฌ ๊ฐ์ ๊ฒฉ๋ฆฌ๋ฅผ ๊ตฌํํ์ญ์์ค. - Secret ์กฐํ ๋น์ฉ ์ ๊ฐ์ ์ํด Cold Start ์ lru_cache ๋๋ TTL ๊ธฐ๋ฐ ์บ์ ๋ ์ด์ด๋ฅผ ๋ฐ๋์ ๊ตฌํํ์ญ์์ค.