โ† Data Protection & Disaster Recovery

ISMS-P 2.7.2 ์•”ํ˜ธํ‚ค ๊ด€๋ฆฌ High Risk

์•”ํ˜ธํ‚ค ๊ด€๋ฆฌ๊ฐ€ ์ฒด๊ณ„์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋Š”๊ฐ€?

ISMS-P 2.7.2๋Š” ์•”ํ˜ธํ‚ค์˜ ์•ˆ์ „ํ•œ ์ƒ์„ฑยท์ด์šฉยท๋ณด๊ด€ยท๋ฐฐํฌยทํŒŒ๊ธฐ๋ฅผ ์œ„ํ•œ ๊ด€๋ฆฌ ์ ˆ์ฐจ๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” KMS ํ‚ค ์ˆœํ™˜ ์ •์ฑ…, ์ ‘๊ทผ ๊ถŒํ•œ ์ตœ์†Œํ™”, ์‚ฌ์šฉ ์ด๋ ฅ ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ์„ ํ†ตํ•ด ์•”ํ˜ธํ‚ค ์ „ ์ˆ˜๋ช…์ฃผ๊ธฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‹

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

ISMS-P 2.7.2 ์•”ํ˜ธํ‚ค ๊ด€๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ

2.7.2

์•”ํ˜ธํ‚ค ๊ด€๋ฆฌ

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

"์•”ํ˜ธํ‚ค์˜ ์•ˆ์ „ํ•œ ์ƒ์„ฑยท์ด์šฉยท๋ณด๊ด€ยท๋ฐฐํฌยทํŒŒ๊ธฐ๋ฅผ ์œ„ํ•œ ๊ด€๋ฆฌ ์ ˆ์ฐจ๋ฅผ ์ˆ˜๋ฆฝยท์ดํ–‰ํ•˜๊ณ , ํ•„์š”์‹œ ๋ณต๊ตฌ๋ฐฉ์•ˆ์„ ๋งˆ๋ จํ•˜์—ฌ์•ผ ํ•œ๋‹ค."

๐Ÿ“Œ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ์ ์šฉ ํฌ์ธํŠธ

  • KMS ํ‚ค ์ž๋™ ์ˆœํ™˜ ์ •์ฑ… ์„ค์ •
  • KMS ํ‚ค ์ ‘๊ทผ ๊ถŒํ•œ ์ตœ์†Œํ™” (IAM + Key Policy)
  • CloudTrail ๊ธฐ๋ฐ˜ ํ‚ค ์‚ฌ์šฉ ์ด๋ ฅ ๋ชจ๋‹ˆํ„ฐ๋ง
  • ํ‚ค ๋ณต๊ตฌ๋ฅผ ์œ„ํ•œ ๋ฐฑ์—… ๋ฐ ๋‹ค์ค‘ ๋ฆฌ์ „ ๋ณต์ œ

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

  • ๊ฒฐํ•จ: ์•”ํ˜ธํ‚ค ๊ด€๋ฆฌ ์ ˆ์ฐจ ๋ถ€์žฌ (์ƒ์„ฑ/๋ณด๊ด€/ํŒŒ๊ธฐ)
  • ๊ฒฐํ•จ: ์•”ํ˜ธํ‚ค ์ ‘๊ทผ๊ถŒํ•œ ๊ด€๋ฆฌ ๋ฏธํก
  • ๊ฒฐํ•จ: ์•”ํ˜ธํ‚ค ๋ณ€๊ฒฝ/์ˆœํ™˜ ์ฃผ๊ธฐ ๋ฏธ์„ค์ •
  • ๊ถŒ๊ณ : ์•”ํ˜ธํ‚ค ์‚ฌ์šฉ ์ด๋ ฅ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ถ€์žฌ
๐Ÿ“„ KISA ISMS-P ์ธ์ฆ๊ธฐ์ค€ ์•ˆ๋‚ด์„œ โ†— โ˜๏ธ AWS K-ISMS ๊ทœ์ • ์ค€์ˆ˜ โ†—
๐Ÿ“ฐ

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

์•”ํ˜ธํ‚ค ๊ด€๋ฆฌ ๋ฏธํก์œผ๋กœ ๋ฐœ์ƒํ•œ ์‹ค์ œ ์‚ฌ๊ณ 

2023.01

CircleCI ํฌ๋ฆฌ๋ด์…œ ๋Œ€๋Ÿ‰ ์œ ์ถœ

์—”์ง€๋‹ˆ์–ด ๋…ธํŠธ๋ถ ์•…์„ฑ์ฝ”๋“œ ๊ฐ์—ผ์œผ๋กœ ์„ธ์…˜ ์ฟ ํ‚ค ํƒˆ์ทจ. ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ ์ ‘๊ทผํ•˜์—ฌ ๊ณ ๊ฐ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜, ํ† ํฐ, ์•”ํ˜ธํ‚ค ์œ ์ถœ. 100๋งŒ+ ๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ, Airbnb/Google/Meta/Okta ๋“ฑ ์˜ํ–ฅ.

๐Ÿ’ก ๊ตํ›ˆ: ์•”ํ˜ธํ‚ค๋Š” ์•ˆ์ „ํ•œ ์ €์žฅ์†Œ(KMS, Vault)์— ๋ณด๊ด€, ์ •๊ธฐ์  ์ˆœํ™˜ ํ•„์ˆ˜

์ถœ์ฒ˜: CircleCI Incident Report โ†—
2022.02

Pegasus Airlines ์†Œ์Šค์ฝ”๋“œ ์œ ์ถœ

AWS S3 ๋ฒ„ํ‚ท ์„ค์ • ์˜ค๋ฅ˜๋กœ 6.5TB, 2,300๋งŒ ๊ฐœ ํŒŒ์ผ ๋…ธ์ถœ. ๋น„๋ฐ€ ํ‚ค์™€ ํ‰๋ฌธ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ํฌํ•จ๋œ EFB ์†Œ์Šค์ฝ”๋“œ ์œ ์ถœ.

๐Ÿ’ก ๊ตํ›ˆ: ์•”ํ˜ธํ‚ค๋Š” ์ฝ”๋“œ/์„ค์ • ํŒŒ์ผ์— ํ•˜๋“œ์ฝ”๋”ฉ ๊ธˆ์ง€, ๋ณ„๋„ ํ‚ค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ์‚ฌ์šฉ

์ถœ์ฒ˜: BankInfoSecurity โ†—
โšก

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

AWS KMS์—์„œ ์•”ํ˜ธํ‚ค ๊ด€๋ฆฌ๊ฐ€ ์œ„๋ฐ˜๋˜๋Š” ์ƒํ™ฉ

์ˆœํ™˜ ๋ฏธ์„ค์ • (์œ„ํ—˜)

Key

๐Ÿ”‘

โ†’

์ˆ˜๋™ ๊ด€๋ฆฌ

โš ๏ธ

โ†‘ ํ‚ค ๊ต์ฒด ์—†์Œ, ์†์ƒ ์œ„ํ—˜ ์ฆ๊ฐ€

ํ‚ค ์†์ƒ ์‹œ ์ „์ฒด ๋ฐ์ดํ„ฐ ์žฌ์•”ํ˜ธํ™” ํ•„์š” โ†’ ๊ทœ์ • ์ค€์ˆ˜ ๋ฏธ์ถฉ์กฑ

์ž๋™ ์ˆœํ™˜ ์„ค์ • (๊ถŒ์žฅ)

Key v1

๐Ÿ”‘

โ†’

Key v2

๐Ÿ”‘

โ†‘ 365์ผ๋งˆ๋‹ค ์ž๋™ ๊ต์ฒด

์ด์ „ ํ‚ค ์œ ์ง€๋˜์–ด ๊ธฐ์กด ๋ฐ์ดํ„ฐ ๋ณตํ˜ธํ™” ๊ฐ€๋Šฅ โ†’ ๊ทœ์ • ์ค€์ˆ˜ ์ถฉ์กฑ

๐Ÿšจ

๋ฐœ๊ฒฌ ์‚ฌ๋ก€: ํ”„๋กœ๋•์…˜ KMS ํ‚ค์— ์ž๋™ ์ˆœํ™˜ ๋ฏธ์„ค์ •

enable_key_rotation ์„ค์ •์ด ๋ˆ„๋ฝ๋˜์–ด ๊ธฐ๋ณธ๊ฐ’ false๋กœ ์ ์šฉ. ํ‚ค ์ˆœํ™˜ ์—†์ด ๋™์ผ ํ‚ค๊ฐ€ ๊ณ„์† ์‚ฌ์šฉ๋˜์–ด ์†์ƒ ์‹œ ์ „์ฒด ๋ฐ์ดํ„ฐ ์œ„ํ—˜์— ๋…ธ์ถœ.

ํ˜„์žฌ ์ƒํƒœ - ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์„ค์ •
resource "aws_kms_key" "production_key" {
  description             = "Production data encryption key"
  deletion_window_in_days = 30
  # enable_key_rotation ๋ฏธ์„ค์ • (๊ธฐ๋ณธ๊ฐ’ false)

  tags = {
    Environment = "production"
  }
}

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

โ—

์•”ํ˜ธํ‚ค ๋ณ€๊ฒฝ ์ฃผ๊ธฐ ๋ฏธ์„ค์ •

โ—

ํ‚ค ์ˆœํ™˜ ์ด๋ ฅ ๊ด€๋ฆฌ ๋ถˆ๊ฐ€

โ—

ํ‚ค ์†์ƒ ์‹œ ๋ณต๊ตฌ ๋ฐฉ์•ˆ ๋ถ€์žฌ

โ—

๊ทœ์ • ์ค€์ˆ˜ ์ฆ์  ํ™•๋ณด ๋ถˆ๊ฐ€

๐Ÿ”

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

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

KMS ํ‚ค ์ˆœํ™˜ ํƒ์ง€ ๋กœ์ง

ํŒ๋‹จ ์กฐ๊ฑด ์กฐ๊ฑด ๊ฐ’ ๊ฒฐ๊ณผ
๐Ÿ”‘ ํ‚ค ์œ ํ˜•
aws/s3 aws/ebs AWS ๊ด€๋ฆฌํ˜• ํ‚ค โœ“ ํ†ต๊ณผ (AWS ๋‚ด๋ถ€ ์ˆœํ™˜)
aws_kms_key ๊ณ ๊ฐ ๊ด€๋ฆฌํ˜• ํ‚ค (CMK) โ†’ ์ˆœํ™˜ ์ •์ฑ… ๊ฒ€์‚ฌ
๐Ÿ”„ ํ‚ค ์ˆœํ™˜
enable_key_rotation = false ๋˜๋Š” ๋ฏธ์„ค์ • High - ์ฐจ๋‹จ + ๊ฒฝ๊ณ 
enable_key_rotation = true โ†’ ํ‚ค ์ •์ฑ… ๊ฒ€์‚ฌ
๐Ÿ“œ ํ‚ค ์ •์ฑ…
Principal: * ๋˜๋Š” ๊ณผ๋„ํ•œ ๊ถŒํ•œ Medium - ๊ฒฝ๊ณ 
์ตœ์†Œ ๊ถŒํ•œ ์›์น™ ์ค€์ˆ˜ โœ“ ํ†ต๊ณผ
๐Ÿ””

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

๋Ÿฐํƒ€์ž„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ด์ƒํ–‰์œ„ ํƒ์ง€

KMS ํ‚ค ๋Ÿฐํƒ€์ž„ ์ด๋ฒคํŠธ ๋Œ€์‘ ๋กœ์ง

ํŒ๋‹จ ์กฐ๊ฑด ์กฐ๊ฑด ๊ฐ’ ๊ฒฐ๊ณผ
๐Ÿ“ฆ ๋ณ€๊ฒฝ ์œ ํ˜•
IaC ๋ฐฐํฌ (Terraform) ์ •์ƒ ๋ณ€๊ฒฝ โœ“ ๋ณ€๊ฒฝ ์ด๋ ฅ๋งŒ ์ €์žฅ
Drift ๋ฐœ์ƒ ์ฝ˜์†” ์ง์ ‘ ๋ณ€๊ฒฝ โ†’ ์ƒ์„ธ ๋ถ„์„
โš ๏ธ ๋ณ€๊ฒฝ ๋‚ด์šฉ

(Drift ๋ฐœ์ƒ ์‹œ)

ํ‚ค ์ˆœํ™˜ ๋น„ํ™œ์„ฑํ™” enable_key_rotation โ†’ false Critical - PagerDuty ํ˜ธ์ถœ
ํ‚ค ์ •์ฑ… ์™„ํ™” Principal ์ถ”๊ฐ€ High - Slack ์ฆ‰์‹œ ์•Œ๋ฆผ
ํ‚ค ์‚ญ์ œ ์˜ˆ์•ฝ ScheduleKeyDeletion ํ˜ธ์ถœ Critical - PagerDuty ํ˜ธ์ถœ

๋ชจ๋“  ์•Œ๋ฆผ์— ํฌํ•จ๋˜๋Š” ์ •๋ณด

KMS ํ‚ค ARN ๋ณ€๊ฒฝ ์ „/ํ›„ ์„ค์ • ๋ณ€๊ฒฝ ์ฃผ์ฒด (IAM) ํ‚ค ์ˆœํ™˜ ํ™œ์„ฑํ™” ๊ฐ€์ด๋“œ
โœ“

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

์ฆ‰์‹œ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๊ถŒ์žฅ ์„ค์ •

โŒ ๋ฌธ์ œ

enable_key_rotation ๋ฏธ์„ค์ • (๊ธฐ๋ณธ๊ฐ’ false)

โœ“ ์ ์šฉ

enable_key_rotation = true + ์ตœ์†Œ ๊ถŒํ•œ Key Policy

๊ถŒ์žฅ ์„ค์ • (๋ณต์‚ฌํ•˜์—ฌ ์ ์šฉ)
kms.tf
resource "aws_kms_key" "production_key" {
  description             = "Production data encryption key"
  deletion_window_in_days = 30
  enable_key_rotation     = true  # โœ“ ์—ฐ๊ฐ„ ์ž๋™ ์ˆœํ™˜ ํ™œ์„ฑํ™”

  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Sid    = "Enable IAM policies"
        Effect = "Allow"
        Principal = { AWS = "arn:aws:iam::ACCOUNT_ID:root" }
        Action   = "kms:*"
        Resource = "*"
      },
      {
        Sid    = "Allow key usage for encryption"
        Effect = "Allow"
        Principal = { AWS = "arn:aws:iam::ACCOUNT_ID:role/AppRole" }
        Action   = ["kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey*"]
        Resource = "*"
      }
    ]
  })

  tags = {
    Name        = "production-data-key"
    Environment = "production"
    ISMS-P      = "2.7.2"
  }
}

# ํ‚ค ๋ณ„์นญ ์„ค์ • (๊ด€๋ฆฌ ์šฉ์ด์„ฑ)
resource "aws_kms_alias" "production_key" {
  name          = "alias/production-data-key"
  target_key_id = aws_kms_key.production_key.key_id
}

๐Ÿ’ก ํ•ต์‹ฌ: enable_key_rotation = true ์„ค์ • ์‹œ AWS๊ฐ€ 365์ผ๋งˆ๋‹ค backing key๋ฅผ ์ž๋™ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ํ‚ค๋Š” ์œ ์ง€๋˜์–ด ๊ธฐ์กด ์•”ํ˜ธํ™” ๋ฐ์ดํ„ฐ ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ƒˆ ๋ฐ์ดํ„ฐ๋Š” ์ƒˆ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค. CloudTrail์— ์ˆœํ™˜ ์ด๋ ฅ์ด ์ž๋™ ๊ธฐ๋ก๋˜์–ด ISMS-P ๊ฐ์‚ฌ ์ฆ์ ์œผ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

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

๐Ÿ”„ AWS KMS ํ‚ค ์ˆœํ™˜ โ†— ๐Ÿ“˜ AWS KMS Best Practices โ†— ๐Ÿ”’ ISMS-P ์ธ์ฆ๊ธฐ์ค€ ์•ˆ๋‚ด์„œ โ†—
๐Ÿ“Š

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

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

๐Ÿ“‹ ์ง„๋‹จ ํ•ญ๋ชฉ

  • KMS ํ‚ค ์ด ๊ฐœ์ˆ˜ (CMK)
  • ์ž๋™ ์ˆœํ™˜ ๋ฏธ์„ค์ • ํ‚ค ์ˆ˜
  • ํ‚ค ์ˆœํ™˜ ์ด๋ ฅ (CloudTrail)
  • ํ‚ค ์ •์ฑ… ๋ณ€๊ฒฝ ๊ฑด์ˆ˜ (๊ธฐ๊ฐ„๋ณ„)
  • ๋ฏธ์กฐ์น˜ ํ•ญ๋ชฉ ์ˆ˜

๐Ÿ“… ๋ฆฌํฌํŠธ ์ฃผ๊ธฐ

์ผ๊ฐ„

ํ‚ค ์„ค์ • ๋ณ€๊ฒฝ ์•Œ๋ฆผ

์ฃผ๊ฐ„

ํ‚ค ๊ด€๋ฆฌ ํ˜„ํ™ฉ ์š”์•ฝ

์›”๊ฐ„

ISMS-P ์ฆ์  ๋ฆฌํฌํŠธ

๐Ÿ“ค ๋ฐœ์†ก ๋ฐ ์ €์žฅ

๋ฐœ์†ก ์ฑ„๋„

Email Slack

์ €์žฅ์†Œ

S3 (5๋…„ ๋ณด๊ด€)
โšก

BSG ์ฐจ๋ณ„์ 

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

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

๋‹จ์ˆœ ํ”Œ๋ž˜๊ทธ ๊ฒ€์‚ฌ

  • enable_key_rotation = true ์—ฌ๋ถ€๋งŒ ์ฒดํฌ
  • key.key_rotation_enabled == True ๋‹จ์ˆœ ๋น„๊ต
  • ์ •์  ๋ถ„์„ ๊ฒฐ๊ณผ๋งŒ ์ถœ๋ ฅ

ํ•œ๊ณ„: ํ‚ค ์ ‘๊ทผ ๊ถŒํ•œ ๊ฒ€์‚ฌ ์—†์Œ, ํ‚ค ์‚ฌ์šฉ ์ด๋ ฅ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฏธ์ ๊ฒ€

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

ํ‚ค ์ˆœํ™˜ + ์ ‘๊ทผ ๊ถŒํ•œ + ์‚ฌ์šฉ ์ด๋ ฅ ํ†ตํ•ฉ ์ ๊ฒ€

  • IaC ์ฝ”๋“œ ๋ถ„์„ ๊ธฐ๋ฐ˜ ํ‚ค ์ •์ฑ… ๊ฒ€์ฆ
  • ๋Ÿฐํƒ€์ž„ ํ‚ค ์„ค์ • ๋ณ€๊ฒฝ ๋ชจ๋‹ˆํ„ฐ๋ง + Drift ํƒ์ง€
  • ISMS-P 2.7.1(์•”ํ˜ธ์ •์ฑ…)๊ณผ ํ†ตํ•ฉ ๊ฒ€์ฆ

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

โ† Data Protection & Disaster Recovery๋กœ ๋Œ์•„๊ฐ€๊ธฐ