• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

frontend 배포 보안

24.02.01 14:08 작성 24.02.02 22:46 수정 조회수 115

0

  1. 위와 같은 프론트 배포에서 보안을 챙긴다면 어떻게 하면 좋을까요 ?? 배포시에
    s3 퍼블릭 액세스 가능 으로 할 수밖에 없죠 ??

  2. cloud front 를 사용하셨는데 disable 사용하게 된다면 캐시를 사용하지 않는것같은데 , 혹시 캐시를 사용하면서 캐시무효화를 하려면 어떻게 해야할까요 ?

답변 3

·

답변을 작성해보세요.

0

2번 질문에 대해서 답변을 드립니다.

AWS CloudFront로 콘텐츠를 배포한 후 캐시를 즉시 갱신하는 방법은 기본적으로 "캐시 무효화"를 사용하는 것입니다. 그러나, 무효화 과정은 즉각적이지 않으며, 전체 CloudFront 네트워크에 걸쳐 변경 사항이 전파되는 데 시간이 필요합니다.

캐시 무효화

  1. 캐시 무효화 생성: AWS Management Console에서 CloudFront 배포로 이동하여 'Invalidations' 탭에서 새 무효화를 생성합니다. 여기서 특정 파일 또는 전체 디렉토리(/*)를 대상으로 지정할 수 있습니다.

  2. 전파 시간: 무효화 요청이 제출되면, CloudFront는 전 세계의 모든 엣지 로케이션에 대한 캐시 무효화를 시작합니다. 이 과정은 일반적으로 몇 분에서 수십 분 정도 걸립니다.

  3.  

캐시 무효화의 대안

  1. 버전 관리된 파일명 사용: 파일명에 버전 번호나 타임스탬프를 포함시켜 새 버전의 콘텐츠를 업로드합니다. 이렇게 하면 CloudFront는 자동으로 새 버전의 파일을 캐시합니다.

  2. 캐시 제어 헤더: 원본 서버에서 Cache-Control 헤더를 설정하여 캐시 지속 시간(TTL)을 짧게 설정할 수 있습니다. 이렇게 하면 CloudFront가 자주 콘텐츠를 새로 가져오게 됩니다.

 

고려사항

  • 비용: 무효화는 비용이 발생할 수 있으며, 특히 자주 사용할 경우 비용이 증가할 수 있습니다.

  • 효율성: 캐시 무효화는 필요할 때만 사용하는 것이 좋으며, 불필요한 무효화는 전체 시스템의 효율성을 떨어뜨릴 수 있습니다.

  • 자동화: 콘텐츠 업데이트와 캐시 무효화를 자동화하기 위해 CI/CD 파이프라인과 AWS Lambda와 같은 서비스를 사용할 수 있습니다.

결론적으로, CloudFront 캐시 무효화는 즉시 캐시를 갱신하지 않으며, 전파에는 시간이 소요됩니다. 따라서, 캐시 무효화를 계획적으로 사용하고, 필요한 경우에만 적용하는 것이 중요합니다.

0

안녕하세요. 1번에 질문에 대해서 답변을 드립니다.

해당 강의에서는 S3에 민감한 정보를 다루지 않으며, CloudFront 를 적용하며, https 를 사용하고 있습니다.

강의에서는 편의상 퍼블릭엑세스로 진행을 했지만, CloudFront 에서 OAI 를 사용하여 인터넷에 노출을 시키지 않는 방법도 있습니다.

감사합니다.


AWS S3에서 정적 웹 호스팅을 설정할 때, 버킷을 퍼블릭 엑세스로 설정하는 것은 웹사이트의 콘텐츠를 인터넷 사용자들에게 제공하기 위해 일반적으로 필요합니다. 그러나, 퍼블릭 엑세스 설정에는 몇 가지 보안상의 고려사항이 있습니다. 이를 관리하는 방법에는 여러 가지가 있습니다:

퍼블릭 엑세스로 설정 시 고려사항

  1. 민감한 데이터 없음: 퍼블릭으로 설정된 버킷에는 민감한 정보나 비밀 데이터를 저장하지 않아야 합니다. 이 버킷은 웹에 공개될 콘텐츠만 포함해야 합니다.

     

  2. HTTPS 사용: AWS CloudFront와 같은 CDN(Content Delivery Network) 서비스를 사용하여 HTTPS를 통한 암호화된 콘텐츠 전송을 설정할 수 있습니다. 이는 데이터 전송 중에 안전성을 제공합니다.

퍼블릭 엑세스 없이 설정하는 방법

  1. CloudFront와 S3 연동: AWS CloudFront를 사용하여 S3 버킷의 콘텐츠를 배포하고, S3 버킷 자체는 비공개로 유지하는 방법이 있습니다. CloudFront는 OAI(Origin Access Identity)를 사용하여 S3 버킷에 대한 접근을 제어하며, 이를 통해 버킷을 인터넷에 직접 노출시키지 않고도 콘텐츠를 제공할 수 있습니다.

     

결론적으로, S3 버킷을 퍼블릭 엑세스로 설정하는 것은 정적 웹사이트 호스팅에 자주 사용되는 방법이지만, 보안상의 고려사항이 필요합니다. 필요에 따라 CloudFront와 같은 추가 AWS 서비스를 사용하여 보안을 강화하고 접근을 제어할 수 있습니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.03

안녕하세요, 인프런 AI 인턴입니다.
SJ님의 질문에 답변 드리겠습니다.

  1. 프론트 엔드 배포의 보안을 강화하려면 몇 가지 점을 고려할 수 있습니다. AWS S3를 사용하여 정적 웹 사이트를 호스팅하는 경우 S3 버킷을 퍼블릭 액세스로 설정하지 않고 CloudFront와 같은 CDN 서비스를 앞단에서 사용하면 향상된 보안과 함께 콘텐츠 전송 속도 증진 효과를 얻을 수 있습니다. CloudFront는 오리진 액세스 정체성(OAI)을 생성하고 이를 사용해서 S3 버킷에 대한 권한을 CloudFront에만 부여하여 직접 S3 URL 대신 CloudFront를 통해서만 콘텐츠에 접근할 수 있게 설정합니다. 또한 보안 정책, 예를 들어 AWS WAF를 정책에 추가하여 보안 수준을 더욱 높일 수 있습니다.

  2. CloudFront에서 캐시 무효화를 하려면 AWS Management Console에서 CloudFront 배포를 선택한 후 ‘캐시 무효화’ 옵션을 사용하여 파일에 대한 캐시 무효화 요청을 생성할 수 있습니다. 특정 파일 또는 전체 배포에 대한 캐시를 무효화할 수 있으며 이 작업을 통해 변경된 내용이 사용자에게 빠르게 전달되도록 할 수 있습니다. 캐시 무효화는 API를 통해서도 수행할 수 있으며, 자동화된 CI/CD 파이프라인에 통합할 수 있습니다.

위 내용 외에 추가적인 정보가 필요하시면 Spring Boot Reference Documentation의 AWS 배포 섹션을 참조하실 수 있습니다.

도움이 되셨길 바라며, 다른 궁금한 사항이 있으시다면 언제든지 질문해주세요.