Terraform์ ํ์ฉํ AWS ๋ณด์ ์ํคํ ์ฒ ๋ฐ Amazon Q Developer๋ฅผ ํ์ฉํ ํตํฉ๋ชจ๋ํฐ๋ง ์ค์ต
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 ์์ฐ ์๋ณ ๋ฆฌํฌํธ์ฉ ๋ฆฌ์์ค ์ถ๊ฐ
- ์์ ๋ฆฌํฌํธ์ฉ SNS ํ ํฝ ์์ฑ
- ์ ์ฒด EC2 ๊ฐฏ์, ์ฌ์ฉ ์ฉ๋ ๋ฑ ์๋ณ
- Lambda ์ญํ ๋ฐ ์ ์ฑ
์ค์
- ์ญํ ์์ฑ ํ, ์ ์ฑ
์ค์
- CloudWatch Logs ์ฐ๊ธฐ ๊ถํ ๋ถ์ฌ
- lambda ํจ์ ์ฝ๋๊ฐ ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์๋์ง ๋๋ฒ๊น ํ๊ธฐ ์ํจ
- {
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Effect": "Allow",
"Resource": "arn:aws:logs:*:*:*"
}
- EC2 ์ธ์คํด์ค ์ ๋ณด์ EBS ๋ณผ๋ฅจ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ๊ถํ ๋ถ์ฌ
- {
"Action": [
"ec2:DescribeInstances",
"ec2:DescribeVolumes"
],
"Effect": "Allow",
"Resource": "*"
}
- {
- Lambda๊ฐ ์ต์ข
์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ผ SNS ํ ํฝ์ ๋ํด์ Publish ๊ถํ ๋ถ์ฌ
- {
"Action": "sns:Publish",
"Effect": "Allow",
"Resource": "arn:aws:sns:ap-northeast-2:194722431119:asset-report-dev"
}
- {
- CloudWatch Logs ์ฐ๊ธฐ ๊ถํ ๋ถ์ฌ
- ์ญํ ์์ฑ ํ, ์ ์ฑ
์ค์
- Lambda ์ฝ๋ ์์ฑ๊ณผ ๋ณํ
- ํ์ด์ฌ์ผ๋ก EC2 ์ ๋ณด์ EBS ๋ณผ๋ฅจ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ์์ ์๋ณํ๋ ์๊ณ ๋ฆฌ์ฆ ์์ฑ
- *ํน์ด์ฌํญ : ChatBot ์ฉ์ผ๋ก JSON ํํ๋ก ๊ตฌ์ฑํด์ผ ํจ
- ์ฝ๋ ๋ฒ๋ค๋ก ๋ณํ
- asset_report.py -> asset_report.zip
- ํ์ด์ฌ์ผ๋ก EC2 ์ ๋ณด์ EBS ๋ณผ๋ฅจ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ์์ ์๋ณํ๋ ์๊ณ ๋ฆฌ์ฆ ์์ฑ
- 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 ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธ ํ๋๋ก ๋์ํ๋ค.
- Lambda ์ค์ผ์ฅด๋ง ์ค์
- 10๋ถ ๋ง๋ค Lambda๋ฅผ ํธ๋ฆฌ๊ฑฐ ํ ์ ์๋๋ก EventBridge ๊ท์น ์ค์
[์ต์ข ๊ฒฐ๊ณผ]
1. EC2 ์ํ ๋ณํ์ ๋ฐ๋ฅธ ์๋ฆผ
2. EC2 ์ธ์คํด์ค ์์ฐ ์๋ณ ๋ฆฌํฌํธ
[Terraform ์ฝ๋]
[Lamda ์ฝ๋]
[๊ฒฐ๋ก ]
์ด๋ฒ ์ค์ต์ ํตํด Terraform์ ํ์ฉํด์ ISMS์ ์ ๊ฐํ ์ํคํ ์ณ ๊ตฌ์ฑ๊ณผ ์์ฐ ์๋ณ์ ์์ํ๊ฒ ํตํฉ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์์ ํ์ธํ ์ ์์๋ค.
๋น๋ก ์ํ ์ฐฉ์ค์ ์ฌ๋ฌ ์ฝ์ง์ ์์์ง๋ง, ๋ค์ ์ค์ต ๋์๋ ๋ ๋์ ํํ๋ก ์งํํ ์ ์์ ๊ฒ ๊ฐ๋ค.
ํ์ดํ !
[์ฐธ๊ณ ์๋ฃ]
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
Amazon EC2 ์ธ์คํด์ค์ ์ํ ๋ณ๊ฒฝ ์ด๋ฒคํธ - Amazon Elastic Compute Cloud
Amazon EC2 ์ธ์คํด์ค์ ์ํ ๋ณ๊ฒฝ ์ด๋ฒคํธ Amazon EC2๋ ์ธ์คํด์ค ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด EC2 Instance State-change Notification ์ด๋ฒคํธ๋ฅผ Amazon EventBridge๋ก ๋ณด๋ ๋๋ค. ๋ค์์ ์ด ์ด๋ฒคํธ์ ์์ ๋ฐ์ดํฐ์ ๋๋ค. ์ด ์์ ์
docs.aws.amazon.com
'DevSecOps > ํด๋ผ์ฐ๋(Cloud) ์ค์ต' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Zero Trust & CNAPP ํ์ฉํ ์ค์ต -์ค์ต ์ค- (0) | 2025.05.31 |
---|---|
AWS ํ๊ฒฝ์์ ๋ณด์ ์ดํด์ ์๋ํ ๊ตฌ์ฑ (0) | 2025.05.12 |
์ ์ฒด์ ์ธ AWS ์ํคํ ์ณ๋ฅผ ํ์ ํ๊ณ ๊ธฐ๋ฅ ๋ฐ ๋ณด์ ์ดํด (1) | 2025.05.12 |
Nginx 503 Service Temporarily Unavailavle ๋ฐ์ ํด๊ฒฐ (0) | 2024.05.23 |
AWS์์ https ์ ์ฉํ๊ธฐ (1) | 2024.05.23 |
๋๊ธ