IT STUDY LOG
[SECTION 5] <Final Project> DAY 6 LOG 본문
# Daily Plan
- 날짜 : 2023.06.19
- 금일 주요 업무
- 아키텍처 구현 업무 구체화 회의
- 아키텍처 구현 업무 분담
- 아키텍처 구현
- 명일 예정사항
- 아키텍처 구현
- 쉬는시간
- 매시 정각~10분
# Process Log
0. Sprint Backlog with Task
- [TEAM MEMBER 1] 기존 시스템 구축
- ECS에 web/was 배포
- Github에 코드가 push되면 자동으로 code pipeline, code build, code deploy 과정 수행
- 레거시 시스템 데모 시연을 위해 alb, ecr, ecs fargate, rds, s3 구축
- Alb에 waf를 활용해 네트워크 보안 강화
- IaC(Terraform) CI/CD
- (Optional) lambda CI/CD
- [TEAM MEMBER 2] 자산 구분시스템
- 자동 태깅
- Parameter store에 자산 분류 태그 생성
- 자산 분류 naming convetion 회의 필요
- 기존 시스템 구축 과정에서 인스턴스가 생성되어 cloudtrail에 로그를 eventbridge의 트리거로 태깅 lambda가 동작하도록 구성
- (Optional) 필요한 경우 cloudtrail에서 cloudwatch로 로그를 전달하도록 구성
- 태깅 lambda에서 parameter store를 활용해 리소스 태깅 작업 수행
- 수동 태깅
- Resource group과 tag editor를 사용해 리소스 분류 작업 수행
- 자동 태깅
- [TEAM MEMBER 3, 4, 2] 자산 점검 프로세스
- 태깅된 자산의 분류에 따라 inspector로 실시간으로 cve를 점검해 취약점이 발견되면 security hub로 전달하도록 구성
- 태깅된 자산의 분류에 따라 config의 실시간으로 구성 규칙을 선별해 cce를 점검하고 취약점이 발견되면 security hub로 전달하도록 구성
- Guard duty를 활용해 실시간으로 지능 위협 취약점 탐지 후 취약점이 발견되면 security hub로 전달하도록 구성
- 취약점이 발생하면 Security hub에서 event bridge를 통해 cloudwatch와 SNS로 전달
- (Optional) SNS lambda로 전달 후 SNS lambda에서 SNS로 전달
- SNS에 전달된 이벤트 메시지를 email lambda로 전달 후 Email lambda에서 취약점 보고서 형식으로 가공 후 email 및 slack으로 전달하도록 코드 작성
- Config에서 자동 수정이 가능한 일부 취약점의 경우 system manager를 활용해 자동 수정 진행
- [TEAM MEMBER 5] 모니터링
- 기존 구축된 시스템에 adot 컨테이너 이미지를 사이드카 컨테이너를 동작시켜서 리소스들의 메트릭, 트레이스 수집하도록 구성
- 메트릭은 amp, 트레이스는 x-ray로 전달되도록 구성
- Grafana는 cloudwatch에 전달된 취약점 로그와, amp의 메트릭, x-ray의 트레이스를 데이터 소스로 사용하며 쿼리를 통해 시각화 대시보드 생성
- eventbridge를 통해 정기적으로 스케쥴링된 email lambda를 트리거
- Email lambda는 수집한 로그, 메트릭, 트레이스릉 가공해 일별 점검 리포트를 생성하며, 이때 grafana의 report api를 통해 시각화된 보고서 생성.
- 생성된 보고서를 email 및 slack으로 전송
TBD
- 정기적으로 sns 트리거하는 방법? -> SNS를 이벤트 브릿지로 대체
- 그라파나의 쿼리는 어떻게 선별할지? -> 개발할 사람이 선별하거나 그라파나 커뮤니티 템플릿 사용
- 취약점이 예를 들어 CVE에서만 발견된 경우에도 security hub에서 통합된 기록을 통해 모든 취약점에 대한 보고가 이루어지는가? -> security hub는 취약점 등이 발견되었을 경우에만 로그가 적재됨
- 만일 config에서 자동 조치가 가능한 부분/불가한 부분이 있을 경우 이를 구분해서 보고하는가? 자동으로 조치된 취약점은 실시간으로로 알리는가? -> 정 안되면 중복 보고
- Sns lambda의 역할? -> 현재로서는 불필요 판단, 추후 필요시 추가
1. Task Log
⓿ Security Hub에 Config, Inspector, GuardDuty 통합
❶ 태깅된 자산의 분류에 따라 config의 실시간으로 구성 규칙을 선별해 cce를 점검하고 취약점이 발견되면 security hub로 전달하도록 구성
Step 1 : config console에서 config 시작하기
Step 2 : 설정
- 설정 페이지의 기록할 리소스 유형에서 AWS Config에 기록할 모든 리소스 유형을 지정(AWS Config가 기록하는 리소스 선택)
- AWS Config역할의 경우 기존 AWS Config 서비스 연결 역할을 선택하거나 계정에서 역할을 선택
- 전달 방법
- 전송 방법에서 구성 기록 및 구성 스냅샷 파일을 AWS Config 전송할 S3 버킷을 선택
- 버킷 생성 — S3 버킷 이름으로 S3 버킷의 이름을 입력
- 계정에서 버킷 선택 — S3 버킷 이름의 경우 선호하는 버킷을 선택
- 다른 계정에서 버킷 선택 — S3 버킷 이름에 버킷 이름을 입력
- 전송 방법에서 구성 기록 및 구성 스냅샷 파일을 AWS Config 전송할 S3 버킷을 선택
- Amazon SNS 주제의 경우 구성 변경 및 알림을 Amazon SNS 주제로 스트리밍을 선택하면 구성 기록 전송, 구성 스냅샷 전송, 규정 준수와 같은 알림을 AWS Config 전송 가능
- 주제 생성 — 주제 이름에 SNS 주제의 이름을 입력
- 계정에서 주제 선택 — 주제 이름에서 원하는 주제를 선택
- 다른 계정에서 주제 선택 — 주제 ARN 에 주제의 Amazon 리소스 이름 (ARN) 을 입력 다른 계정에서 주제를 선택하는 경우, 해당 주제에 AWS Config에 액세스 권한을 부여하는 정책이 있어야 함(Amazon SNS 주제에 대한 권한을 참조)
Step 3 : 규칙
- 규칙을 지원하는 리전에서 AWS Config를 설정하는 경우, 선택할 관리형 규칙을 선택하고 다음(자세한 정보는 AWS Config규칙 관리 참고)
Step 4 : Security Hub에 통합 확인
❷ 태깅된 자산의 분류에 따라 inspector로 실시간으로 cve를 점검해 취약점이 발견되면 security hub로 전달하도록 구성
Step 1 : Amazon Inspector 활성화
- https://console.aws.amazon.com/inspector/v2/home 에서 Amazon Inspector 콘솔 접속
- 시작하기(Get Started)를 선택
- Amazon Inspector 활성화를 선택
- Amazon EC2 스캐닝 - Amazon Inspector로 Amazon EC2 인스턴스 스캔
- 아마존 ECR 스캐닝 - 아마존 인스펙터로 아마존 ECR 컨테이너 이미지 스캔하기
- AWS Lambda함수 스캐닝 - Amazon Inspector 사용한 스캔 AWS Lambda 기능
Step 2 : Amazon Inspector 결과 보기 (참고 : 대시보드 이해)
- https://console.aws.amazon.com/inspector/v2/home 에서 Amazon Inspector 콘솔 접속
- 탐색 창에서 대시보드를 선택 후 대시보드의 링크 중 하나를 선택하여 Amazon Inspector 콘솔에서 해당 항목에 대한 세부 정보가 있는 페이지로 이동 가능
- 탐색 창에서 검색 결과를 선택
- 기본적으로 해당 환경의 모든 EC2 인스턴스, ECR 컨테이너 이미지, AWS Lambda 함수 결과를 표시하는 All finds 탭이 표시됨
- 검색 결과 목록의 제목 열에 있는 검색 결과 이름을 선택하여 해당 검색 결과에 대한 세부 정보 창 접속 가능, 모든 검색 결과에는 검색 결과 세부 정보 탭이 존재하며 검색 결과 세부 정보 탭과 상호 작용 가능
- 유형을 찾는 방법에 대한 자세한 내용은 아마존 인스펙터에서 유형 찾기 단원을 참조
- 취약성에 대한 자세한 내용을 보려면 취약성 세부 정보 섹션의 링크를 따라 이 취약성에 대한 설명서 확인
- 리소스를 더 자세히 조사하려면 영향을 받는 리소스 섹션의 리소스 ID 링크를 따라 영향을 받는 리소스의 서비스 콘솔로 접속
$ sudo ssm-cli get-diagnostics --output table
┌──────────────────────────────────────┬─────────┬──────────────────────────────────────────┐
│ Check │ Status │ Note │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ EC2 IMDS │ Success │ IMDS is accessible and has instance id │
│ │ │ i-09c58864a317a7592 in region │
│ │ │ ap-northeast-2 │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ Hybrid instance registration │ Skipped │ Instance does not have hybrid │
│ │ │ registration │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ Connectivity to ssm endpoint │ Success │ ssm.ap-northeast-2.amazonaws.com is │
│ │ │ reachable │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ Connectivity to ec2messages endpoint │ Success │ ec2messages.ap-northeast-2.amazonaws.com │
│ │ │ is reachable │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ Connectivity to ssmmessages endpoint │ Success │ ssmmessages.ap-northeast-2.amazonaws.com │
│ │ │ is reachable │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ Connectivity to s3 endpoint │ Success │ s3.ap-northeast-2.amazonaws.com is │
│ │ │ reachable │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ Connectivity to kms endpoint │ Success │ kms.ap-northeast-2.amazonaws.com is │
│ │ │ reachable │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ Connectivity to logs endpoint │ Success │ logs.ap-northeast-2.amazonaws.com is │
│ │ │ reachable │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ Connectivity to monitoring endpoint │ Success │ monitoring.ap-northeast-2.amazonaws.com │
│ │ │ is reachable │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ AWS Credentials │ Failed │ EC2RoleRequestError: no EC2 instance │
│ │ │ role found │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ Agent service │ Success │ Agent service is running and is running │
│ │ │ as expected user │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ Proxy configuration │ Skipped │ No proxy configuration detected │
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────┤
│ SSM Agent version │ Success │ SSM Agent version is 3.1.1732.0, latest │
│ │ │ agent version in ap-northeast-2 is │
│ │ │ 3.2.1041.0 │
└──────────────────────────────────────┴─────────┴──────────────────────────────────────────┘
Step 3 : Security Hub에 통합 확인
❸ Guard duty를 활용해 실시간으로 지능 위협 취약점 탐지 후 취약점이 발견되면 security hub로 전달하도록 구성
Step 1 : 아마존 활성화 GuardDuty
- https://console.aws.amazon.com/guardduty/ 에서 GuardDuty 콘솔 접속
- 시작하기(Get Started)를 선택
- GuardDuty 활성
Step 2 : 샘플 결과 생성 및 기본 작업 살펴보기
- 탐색 창에서 설정(Settings)을 선택
- [Settings] 페이지의 [Sample findings] 아래에서 [Generate sample findings]를 선택
- 탐색 창에서 Findings를 선택 샘플 결과는 [SAMPLE] 접두사와 함께 현재 검색 결과 페이지에 표시됨
- 목록에서 검색 결과를 선택하면 검색 결과에 대한 세부 정보가 표시됨
- 창 상단에서 검색 ID를 선택하여 검색 결과에 대한 전체 JSON 세부 정보 확인
- 전체 JSON 파일은 이 패널에서 다운로드 가능
- JSON은 콘솔 보기에 포함되지 않은 몇 가지 추가 정보를 포함하며 다른 도구 및 서비스에서 수집할 수 있는 형식
- 영향을 받는 리소스 섹션을 확인
- 계정에서 조사해야 할 리소스를 식별하는 데 도움이 되며 실행 가능한 적절한AWS Management Console 리소스로 연결되는 링크를 포함
- + 또는 - 모양의 유리 아이콘을 선택하여 해당 세부 정보에 대한 포괄적 또는 독점적 필터를 만들 수 있음 ( 필터 찾기에 대한 자세한 내용은 결과 필터링 단원을 참고)
- 창 상단에서 검색 ID를 선택하여 검색 결과에 대한 전체 JSON 세부 정보 확인
- 모든 샘플 결과 보관
- 목록 상단의 확인란을 선택하여 모든 결과를 선택
- 보관하려는 검색 결과를 모두 선택 취소
- 작업 메뉴를 선택한 다음 아카이브를 선택하여 샘플 결과를 숨김
Step 3 : Security Hub에 통합 확인
# Daily Reporting
☑️ 일일업무보고
☑️ 아키텍처 구현 업무 구체화 회의
☑️ 태그 명명 규칙 회의
☑️ 아키텍처 구현 업무 배분
☑️ 태깅된 자산의 분류에 따라 config의 실시간으로 구성 규칙을 선별해 cce를 점검하고 취약점이 발견되면 security hub로 전달하도록 구성
☑️ 태깅된 자산의 분류에 따라 inspector로 실시간으로 cve를 점검해 취약점이 발견되면 security hub로 전달하도록 구성
# references
https://docs.aws.amazon.com/ko_kr/config/latest/developerguide/WhatIsConfig.html
https://docs.aws.amazon.com/ko_kr/config/latest/developerguide/managed-rules-by-trigger-type.html
https://docs.aws.amazon.com/ko_kr/config/latest/developerguide/manual-setup.title.html
https://docs.aws.amazon.com/ko_kr/securityhub/latest/userguide/securityhub-prereq-config.html
https://docs.aws.amazon.com/ko_kr/inspector/latest/user/what-is-inspector.html
https://docs.aws.amazon.com/ko_kr/inspector/latest/user/getting_started_tutorial.html
https://docs.aws.amazon.com/ko_kr/config/latest/developerguide/aws-config-landing-page.html
https://repost.aws/ko/knowledge-center/amazon-inspector-ec2-scanning
https://docs.aws.amazon.com/ko_kr/inspector/latest/user/scanning-ec2.html
https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/ssm-agent.html
https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/ssm-agent-status-and-restart.html
https://docs.aws.amazon.com/ko_kr/inspector/latest/user/supported.html#supported-os-ec2
https://docs.aws.amazon.com/ko_kr/general/latest/gr/ssm.html
https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/ssm-cli.html
https://musma.github.io/2019/11/29/about-aws-ssm.html
https://docs.aws.amazon.com/ko_kr/guardduty/latest/ug/guardduty_findings.html
'devops bootcamp 4 > project log' 카테고리의 다른 글
[SECTION 5] <Final Project> 프로젝트 회고와 평가 (1) | 2023.06.26 |
---|---|
[SECTION 5] <Final Project> DAY 8 LOG (0) | 2023.06.21 |
[SECTION 5] <Final Project> DAY 5 LOG (0) | 2023.06.16 |
[SECTION 5] <Final Project> DAY 3 LOG (0) | 2023.06.14 |
[SECTION 5] <Final Project> 칸반과 WIP (0) | 2023.06.12 |