Encrypt
KMS, Key Management Service
대칭키(AES-256)와 비대칭키(RSA & ECC)를 관리하는 서비스
- Able to audit KMS Key usage(API call) using CloudTrail
- 키 순환을 자동화할 수 있다. ← password를 순환하는 것과는 다르다. 암호화하는 키를 순환하는 것.
- 만약 고객관리형 KMS의 경우는 따로 활성화해야한다.
- Snapshot을 KMS로 암호화하고 다른 리전에 복사해야한다면 대상 리전에서 생성한 Key로 암호화를 다시하고 복호화해서 사용한다.
KMS multi-region keys
똑같은 키를 replication으로 다른 리전에서 관리할 수 있다.
- 사용 사례로 DynamoDB Encryption Client를 사용하여 일부 속성값을 암호화할 수 있다.
- KMS에 접근할 수 없다면 데이터베이스 관리자라도 복호화할 수 없다.
- DynamoDB Global Table이라서 다른 리전에 복사된 경우, 해당 리전에 키를 복제해서 복호화한다.
- 해당 사례는 client-side encryption 에 해당한다.
SSM Parameter Store
versioning과 SDK로 접근할 수 있는 파라미터 중앙 저장소. KMS로 암호화하여 저장할 수 있다.
- dev/ prod/ 와 같은 Hierarchy를 가지고 이를 경로(키)로써 접근할 수 있다.
- 특정 경로로만 IAM User/Group 접근할 수 있도록 제한할 수 있다.
- Standard와 Advanced 티어가 존재한다.
- Standard: 최대 4KB 파라미터
- Advanced: 8KB, Parameter policy(TTL 같은) 적용할 수 있다.
Secrets Manager
패스워드를 암호화하는 서비스
- RDS, Aurora와 호환성이 좋다.
- 강제로 일정 기간마다 암호 순환하도록 할 수 있다.
- Lambda를 생성하면 자동으로 암호를 생성하도록 설정할 수 있다.
- multi region replication 할 수 있다.
AWS Certificate Manager, ACM
TLS 를 관리하는 서비스
- public TLS는 무료로 사용할 수 있고, ACM에서 관리하는 TLS는 자동으로 갱신할 수 있다.
- EC2를 제외한 ELB, CloudFront, API Gateway 와 통합할 수 있다.
- import한 TSL은 자동으로 갱신할 수 없으므로 만료 전, 설정한 기간에 EventBridge 전송 가능.
- AWS Config로 compliance 준수 여부로 판단할 수도 있다.
Web Application Firewall, WAF
네트워크 7계층을 보호한다.
- ALB, API Gateway, CloudFront, AppSync, Cognito 에 배포할 수 있다.
- Web ACL을 정의해서 IP 주소를 기반으로 필터링한다. HTTP 헤더와 body를 통해 방어할 수 있다.
- SQL injection, Cross-Site Scripting 방어할 수 있다.
- 특정 국가의 요청을 막거나 Rate-based rule을 통해 특정 IP의 초당 개수를 제한할 수 있다.
- 사용사례: ALB를 활성화하고 고정 IP를 할당받기 위해 Global Accelerrator 사용한다.
Firewall Manager
IAM Organization에 있는 모든 계정의 방화벽 규칙을 관리하는 서비스
- WAF, AWS Shield, SG, Network Firewall 등 많은 보안 서비스를 관리할 수 있다.
- 예를 들어, ALB에 적용되어 있는 WAF가 있다면 새로운 ALB에 자동으로 같은 WAF를 적용해준다.
GuardDuty
머신러닝으로 로그 등 입력으로부터 이상 탐지를 수행한다.
- CloudTrail Events Logs의 API 이상 호출이나 VPC Flow Logs에서 문제를 탐지한다.
- 암호화폐 공격을 방어할 수 있다.
Inspector
자동화된 보안 평가를 실행한다.
- 오직 EC2 인스턴스, ECR에 업로드하는 이미지, Lambda에만 사용된다.
Macie
머신러닝을 사용한 데이터 보안 및 데이터 프라이버시 서비스. PII가 S3의 데이터에 있다면 감지 가능.