Search
📨

AWS 사용자 필수 기초 보안 가이드 및 서비스 소개 (어카운트, 워크로드 보안) (김성한, AWS)

어카운트 보안

어카운트 수전 연락처 설정

AWS Organizations을 이용하는 경우 프로그래밍 방식으로 어카운트 연락처를 업데이트할 수 있는 기능이 새롭게 출시되었습니다.
회사 도메인을 사용하여 어카운트 등록!!
그룹 메일을 어카운트 연락처로 사용!!

루트 사용자 사용 제한

콘솔 접근 설정 모범 사례

비밀번호 정책 시행

비밀번호 정책은 위 스크린샷에 표시된 정책 사용을 권고!!

이벤트 로그 설정

AWS 어카운트 내에서 일어나는 이벤트 기록…
AWS CloudTrail에서는 사용자, 역할 또는 다른 AWS 서비스에 의해 수행되는 모든 AWS API 호출이 기록됨.
기본적으로 콘솔의 이벤트 기록에서는 지난 90일 동안의 활동만 보관됨. → 이러한 로그를 더 오래 보관하려면, AWS CloudTrail에 새 추적을 생성하고, 해당 로그를 S3버킷에 저장하도록 설정하는 것이 좋다. → 추적 생성 메뉴에서 저장 설정을 한 후 약 15분 후부터 S3버킷에 AWS CloudTrail 로그가 수신되기 시작
AWS CloudTrail 로그는 이슈 발생 시 추적을 위해 중요한 데이터이다. → 삭제나 변조에 대비해야한다. → S3 버킷 설정에서는 데이터 버전 관리를 활성화 → 삭제 시 MFA 인증이 필요하도록 설정 → 추적 생성 콘솔에서도 로그 파일 검증을 활성화 시키면 저장된 파일이 변경되지 않았는 지 무결성 검증을 할 수 있다.
관리 이벤트 기록 설정에서 저장할 데이터를 선택할 수 있다.
비 프로덕션 환경의 경우 AWS KMS 이벤트는 대량의 데이터를 생성할 수 있으니 제외

프라이빗 S3 버킷에 대한 퍼블리 액세스 차단

“인증된 사용자 그룹(AWS 계정이 있는 모든 사용자)”에 대한 액세스 권한을 부여할 경우 → 내 어카운트 뿐만 아니라 AWS 인증을 받은 전 세계 사용자가 리소스에 액세스 할 수 있게 됨.

사용하지 않는 리소스 제거

Default VPC는 모든 리전에 같은 IP 주소로 배포되어 있어, 추후 리전 간 피어링이나, 데이터 센터, 또는 다른 어카운트의 Default VPC와 연결이 필요한 경우 IP 주소가 겹쳐 연결을 할 수 없게 된다.
EC2 콘솔에 Global View라는 메뉴가 있는데… → 이를 활용하면 AWS 어카운트의 모든 리소스를 리전 별로 확인할 수도 있고, 검색도 할 수 있다.

AWS Budgets으로 비용 추적

여러 예산 경보를 추가하면 필요할 때 알림을 받을 수 있다. → 만약 월 평균 $200을 사용하는 경우 예산은 $200로 설정하고 알림을 여러 개 추가 (예> 하나는 예산의 50%, 다른 하나는 100%, 또 다른 하나는 200%로 알림 추가)
위 QR코드를 통해 AWS Budgets으로 예산을 설정하고 Slack에 알림을 보내는 방법이 자세히 설명된 블로그로 이동~
비정상적인 지출을 감시하는 무료 서비스~

Amazon GuardDuty

Amazon GuardDuty 동작 방식

Amazon GuardDuty는 30일간 무료 평가판 제공
사용하지 않는 리전 등에서도 감지를 활성화 하려면 사용하는 리전 뿐만 아니라 어카운트에서 사용하도록 설정된 모든 리전에서 이 서비스를 활성화 해야 함.

AWS Trusted Advisor에서 높은 위험 이슈 파악

AWS Trusted Advisor는 비용 최적화, 성능, 보안, 내결함성, 서비스 한도 등 5개 영역 별 문제에 대해 AWS 환경을 사전에 스캔하는 무료 도구
발견된 문제를 수정하는 방법에 대한 권장 사항을 제공하고 적절한 지침 또는 모범 사례에 대한 링크 제공

워크로드 보안

IAM Role 이 할당된 일정 시간동안 사람이나 서비스가 권한을 잠시 맡을 수 있도록 해줌.
IAM Role은 사용자 ID 또는 EC2 인스턴스와 같은 리소스에 할당할 수 있다.
Staging, Production 어카운트에 접근하는 권한으로 IAM Role을 맡을 수 있는 권한을 부여 받음.
‘최소 권한 원칙’ 구현을 단순화 하는 방법…
IAM Access Analyzer를 통해 실제 접근한 권한 확인 가능
샌드박스 혹은 개발 어카운트에서 일시적으로 권한을 많이 부여하여 일정 기간동안 실행한 다음 IAM Access Analyzer에서 실제로 사용한 권한을 기반으로 정책을 권장할 수 있다.
IAM Access Analyzer의 동작을 배포 파이프라이에 통합하여 프로세스 자동화

암호 관리 서비스 사용

노출된 암호 탐지 및 조치

실제 코드에 암호/키 포함 되어있는지 확인할 수 있는 도구는?? → Amazon CodeGuru Reviewer에 해당 기능이 있다.
Amazon CodeGuru Secrets Detector는 모든 Java 또는 Python 코드베이스를 스캔하여 잠재적인 문제를 강조해 표시해 주고, AWS Secrets Manager와 같은 고나리형 서비스로 변환할 수 있도록 코드 조각을 제공해 준다.

프라이빗 리소스는 프라이빗 서브넷에 배포

SSH, RDP 연결 대신 AWS Systems Manager 사용

AWS Systems Manager에 포함된 Session Manager를 통해 EC2, RDS 접근
Session Manager에서는 감사 로그를 CloudWatch Logs나 S3버킷에 쌓을 수 있어 어떤 사용자가 어떤 명령을 수행했는지도 확인할 수 있다.
Session Manager에서는 Port Forwarding 기능을 제공하기 때문에 데이터베이스와 같은 특정 포트로 접근하는 통신도 Session Manager를 통해서 SSH 터널링 하여 접근할 수 있다.

민간 데이터를 포함한 S3 버킷의 데이터 이벤트 기록

개별 레코드나 객체 수준에서 데이터 접근 또는 사용을 수집하는 것이 필요한 버킷이라면 → 데이터 이벤트를 기록하는 것이 좋다.

보안 그룹을 사용하여 네트워크 접근 제한

VPC 엔드포인트를 사용하여 서비스에 접근

VPC Endpoint는 Interface(AWS PrivateLink), Gateway 두 가지 방식이 존재
Gateway Endpoint의 경우에는 사용시 추가 비용 X

모든 퍼블릭 웹 엔드포인트에 HTTPS 적용

AWS Certificate Manager 또는 ACM을 이용하면 무료 퍼블릭 SSL 인증서를 생성하고 만료되기 전에 교체할 수 있다.

퍼블릭 엔드포인트에 엣지 보호 서비스 사용

WAF: L7 방화벽

Security as code (SaC)

보안 성장 모델

AWS 기초 및 계층화 된 보안 서비스

Identity(식별)
AWS Config을 통해서 규정을 준수하지 못하는 리소스 파악
Protect(보호)
AWS WAF로 웹 애플리케이션의 보호
Detect(감지)
Amazon GuardDuty나 AWS Security Hub
Respond(응답)
AWS CloudTrail에서 확인된 내용으로 자동화 고민
Recover(복구)
스냅샷이나 아카이브, AWS CloudFormation 템플릿을 통해 복구

AWS 보안 레퍼런스 아키텍처 (AWS SRA)

Summary