โ† CI/CD Pipeline Operations

ISMS-P 2.8.4 ์‹œํ—˜ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ High Risk

์‹œํ—˜ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์ด ์ ์ ˆํžˆ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š”๊ฐ€?

ISMS-P 2.8.4๋Š” ์‹œ์Šคํ…œ ์‹œํ—˜ ๊ณผ์ •์—์„œ ์šด์˜ ๋ฐ์ดํ„ฐ์˜ ์œ ์ถœ์„ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. AWS DMS๋กœ ์šด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋งˆ์Šคํ‚นํ•˜์—ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๋ณต์ œํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์ˆ˜๋ช… ๊ด€๋ฆฌ๋กœ ์‹œํ—˜ ์™„๋ฃŒ ํ›„ ์ž๋™ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‹

ISMS-P ์ธ์ฆ ๊ธฐ์ค€

ISMS-P 2.8.4 ์‹œํ—˜ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ

2.8.4

์‹œํ—˜ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ

์ธ์ฆ ๊ธฐ์ค€ ์ •์˜

"์‹œ์Šคํ…œ ์‹œํ—˜ ๊ณผ์ •์—์„œ ์šด์˜๋ฐ์ดํ„ฐ์˜ ์œ ์ถœ์„ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์‹œํ—˜ ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ๊ณผ ์ด์šฉ ๋ฐ ๊ด€๋ฆฌ, ํŒŒ๊ธฐ, ๊ธฐ์ˆ ์  ๋ณดํ˜ธ์กฐ์น˜์— ๊ด€ํ•œ ์ ˆ์ฐจ๋ฅผ ์ˆ˜๋ฆฝยท์ดํ–‰ํ•˜์—ฌ์•ผ ํ•œ๋‹ค."

๐Ÿ“Œ ๋ฐ์ดํ„ฐ ๋งˆ์Šคํ‚น ๊ธฐ์ˆ 

  • AWS DMS ๋ณ€ํ™˜ ๊ทœ์น™
  • RDS Dynamic Data Masking
  • Amazon Macie PII ํƒ์ง€
  • Data TTL ์ˆ˜๋ช… ๊ด€๋ฆฌ
  • CloudTrail ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๋กœ๊น…

โš ๏ธ ๋ฏธ์ค€์ˆ˜ ์‹œ ์‹ฌ์‚ฌ ์˜ํ–ฅ

  • ๊ฒฐํ•จ: ์šด์˜ ๋ฐ์ดํ„ฐ ์ง์ ‘ ๋ณต์‚ฌ ์‚ฌ์šฉ
  • ๊ฒฐํ•จ: ๋งˆ์Šคํ‚น/์ต๋ช…ํ™” ๋ฏธ์ ์šฉ
  • ๊ฒฐํ•จ: ์‹œํ—˜ ํ›„ ๋ฐ์ดํ„ฐ ํŒŒ๊ธฐ ๋ฏธ์ˆ˜ํ–‰
  • ๊ถŒ๊ณ : ์šด์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ์Šน์ธ ์ ˆ์ฐจ ๋ถ€์žฌ
๐Ÿ“„ KISA ISMS-P ์ธ์ฆ๊ธฐ์ค€ ์•ˆ๋‚ด์„œ โ†— โ˜๏ธ AWS K-ISMS ๊ทœ์ • ์ค€์ˆ˜ โ†—
๐Ÿ“ฐ

์‹ค์ œ ๋ณด์•ˆ ์‚ฌ๊ณ  ์‚ฌ๋ก€

์‹œํ—˜ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ๋ฏธํก์œผ๋กœ ๋ฐœ์ƒํ•œ ์‹ค์ œ ์‚ฌ๊ณ 

2016.10

Uber 5,700๋งŒ ๋ช… ๊ฐœ์ธ์ •๋ณด ์œ ์ถœ

๊ฐœ๋ฐœ์ž๊ฐ€ GitHub์— AWS ์ž๊ฒฉ์ฆ๋ช… ๋…ธ์ถœ. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ์šด์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ถŒํ•œ ๋ถ€์—ฌ๋กœ ํ•ด์ปค๊ฐ€ S3์—์„œ ๊ณ ๊ฐ/๋“œ๋ผ์ด๋ฒ„ ๊ฐœ์ธ์ •๋ณด ํƒˆ์ทจ.

๐Ÿ’ก ๊ตํ›ˆ: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์šด์˜ ๋ฐ์ดํ„ฐ ๋ถ„๋ฆฌ, ๋งˆ์Šคํ‚น ํ•„์ˆ˜

2018.03

Cambridge Analytica 8,700๋งŒ ๋ช… ๋ฌด๋‹จ ์ˆ˜์ง‘

๊ฐœ๋ฐœ์ž API๋กœ ํ…Œ์ŠคํŠธ/๊ฐœ๋ฐœ ๋ชฉ์  ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘. ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ๋ชฉ์  ์ œํ•œ ๋ฐ ํŒŒ๊ธฐ ์ ˆ์ฐจ ๋ฏธํก์œผ๋กœ ์ •์น˜ ๊ด‘๊ณ ์— ์•…์šฉ.

๐Ÿ’ก ๊ตํ›ˆ: ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ๋ฒ”์œ„ ์ œํ•œ, ๋ชฉ์  ์™ธ ์‚ฌ์šฉ ํ†ต์ œ

โšก

ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ ์œ„ํ—˜

AWS์—์„œ ์‹œํ—˜ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์ด ์œ„๋ฐ˜๋˜๋Š” ์ƒํ™ฉ

๋งˆ์Šคํ‚น ์—†์ด ์ง์ ‘ ๋ณต์ œ (์œ„ํ—˜)

# Prod ์Šค๋ƒ…์ƒท ์ง์ ‘ ๋ณต์›
# ๊ณ ๊ฐ ์ด๋ฆ„: ํ™๊ธธ๋™
# ์ด๋ฉ”์ผ: hong@example.com
# ์ฃผ๋ฏผ๋ฒˆํ˜ธ: 900101-1234567
# ์ „ํ™”๋ฒˆํ˜ธ: 010-1234-5678

โ†’ ๊ฐœ์ธ์ •๋ณด ํ‰๋ฌธ ๋…ธ์ถœ!

์šด์˜ ์Šค๋ƒ…์ƒท์„ ์ง์ ‘ ๋ณต์› โ†’ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๊ฐœ์ธ์ •๋ณด ํ‰๋ฌธ ์ ‘๊ทผ

DMS ๋งˆ์Šคํ‚น ์ ์šฉ (๊ถŒ์žฅ)

# DMS ๋งˆ์Šคํ‚น ํ›„ ๋ณต์ œ
# ์ด๋ฆ„: USER_a1b2c3d4...
# ์ด๋ฉ”์ผ: ab***@masked.com
# ์ฃผ๋ฏผ๋ฒˆํ˜ธ: ******-*******
# ์ „ํ™”๋ฒˆํ˜ธ: 010-****-5678

โ†’ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋จ

DMS ๋ณ€ํ™˜ ๊ทœ์น™์œผ๋กœ ๋งˆ์Šคํ‚น ํ›„ ๋ณต์ œ โ†’ ๊ฐœ๋ฐœ์ž๋Š” ๋งˆ์Šคํ‚น ๋ฐ์ดํ„ฐ๋งŒ ์ ‘๊ทผ

๐Ÿšจ

๋ฐœ๊ฒฌ ์‚ฌ๋ก€: ์šด์˜ RDS ์Šค๋ƒ…์ƒท์„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ์ง์ ‘ ๋ณต์›

์šด์˜ DB ์Šค๋ƒ…์ƒท์„ ๋งˆ์Šคํ‚น ์—†์ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ์ง์ ‘ ๋ณต์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณ ๊ฐ ๊ฐœ์ธ์ •๋ณด์— ์ง์ ‘ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ƒํƒœ - ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์„ค์ •
# ๋ฌธ์ œ: ์šด์˜ ์Šค๋ƒ…์ƒท ์ง์ ‘ ๋ณต์›
aws rds restore-db-instance-from-db-snapshot \
  --db-instance-identifier dev-db \
  --db-snapshot-identifier prod-snapshot

# ๊ฒฐ๊ณผ: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ
# - ๊ณ ๊ฐ ์ด๋ฆ„: ํ™๊ธธ๋™
# - ์ด๋ฉ”์ผ: hong@example.com
# - ์ฃผ๋ฏผ๋ฒˆํ˜ธ: 900101-1234567
# - ์ „ํ™”๋ฒˆํ˜ธ: 010-1234-5678
# -> ๊ฐœ์ธ์ •๋ณด ํ‰๋ฌธ ๋…ธ์ถœ!

ISMS-P 2.8.4 ์œ„๋ฐ˜ ์‚ฌํ•ญ

โ—

์šด์˜ ๋ฐ์ดํ„ฐ ์ง์ ‘ ๋ณต์‚ฌ ์‚ฌ์šฉ

โ—

๋งˆ์Šคํ‚น/์ต๋ช…ํ™” ๋ฏธ์ ์šฉ

โ—

๋ฐ์ดํ„ฐ ํŒŒ๊ธฐ ์ ˆ์ฐจ ๋ถ€์žฌ

โ—

๊ฐœ์ธ์ •๋ณด ์œ ์ถœ ์œ„ํ—˜ ์กด์žฌ

๐Ÿ”

์‚ฌ์ „ ํƒ์ง€ ๋ฐฉ์•ˆ

IaC ์ฝ”๋“œ ๋ถ„์„ ๊ธฐ๋ฐ˜ ๋ฐฐํฌ ์ „ ์ ๊ฒ€

์‹œํ—˜ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ์œ„๋ฐ˜ ํƒ์ง€ ๋กœ์ง

ํƒ์ง€ ๋Œ€์ƒ ํŒ๋‹จ ์กฐ๊ฑด ๊ฒฐ๊ณผ
๐Ÿ’พ RDS Snapshot
Prod -> Dev ์ง์ ‘ ๋ณต์› High - ์šด์˜ ๋ฐ์ดํ„ฐ ๋…ธ์ถœ
๐Ÿ”„ DMS Task
๋งˆ์Šคํ‚น ๋ณ€ํ™˜ ๊ทœ์น™ ์—†์Œ High - ํ‰๋ฌธ ๋ณต์ œ
๐Ÿ”‘ IAM Policy
๊ฐœ๋ฐœ์ž์—๊ฒŒ Prod RDS ์ ‘๊ทผ ํ—ˆ์šฉ High - ๊ถŒํ•œ ๊ณผ๋‹ค
โฐ ๋ฐ์ดํ„ฐ ์ˆ˜๋ช…
TTL/๋งŒ๋ฃŒ ์„ค์ • ์—†์Œ Medium - ์˜๊ตฌ ๋ณด๊ด€ ์œ„ํ—˜
๐Ÿ””

์‚ฌํ›„ ๋Œ€์‘ ๋ฐฉ์•ˆ

๋Ÿฐํƒ€์ž„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ PII ํƒ์ง€

์‹œํ—˜ ๋ฐ์ดํ„ฐ ์œ„๋ฐ˜ ํƒ์ง€ ๋กœ์ง

ํƒ์ง€ ๋Œ€์ƒ ํŒ๋‹จ ์กฐ๊ฑด ๊ฒฐ๊ณผ
๐Ÿ“‹ CloudTrail ์Šค๋ƒ…์ƒท ๋ณต์›
Prod ์Šค๋ƒ…์ƒท Dev ๋ณต์› ํƒ์ง€ Critical - ์ฆ‰์‹œ ์•Œ๋ฆผ Auto
๐Ÿ” Macie PII ํƒ์ง€
๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๊ฐœ์ธ์ •๋ณด ๋ฐœ๊ฒฌ High - ๋ณด์•ˆํŒ€ ์•Œ๋ฆผ Auto
โš™๏ธ Config ์ •์ฑ… ์œ„๋ฐ˜
์Šค๋ƒ…์ƒท ๊ณต์œ  ๊ทœ์น™ ์œ„๋ฐ˜ ํƒ์ง€ High - Slack ์•Œ๋ฆผ Auto

์ž๋™ ๋Œ€์‘ ์กฐ์น˜

EventBridge ์šด์˜ ๋ฐ์ดํ„ฐ ๋ณต์ œ ์•Œ๋ฆผ Lambda ๋งŒ๋ฃŒ ๋ฐ์ดํ„ฐ ์ž๋™ ์‚ญ์ œ (30์ผ) Macie ๊ฐœ๋ฐœ ํ™˜๊ฒฝ PII ์ฃผ๊ธฐ์  ์Šค์บ”
โœ“

์กฐ์น˜ ๊ฐ€์ด๋“œ

AWS DMS ๋ฐ์ดํ„ฐ ๋งˆ์Šคํ‚น ํŒŒ์ดํ”„๋ผ์ธ

๊ถŒ์žฅ ์„ค์ • (DMS ๋งˆ์Šคํ‚น ๋ณ€ํ™˜ ๊ทœ์น™)
dms-masking.tf
# AWS DMS ๋ฐ์ดํ„ฐ ๋งˆ์Šคํ‚น

resource "aws_dms_replication_task" "masking_task" {
  replication_task_id = "prod-to-dev-masking"
  migration_type      = "full-load"

  # ๋งˆ์Šคํ‚น ๋ณ€ํ™˜ ๊ทœ์น™
  table_mappings = jsonencode({
    rules = [
      # ์ด๋ฆ„ ๋งˆ์Šคํ‚น (ํ•ด์‹œ)
      {
        rule-type   = "transformation"
        rule-name   = "mask-name"
        object-locator = { table-name = "customers", column-name = "name" }
        value = "CONCAT('USER_', MD5(name))"
      },
      # ์ด๋ฉ”์ผ ๋งˆ์Šคํ‚น
      {
        rule-type   = "transformation"
        rule-name   = "mask-email"
        object-locator = { table-name = "customers", column-name = "email" }
        value = "CONCAT(SUBSTRING(MD5(email),1,8),'@masked.com')"
      },
      # ์ „ํ™”๋ฒˆํ˜ธ ๋ถ€๋ถ„ ๋งˆ์Šคํ‚น
      {
        rule-type   = "transformation"
        rule-name   = "mask-phone"
        object-locator = { table-name = "customers", column-name = "phone" }
        value = "CONCAT('010-****-', SUBSTRING(phone,-4))"
      },
      # ์ฃผ๋ฏผ๋ฒˆํ˜ธ ์™„์ „ ๋งˆ์Šคํ‚น
      {
        rule-type   = "transformation"
        rule-name   = "mask-ssn"
        object-locator = { table-name = "customers", column-name = "ssn" }
        value = "'******-*******'"
      }
    ]
  })
}

๐Ÿ’ก ํ•ต์‹ฌ: AWS DMS ๋ณ€ํ™˜ ๊ทœ์น™์œผ๋กœ ์šด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋งˆ์Šคํ‚นํ•˜์—ฌ ๋ณต์ œํ•˜๊ณ , Data TTL๋กœ ์‹œํ—˜ ์™„๋ฃŒ ํ›„ ์ž๋™ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. Amazon Macie๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ PII ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

AWS DMS RDS DDM Amazon Macie EventBridge Data TTL

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ

โ˜๏ธ AWS DMS ๋ณ€ํ™˜ ๊ทœ์น™ ๊ฐ€์ด๋“œ โ†— ๐Ÿ” Amazon Macie ๊ฐ€์ด๋“œ โ†— ๐Ÿ”’ RDS ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๊ฐ€์ด๋“œ โ†—
๐Ÿ“Š

๋ฆฌํฌํŠธ ๋ฐฉ์•ˆ

ISMS-P ์‹ฌ์‚ฌ ์ฆ์  ๋ฐ ์ •๊ธฐ ๋ณด๊ณ 

๐Ÿ“‹ ๋งˆ์Šคํ‚น ๊ทœ์น™ ๋ฌธ์„œ

  • DMS ๋งˆ์Šคํ‚น ๋ณ€ํ™˜ ๊ทœ์น™
  • ์ปฌ๋Ÿผ๋ณ„ ๋งˆ์Šคํ‚น ๋ฐฉ์‹ ์ •์˜
  • ๊ฐœ์ธ์ •๋ณด ์‹๋ณ„ ํ•ญ๋ชฉ
  • ๋งˆ์Šคํ‚น ์ ์šฉ ๋ฒ”์œ„

๐Ÿ“… ๋งˆ์Šคํ‚น ์ ์šฉ ์ฆ์ 

  • ๋งˆ์Šคํ‚น ์ „/ํ›„ ๋ฐ์ดํ„ฐ ๋น„๊ต
  • DMS ํƒœ์Šคํฌ ์‹คํ–‰ ๋กœ๊ทธ
  • Macie PII ์Šค์บ” ๊ฒฐ๊ณผ
  • ์›”๊ฐ„ ๋งˆ์Šคํ‚น ํ˜„ํ™ฉ ๋ฆฌํฌํŠธ

๐Ÿ“ค ๋ฐ์ดํ„ฐ ํŒŒ๊ธฐ ์ฆ์ 

  • ์‹œํ—˜ ์™„๋ฃŒ ํ›„ ์‚ญ์ œ ๋กœ๊ทธ
  • TTL ๋งŒ๋ฃŒ ์ž๋™ ์‚ญ์ œ ์ด๋ ฅ
  • ๋ฐ์ดํ„ฐ ์ˆ˜๋ช… ๊ด€๋ฆฌ ํ˜„ํ™ฉ
  • ํŒŒ๊ธฐ ํ™•์ธ ์Šคํฌ๋ฆฐ์ƒท
โšก

BSG ์ฐจ๋ณ„์ 

๊ธฐ์กด ๋„๊ตฌ๊ฐ€ ๋†“์น˜๋Š” ์ ๊ฒ€ ์˜์—ญ

๊ธฐ์กด ๋„๊ตฌ ๋ฐฉ์‹

์ˆ˜๋™ ๊ฒ€ํ†  ๋ฐฉ์‹

  • ๋ฌธ์„œ ๊ธฐ๋ฐ˜ ์ ˆ์ฐจ ํ™•์ธ
  • ์‹ค์ œ ๋งˆ์Šคํ‚น ์ ์šฉ ๊ฒ€์ฆ ๋ถˆ๊ฐ€
  • ๋ฐ์ดํ„ฐ ํŒŒ๊ธฐ ์ดํ–‰ ํ™•์ธ ๋ถˆ๊ฐ€
  • ISMS-P ๋งคํ•‘ ๋ถˆ๊ฐ€

ํ•œ๊ณ„: ๋ฌธ์„œ์ƒ ์ ˆ์ฐจ๋งŒ์œผ๋กœ๋Š” ์‹ค์ œ ๋งˆ์Šคํ‚น ์ ์šฉ ๊ฒ€์ฆ ๋ถˆ๊ฐ€

BSG ์ ‘๊ทผ ๋ฐฉ์‹

IaC + CloudTrail + Macie ํ†ตํ•ฉ ๋ถ„์„

  • DMS ๋งˆ์Šคํ‚น ๊ทœ์น™ ์ž๋™ ๊ฒ€์ฆ
  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ PII ํƒ์ง€ ๋ฐ ์•Œ๋ฆผ
  • ๋ฐ์ดํ„ฐ ์ˆ˜๋ช… ๊ด€๋ฆฌ ์ž๋™ํ™”
  • ๋งˆ์Šคํ‚น ์ž๋™ ๊ฒ€์ฆ + ํŒŒ๊ธฐ ๊ด€๋ฆฌ + ์‹ฌ์‚ฌ ์ฆ์  ์ž๋™ํ™”

์ฐจ๋ณ„์ : ์ธ์ฆ ๊ธฐ์ค€ ๊ด€์ ์—์„œ ํƒ์ง€ โ†’ ์กฐ์น˜ โ†’ ์ฆ์  ์ „ ๊ณผ์ • ์ž๋™ํ™”

โ† CI/CD Pipeline Operations๋กœ ๋Œ์•„๊ฐ€๊ธฐ