반응형
1. AWS CloudFront?
- Amazon CloudFront는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스
- udFront는 엣지 로케이션이라고 하는 데이터 센터의 전 세계 네트워크를 통해 콘텐츠를 제공
CloudFront를 통해 서비스하는 콘텐츠를 사용자가 요청하면 지연 시간이 가장 낮은 엣지 로케이션으로 요청이 라우팅되므로 가능한 최고의 성능으로 콘텐츠가 제공
1.1 콘텐츠를 전송하도록 CloudFront를 설정하는 방법
설명
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
1.2 CloudFront에서 콘텐츠를 제공하는 방법
- 사용자가 웹 사이트 또는 애플리케이션에 액세스하고 이미지 파일 및 HTML 파일 같은 하나 이상의 객체에 대한 요청을 전송
- DNS가 요청을 최적으로 서비스할 수 있는 CloudFront POP(Point of Presence, 엣지 로케이션)로 요청을 라우팅
- CloudFront는 해당 캐시에 요청된 객체가 있는지 확인
객체가 존재하면 해당 객체를 사용자에게 반환하고, 객체가 캐쉬에 없으면 다음을 수행- CloudFront는 배포의 사양과 요청을 비교하고 요청을 해당하는 객체로 사용자의 원본 서버(예: Amazon S3 버킷 또는 HTTP 서버)에 전달
- 원본 서버는 객체를 다시 엣지 로케이션으로 전송
- 오리진에서 첫 번째 바이트가 도착하면 CloudFront가 객체를 사용자에게 전달하기 시작
(CloudFront는 다음에 사용자가 객체를 요청할 때 캐시에 해당 객체를 추가)
1.3 CloudFront에서 리전 에지 캐시를 사용하는 방식
- CloudFront POP(엣지 로케이션)은 많이 사용되는 콘텐츠를 최종 사용자에게 빠르게 제공할 수 있도록 함.
- 리전 엣지 캐시는 POP에 있을 정도로 많이 사용되는 콘텐츠가 아닌 경우에 도 최종 사용자가 보다 많은 콘텐츠를 가까이에서 액세스 할 수 있도록 함.
2. 보안 액세스 구성 및 콘텐츠에 대한 액세스 제한
2.1 CloudFront에서 HTTPS 사용
뷰어가 HTTPS를 사용할 것을 요청하도록 CloudFront를 구성할 수 있습니다. 이렇게 하면 CloudFront가 뷰어와 통신할 때 연결이 암호화됩니다. 또한 CloudFront가 오리진과 HTTPS를 사용하도록 구성할 수 있습니다. 이렇게 하면 CloudFront가 오리진과 통신할 때 연결이 암호화됩니다
- 최종 사용자가 HTTPS 요청을 CloudFront에 제출 → 뷰어와 CloudFront 간에 SSL/TLS 협상이 수행
- CloudFront 엣지 로케이션에 캐시 응답을 포함하는 경우 CloudFront가 응답을 암호화하여 뷰어에게 반환하면 뷰어는 이를 해독
- CloudFront 엣지 로케이션에 캐시 응답을 포함하지 않는 경우 CloudFrontnt는 오리진과 SSL/TLS 협상을 수행하며 협상이 완료되면 요청을 암호화된 형식으로 오리진에 전달
- 오리진은 요청을 복호화한 후 요청을 처리하여 응답을 생성 및 암호화한 후 CloudFront에 반환
- CloudFront는 응답을 복호화한 후 다시 암호화하여 뷰어에게 전달
CloudFront는 엣지 로케이션에 응답을 캐시하여 다음에 요청할 때 사용할 수 있도록 함. - 최종 사용자가 응답을 해독
2.2 서명된 URL과 서명된 쿠키를 사용하여 프라이빗 콘텐츠 제공
프라이빗 콘텐츠에 대한 사용자 액세스는 다음 두가지 방법으로 제어
- CloudFront 캐시에 있는 파일에 대한 액세스를 제한
- 오리진 파일에 대한 액세스를 제한
2.2.1 CloudFront 캐시에 있는 파일에 대한 액세스 제한
- 서명된 URL을 만들어 인증된 사용자에게 배포
- 인증된 사용자를 위해 Set-Cookie 헤더를 보내 서명된 쿠키를 설정하도록 하는 애플리케이션 개발
- URL 또는 쿠키에 서명하기 위해서는 RSA-SHA1을 사용
2.2.2 Amazon S3 버킷에 있는 파일에 대한 액세스 제한
- 사용자가 지정된 CloudFront 배포를 통해 액세스할 수는 있지만 Amazon S3 URL을 사용하여 직접 액세스할 수는 없도록 Amazon S3 버킷의 콘텐츠를 선택적으로 보호
- 인증된 요청을 Amazon S3로 보내도록 CloudFront를 구성하고 CloudFront의 인증된 요청에 대한 액세스만 허용하도록 Amazon S3를 구성
2.3 콘텐츠의 지리적 배포 제한
- 특정 지리적 위치에 있는 사용자가 CloudFront 배포를 통해 배포한 콘텐츠에 액세스하는 것을 차단
2.4 필드레벨 암호화 사용으로 민감한 데이터 보호
- Amazon CloudFront를 사용하면 HTTPS를 통해 오리진 서버에 대한 종단 간 보안 연결을 적용할 수 있습니다. 필드 레벨 암호화는 추가 보안 레이어를 추가하여 시스템 처리 전체에서 특정 데이터를 보호하고 특정 애플리케이션만 이를 볼 수 있도록 합니다
- 필드 레벨 암호화를 통해 사용자가 민감한 정보를 웹 서버에 안전하게 업로드할 수 있습니다. 사용자가 제공한 민감한 정보는 사용자에게 가까운 엣지에서 암호화되고 전체 애플리케이션 스택에서 암호화를 유지하므로 데이터가 필요하고 이를 해독할 자격 증명을 보유한 애플리케이션만 이 작업을 수행할 수 있습니다
- CloudFront 필드 레벨 암호화는 퍼블릭 키 암호화라고도 하는 비대칭 암호화를 사용합니다. CloudFront에 퍼블릭 키를 입력하면 지정한 모든 민감한 데이터가 자동적으로 암호화됩니다. CloudFront에 입력한 키는 암호화된 값의 해독에 사용할 수 없습니다. 이는 프라이빗 키만이 가능합니다
반응형
'고기 대신 SW 한점 > Public Cloud' 카테고리의 다른 글
Kubernets 구조, Yaml file 이해하기 (0) | 2023.08.04 |
---|---|
AWS Site to Site VPN 연결해 보기 (0) | 2023.06.28 |
Kafka,카푸카 알아보기 (0) | 2023.04.26 |
AWS Secrets Manager 사용하기 (0) | 2023.03.08 |
Glue, Athena를 활용한 Data 정합성 구성 (0) | 2023.03.07 |