๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Terraform์„ ํ™œ์šฉํ•œ AWS ๋ณด์•ˆ ์•„ํ‚คํ…์ฒ˜ ๋ฐ Amazon Q Developer๋ฅผ ํ™œ์šฉํ•œ ํ†ตํ•ฉ๋ชจ๋‹ˆํ„ฐ๋ง ์‹ค์Šต

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2025. 5. 24.

Key Result : AWS ๋ณด์•ˆ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ISMS ์ž์‚ฐ ์‹๋ณ„ ๋ฐ AWS ์ž๋™ํ™”  

ex) Open Source ๋ฐ Terraform ํ™œ์šฉํ•˜์—ฌ ์ž์‚ฐ์‹๋ณ„ ๋ฐ ISMS ๋Œ€์‘์— ๋”ฐ๋ฅธ ์ž๋™ํ™” ๊ตฌ์ถ•


 

์‹ค์Šต : Terraform์„ ํ™œ์šฉํ•œ AWS ๋ณด์•ˆ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  Amazon Q Developer ๋ฅผ ํ™œ์šฉํ•œ ISMS ์ž์‚ฐ ์‹๋ณ„ ๋ฐ ์ž์‚ฐ ์ƒํƒœ ํ†ตํ•ฉ๋ชจ๋‹ˆํ„ฐ๋ง ์ž๋™ํ™” ๊ตฌ์ถ•

 

 

[๊ตฌ์ƒ๋„]

 

[๊ตฌ์ƒ ์š”์•ฝ]

draw.io๋ฅผ ํ†ตํ•ด์„œ ๊ธฐ๋ณธ์ ์ธ AWS ์•„ํ‚คํ…์ณ๋ฅผ ๊ตฌ์„ฑํ–ˆ๋‹ค. ์ดํ›„ ISMS์— ์ž…๊ฐํ•˜์—ฌ AWS ์•„ํ‚คํ…์ณ๋ฅผ ๋ณด์™„ํ•˜๊ณ , ์ž์‚ฐ ์‹๋ณ„์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ๋žŒ๋‹ค๋ฅผ ํ™œ์šฉํ•œ ํ†ตํ•ฉ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ตฌ์ถ•(์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” EC2 Status์™€ ๋ฉ”ํƒ€ ์ •๋ณด๋“ฑ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํ˜•ํƒœ)ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์ตœ์ข…์ ์œผ๋กœ IaC๋„๊ตฌ์ธ  Terraform์„ ํ™œ์šฉํ•˜์—ฌ ์ž๋™ํ™”๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.

 

[๊ตฌ์ถ• ์ˆœ์„œ]

 

1.  ๋„คํŠธ์›Œํฌ: VPC, Subnet, IGW(์ธํ„ฐ๋„ท๊ฒŒ์ดํŠธ์›จ์ด)

 

2. VPC ์—”๋“œํฌ์ธํŠธ ์ƒ์„ฑ 

  • S3์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•จ
  • ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ํ†ต์‹ ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์  ์ธก๋ฉด์—์„œ ์ข‹์Œ

3. EC2์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ Session Manager ์„ค์ •

  • PEMํ‚ค๋ฅผ ํ™œ์šฉ์— ๋น„ํ•ด ํ‚ค ๋ณด๊ด€ ๋“ฑ์—์„œ ์ž์œ ๋กญ๋‹ค.

4. Config ์Šค๋ƒ…์ƒท & ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์œ„ํ•œ S3 ๋ฒ„ํ‚ท ์ƒ์„ฑ

 

5.  Config ํ™œ์„ฑํ™”

  • Status 

6. SNS ํ† ํ”ฝ์ƒ์„ฑ 

  • EC2 ์ƒํƒœ ๋ณ€๊ฒฝ ์•Œ๋ฆผ์„ ์œ„ํ•œ ํ† ํ”ฝ์„ ์ƒ์„ฑ
  • ex) pending, running, stopping, stopped, shutting-down, terminated
  •  

7. EventBridge ํ™œ์„ฑํ™” ๋ฐ Rule ์ƒ์„ฑ 

  • EC2 ์ƒํƒœ ๋ณ€๊ฒฝ ๊ด€๋ จ ์ด๋ฒคํŠธ ํŒจํ„ด ์ƒ์„ฑ

 

8. EventBridge Target(๋Œ€์ƒ)์ธ SNS์— ์ž…๋ ฅ ๋ณ€ํ™˜๊ธฐ ํ™œ์šฉ ๋ฐ SNS ํ† ํ”ฝ ์•ก์„ธ์Šค ์ •์ฑ… ์ˆ˜์ •

  • SNS -> Amazon Q -> Slack ์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด Amazon Q ํ˜•์‹์„ ๋”ฐ๋ผ์•ผ ํ•˜๋ฉฐ, ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ž…๋ ฅ ๋ณ€ํ™˜๊ธฐ๋ฅผ ํ™œ์šฉ

 

  • SNS ํ† ํ”ฝ์—์„œ ํ•ด๋‹น EventBridge ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ํ—ˆ์šฉํ•˜๊ฒ ๋‹ค๋Š” ์•ก์„ธ์Šค ์ •์ฑ… ์ถ”๊ฐ€

 

9. AWS Amazon Q Developer(ChatBot) ์ƒ์„ฑ ๋ฐ ์—ฐ๊ฒฐํ•  Slack ์ฑ„๋„ ๊ตฌ์„ฑ 

  • ๋ณด์•ˆ ์•Œ๋ฆผ์ธ EC2 ์‹คํ–‰, ์ค‘์ง€, ์ƒ์„ฑ, ์‚ญ์ œ ๋“ฑ์˜ SNS ๊ตฌ๋…
  • ์ž์‚ฐ ๋ฆฌํฌํŠธ์ธ EC2 ๊ฐฏ์ˆ˜, ์šฉ๋Ÿ‰ ๋“ฑ์˜ SNS ๊ตฌ๋…

 

10. EC2 ์ž์‚ฐ ์‹๋ณ„ ๋ฆฌํฌํŠธ์šฉ ๋ฆฌ์†Œ์Šค ์ถ”๊ฐ€

  1. ์ž์‹  ๋ฆฌํฌํŠธ์šฉ SNS ํ† ํ”ฝ ์ƒ์„ฑ
    • ์ „์ฒด EC2 ๊ฐฏ์ˆ˜, ์‚ฌ์šฉ ์šฉ๋Ÿ‰ ๋“ฑ ์‹๋ณ„
  2. Lambda ์—ญํ•  ๋ฐ ์ •์ฑ… ์„ค์ •
    • ์—ญํ•  ์ƒ์„ฑ ํ›„, ์ •์ฑ… ์„ค์ •
      1. CloudWatch Logs ์“ฐ๊ธฐ ๊ถŒํ•œ ๋ถ€์—ฌ
        • lambda ํ•จ์ˆ˜ ์ฝ”๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ๋””๋ฒ„๊น… ํ•˜๊ธฐ ์œ„ํ•จ 
        • {
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:logs:*:*:*"
          }
      2. EC2 ์ธ์Šคํ„ด์Šค ์ •๋ณด์™€ EBS ๋ณผ๋ฅจ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ
        • {
            "Action": [
              "ec2:DescribeInstances",
              "ec2:DescribeVolumes"
            ],
            "Effect": "Allow",
            "Resource": "*"
          }
      3. Lambda๊ฐ€ ์ตœ์ข…์ ์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ SNS ํ† ํ”ฝ์— ๋Œ€ํ•ด์„œ Publish ๊ถŒํ•œ ๋ถ€์—ฌ
        • {
            "Action": "sns:Publish",
            "Effect": "Allow",
            "Resource": "arn:aws:sns:ap-northeast-2:194722431119:asset-report-dev"
          }
     
  3. Lambda ์ฝ”๋“œ ์ƒ์„ฑ๊ณผ ๋ณ€ํ˜•
    1. ํŒŒ์ด์ฌ์œผ๋กœ EC2 ์ •๋ณด์™€ EBS ๋ณผ๋ฅจ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€ ์ž์› ์‹๋ณ„ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒ์„ฑ
      • *ํŠน์ด์‚ฌํ•ญ : ChatBot ์šฉ์œผ๋กœ JSON ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•ด์•ผ ํ•จ
    2. ์ฝ”๋“œ ๋ฒˆ๋“ค๋กœ ๋ณ€ํ˜•
      • asset_report.py -> asset_report.zip
  4. Lambda ํ•จ์ˆ˜ ์ƒ์„ฑ
    • function_name : asset-identification-report-dev
    • role : ์œ„์—์„œ ๋งŒ๋“  ์—ญํ•  ๋ถ€์—ฌ
    • handler : asset_report.py ๋‚ด๋ถ€ ํ•จ์ˆ˜ lambda_handler
    • runtime : python3.9
    • filname(lambda์— ์˜ฌ๋ฆด ์ฝ”๋“œ ๋ฒˆ๋“ค) : asset_report.zip
    • source_code_hash : Terraform์ด zip ํŒŒ์ผ์˜ ๋‚ด์šฉ์— ๋ณ€๊ฒฝ์ด ์ƒ๊ฒผ๋Š”์ง€ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ ๊ฐ’
      • Terraform์€ ์ด ํ•ด์‹œ ๊ฐ€ ์ด์ „ ์ƒํƒœ์™€ ๋‹ฌ๋ผ์กŒ์„ ๋•Œ๋งŒ Lambda ์ฝ”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋„๋ก ๋™์ž‘ํ•œ๋‹ค.
     
  5. Lambda ์Šค์ผ€์ฅด๋ง ์„ค์ •
    • 10๋ถ„ ๋งˆ๋‹ค Lambda๋ฅผ ํŠธ๋ฆฌ๊ฑฐ ํ•  ์ˆ˜ ์žˆ๋„๋ก EventBridge ๊ทœ์น™ ์„ค์ •

 

 

 

[์ตœ์ข…๊ฒฐ๊ณผ]

 

1. EC2 ์ƒํƒœ ๋ณ€ํ™”์— ๋”ฐ๋ฅธ ์•Œ๋ฆผ

 

 

2. EC2 ์ธ์Šคํ„ด์Šค ์ž์‚ฐ ์‹๋ณ„ ๋ฆฌํฌํŠธ

 

 

[Terraform ์ฝ”๋“œ]

main.tf
0.01MB

 

 

[Lamda ์ฝ”๋“œ]

asset_report.py
0.00MB

 

[๊ฒฐ๋ก ]

์ด๋ฒˆ ์‹ค์Šต์„ ํ†ตํ•ด Terraform์„ ํ™œ์šฉํ•ด์„œ ISMS์— ์ž…๊ฐํ•œ ์•„ํ‚คํ…์ณ ๊ตฌ์„ฑ๊ณผ ์ž์‚ฐ ์‹๋ณ„์„ ์ˆ˜์›”ํ•˜๊ฒŒ ํ†ตํ•ฉ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

 

๋น„๋ก ์‹œํ–‰ ์ฐฉ์˜ค์™€ ์—ฌ๋Ÿฌ ์‚ฝ์งˆ์€ ์žˆ์—ˆ์ง€๋งŒ, ๋‹ค์Œ ์‹ค์Šต ๋•Œ์—๋Š” ๋” ๋‚˜์€ ํ˜•ํƒœ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

ํŒŒ์ดํŒ…!

 

 

[์ฐธ๊ณ ์ž๋ฃŒ]

 

https://docs.aws.amazon.com/ko_kr/config/latest/developerguide/monitor-config-with-cloudwatchevents.html

 

Amazon EventBridge AWS Config ๋ฅผ ์‚ฌ์šฉํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง - AWS Config

์ด๋ฒคํŠธ ๋ฒ„์Šค๋Š” ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ , ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ , ๊ตฌ์„ฑ๋œ ์ž…๋ ฅ ๋ณ€ํ™˜์„ ์ ์šฉํ•˜๊ณ , ์ ์ ˆํ•œ ๋Œ€์ƒ(๋“ค)์œผ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ •์˜ ๊ธฐ๋ณธ ์ด๋ฒคํŠธ ๋ฒ„์Šค๋Š”์—์„œ ์ด๋ฒคํŠธ

docs.aws.amazon.com

https://docs.aws.amazon.com/ko_kr/eventbridge/latest/APIReference/API_InputTransformer.html

 

InputTransformer - Amazon EventBridge

InputTransformer Contains the parameters needed for you to provide custom input to a target based on one or more pieces of data extracted from the event. Contents InputTemplate Input template where you specify placeholders that will be filled with the valu

docs.aws.amazon.com

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/monitoring-instance-state-changes.html?utm_source=chatgpt.com

 

Amazon EC2 ์ธ์Šคํ„ด์Šค์˜ ์ƒํƒœ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ - Amazon Elastic Compute Cloud

Amazon EC2 ์ธ์Šคํ„ด์Šค์˜ ์ƒํƒœ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ Amazon EC2๋Š” ์ธ์Šคํ„ด์Šค ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด EC2 Instance State-change Notification ์ด๋ฒคํŠธ๋ฅผ Amazon EventBridge๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ด ์ด๋ฒคํŠธ์˜ ์˜ˆ์ œ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ์—

docs.aws.amazon.com

 

 

๋Œ“๊ธ€