728x90
반응형
CloudFront에서 Authorization 헤더 처리 및 보안 패턴
AWS CloudFront는 다양한 보안 패턴과 헤더 처리를 지원하며, 이를 통해 오리진과의 통신을 안전하게 보호할 수 있습니다. 아래는 Authorization 헤더 처리, Application Load Balancer(ALB) 접근 제한, Cognito와의 통합에 대해 자세히 알아봅니다.
1. Authorization 헤더 처리
CloudFront를 통해 EC2 인스턴스와 같은 오리진에 요청을 전달할 때, Authorization 헤더가 필요한 경우 다음과 같이 설정할 수 있습니다:
- Cache Policy 설정
- Cache Policy를 생성하고, Authorization 헤더를 화이트리스트(whitelist)에 추가합니다.
- 헤더 전달
- 사용자가 Authorization 헤더를 포함한 요청을 보내면, CloudFront는 이를 오리진(예: EC2)으로 전달합니다.
- 응답 처리
- EC2 인스턴스에서 생성된 응답은 사용자에게 반환됩니다.
제한 사항:
Authorization 헤더는 모든 오리진 유형에서 지원되지만, S3 오리진에서는 지원되지 않습니다.
2. ALB 접근 제한을 위한 패턴
CloudFront와 ALB(Application Load Balancer)를 연결할 때, 직접적인 접근을 제한하고 보안을 강화하려면 다음 패턴을 적용합니다:
- CloudFront에 커스텀 HTTP 헤더 추가
- CloudFront가 ALB로 요청을 보낼 때 X-Custom-Header와 같은 커스텀 헤더를 추가합니다.
- ALB에서 필터 적용
- ALB는 특정 커스텀 헤더와 값이 포함된 요청만 허용하도록 설정합니다.
예시:
- CloudFront는 요청에 X-Custom-Header: random-value를 추가합니다.
- ALB는 이 헤더가 없는 요청은 모두 차단합니다.
추가 보안 강화:
- ALB에 연결된 Security Group에서 CloudFront의 퍼블릭 IP 프리픽스만 허용하는 규칙을 추가하여, ALB가 CloudFront에서 오는 요청만 수락하도록 설정합니다.
3. CloudFront와 Cognito 통합
S3 버킷과 CloudFront를 활용할 때, 사용자를 인증하려면 AWS Cognito를 사용할 수 있습니다.
- Cognito Hosted UI 활용
- Cognito에서 제공하는 Hosted UI를 사용하여 사용자 인증을 처리합니다.
- 사용자가 로그인하면 JWT(JSON Web Token)를 발급받습니다.
- Lambda@Edge로 JWT 검증
- 사용자는 요청과 함께 JWT를 CloudFront에 전달합니다.
- CloudFront는 Lambda@Edge를 통해 JWT를 검증합니다.
- Lambda 함수는 JWT가 Cognito에서 발행된 것인지 확인합니다.
- 유효한 JWT일 경우 요청을 S3 버킷으로 전달합니다.
구성 예시:
- 사용자가 Cognito Hosted UI를 통해 인증 → JWT 발급
- JWT를 포함한 요청이 CloudFront로 전달 → Lambda@Edge에서 JWT 검증
- 검증 완료 후 S3 버킷에서 데이터 반환
결론
AWS CloudFront는 다양한 보안 기능과 설정을 지원하여, 안전한 네트워크 아키텍처를 구성할 수 있습니다. Authorization 헤더 처리, ALB 접근 제한, Cognito와의 통합 등을 적절히 활용하여 강력한 보안과 효율적인 데이터 전달을 구현하세요.
728x90
반응형
'자격증 > AWS Certified Security - Specialty' 카테고리의 다른 글
[AWS SCS] AWS Shield (0) | 2024.12.16 |
---|---|
[AWS SCS] AWS WAF (1) | 2024.12.16 |
[AWS SCS] CloudFront - Origin Access Control and Origin Access Identity (OAC & OAI) (0) | 2024.12.16 |
[AWS SCS] CloudFront - 필드 레벨 암호화 (0) | 2024.12.16 |
[AWS SCS] CloudFront - Signed URL & Cookies (0) | 2024.12.16 |