어카운트 보안
어카운트 수전 연락처 설정
•
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 템플릿을 통해 복구