침투 테스트는 자체 인프라를 공격해 보안을 테스트 하는 것이다.
AWS 고객은 사전 승인 없이 8개 서비스의 자체 인프라에 관해 보안 평가 및 침투 테스트를 실행할 수 있다.
위 8개에 대한 사용 권한이 필요 없다는 것이 중요하다.
예를 들어, Route 53 호스팅 영역을 통해 DNS zone walking을 실행할 수 없고, 시스템에서 도스나 디도스, 시뮬레이션 된 도스나 디도스를 실행할 수 없다.
도스로 자체 인프라를 공격할 수 없고, 포트 플러딩, 프로토콜 플러딩을 취소할 수 없으며 변형된 공격인 요청 플러딩을 취소할 수 없다.
다른 모든 이벤트에 관련해선 AWS의 보안 팀에 연락해 승인 받아야 한다.
일부는 사용 권한이 있지만 디도스 공격이나 DNS zone walking, Port flooding은 AWS의 인프라를 공격하는 것으로 간주하기 때문에 사용 권한이 없다.
AWS에서 발생하는 암호화는 저장 중 암호화와 전송 중 암호화가 있다.
Data at rest는 데이터가 물리적 디바이스에 저장 또는 아카이브 되어 있다는 뜻이다. 즉, 하드 디스크나 하드 드라이브. RDS, S3 버킷, Glacier Deep Archive 모두 해당된다. 움직이지 않으므로 At rest 라고 표현된다.
어딘가에 가만히 기록되어 있고, 암호화된 저장 데이터가 있을 만한 곳으로는 EFS 네트워크 드라이브 또는 S3가 있다.
Data in transit은 장소를 이동하는 동안에 암호화되어 있다는 뜻으로 움직이는 동안 암호화되는 것이다.
예를 들면, 데이터를 자체 데이터 센터로부터 AWS로 옮길 때마다 또는 EC2 인스턴스와 DynamoDB 테이블 간에 데이터가 이동할 때가 해당된다. 데이터를 기록하거나 반환하는 중이기 때문이다. 즉, in transit 은 데이터가 네트워크 상에서 전송된다는 뜻이다.
이상적으로는 데이터가 상시 암호화되고 보호받는 상태를 유지해야 하기 때문에 둘 중 어느 상태이든 간에 암호화하고자 하는 것이다.
현 단계에선 원리를 이해하기 보단 암호화 키를 이용한다는 것을 알아두자. 데이터를 암호화 한다는 것은 암호화 키를 가지고 있지 않은 사람이 데이터에 접근할 수는 있지만 복호화할 순 없다는 뜻이다.
AWS의 중심이 되는 암호화 서비스는 KMS라고 부른다. KMS는 Key Management Service의 약자로 암호화와 서비스가 연관 지어진다면 대부분의 경우 KMS일 것이다.
KMS를 이용하면 직접 암호화 키에 접근하지 못하고, 키는 AWS에서 관리해 준다. 사용자는 액세스 키에 대한 접근 권한을 누구에게 줄 것인지 정의하면 된다.
암호화 여부는 선택 가능한 경우가 있다.
그 외 어떤 서비스들은 무조건 암호화가 이뤄지도록 되어 있다.
CloudHSM을 이용하면 AWS는 단순히 암호화에 이용되는 하드웨어만 제공하는 대신 암호화 키를 직접 관리할 수 있다. 전용으로 제공받는 하드웨어는 HSM(Hardware Security Module)이라고 한다. AWS의 하드웨어 시설에서 사용자에게 제공하며 암호화 키는 사용자가 직접 관리하고, AWS는 관여하지 않는다.
누군가 AWS의 데이터 센터에 침입하여 암호화 키를 알아내는 일이 발생하지 않도록 HSM 장치는 대비책이 마련되어 있다. 누군가 함부로 액세스하려고 하면 계정이 잠기고, 물리적 및 논리적 변조 감지와 대응 메커니즘을 갖추고 있어 하드웨어의 키 삭제가 트리거된다. 또한 FIPS 140-2 3단계를 준수한다.

AWS에서 하드웨어를 관리하지만 키를 관리하는 역할은 사용자가 CloudHSM 서비스로 CloudHSM 클라이언트를 통해서 직접 수행하게 된다. 또한 당연히 클라이언트들과 CloudHSM 간의 연결은 암호화되어 있어 암호화 키를 안전하게 관리할 수 있다.
aws/s3 , aws/ebs 등으로 앞에 aws/ 가 붙으면 AWS Managed Key이다.Certificate Manager(또는 ACM)은 SSL이나 TLS 인증서를 쉽게 관리 프로비저닝 및 배포할 수 있는 서비스이다. 인증서는 HTTP 엔드포인트를 제공하며 웹사이트에 전송 중 암호화를 지원한다.

즉, ACM은 공용 및 사설 TLS 인증서를 모두 지원하며 공용 TLS 인증서는 무료로 이용할 수 있다. 또한 자동 TLS 인증서 갱신이라는 기능이 있다.
통합을 지원하기 때문에 TLS 인증서를 다른 서비스에 로드할 수도 있다.
Secrets Manager는 암호를 저장하거나 암호를 강제로 교체하도록 해준다.
Lambda를 이용해서도 암호를 자동 생성할 수 있고, RDS와도 통합이 된다. Secrets Manager를 이용하면 RDS 비밀번호를 자동으로 생성할 수 있는 것이다.
암호는 KMS를 사용해서 자동으로 암호화된다.
시험에서는 RDS에서 관리되고 교체되는 암호라는 내용을 봤을 때 Secrets Manager를 떠올리면 된다.
Artifact는 규정 준수 보고서와 AWS 계약에 대해 온디맨드 액세스를 제공하는 포털이다. 서비스라고 할 수는 없고, 규정 준수 문서 다운로드의 한 가지 방법이다.
Artifact Reports는 다운로드가 가능하며 외부감사인이 보안이나 규정 준수 문서를 볼 수 있도록 지원한다.
Artifact Agreements는 AWS 계약 상태를 검토, 승인 및 추적하는데 여기에는 BAA 계약과 HIPPA(건강보험 이전과 책임에 관한 법)가 포함되며, 이 기능을 개인 계정과 단체에 대해 지원하고 있다. 따라서 이와 같은 보고서는 사내 내부 감사에 사용되거나 AWS를 사용하여 규정 준수를 증명할 때 사용된다.
GuardDuty는 지능형 위협 검색을 통해 AWS 계정을 보호할 수 있도록 도와준다.
머신러닝 알고리즘을 사용하고 이상 징후 탐지를 수행하며 써드파티 데이터를 사용하여 위협을 찾아낸다.
소프트웨어를 설치할 필요 없이 클릭 한 번으로 활성화할 수 있고, 30일 평가판을 사용할 수 있다.
GuardDuty는 많은 입력 데이터를 살펴본다.
뭔가 발견했을 경우, 자동으로 알림을 받도록 EventBridge 규칙을 설정할 수 있다. 규칙은 EventBridge가 타겟팅할 수 있는 건 뭐든 타겟팅할 수 있다.
GuardDuty는 전용 검색 기능을 통해 암호 화폐 공격으로부터 사용자를 보호할 수 있는 매우 훌륭한 도구이다. 모든 입력 데이터를 분석하여 암호 화폐 공격이 있는지 알아낸다.
