본문 바로가기
SK shieldus Rookies 16기

[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(31일차) - 수정 중

by Challenge programmers 2023. 12. 6.

오늘 학습 주제

1. Amazon RDS(Relational Database Service)

2. Amazon S3(Simple Storage Service)

3. 동일 출처 정책 & 교차 출처 리소스 공유(CORS)

4. 웹 서버 구축

 

 

 

 

Amazon RDS(Relational Database Service)


- Amazon RDS -

Amazon RDS
정의 아마존 웹 서비스(AWS)에서 제공하는 완전 관리형 관계형 데이터베이스 서비스
특징
  1. 데이터베이스 엔진: 아마존 RDS는 MySQL, PostgreSQL, MariaDB, Oracle, Microsoft SQL Server와 같은
    여러 인기 있는 관계형 데이터베이스 엔진을 지원하여 응용 프로그램에 가장 적합한 데이터베이스 엔진을
    선택 가능

  2. 자동화된 관리: 데이터베이스 관리 작업을 자동화하여 사용자가 데이터베이스 설정, 패치,백업 및 복원 등을
    쉽게 수행 가능하여 운영 부담을 줄이고 안정적인 환경을 제공

  3. 자동 백업 및 복원: 자동으로 일괄적인 백업을 수행하고, 필요할 경우 이를 사용하여 데이터를 복원 가능

  4. 확장성: 데이터베이스 인스턴스 크기를 조정하거나 여러 가용 영역에 복제본을 생성하여 시스템을 쉽게 확장

  5. 보안: 데이터베이스 인스턴스에 대한 보안을 강화하기 위한 다양한 기능을 제공하며
    VPC (Virtual Private Cloud) 내에서 실행, 데이터베이스 암호화, 네트워크 액세스 제어 등이 포함

  6. 성능 모니터링 및 경고: 데이터베이스 성능을 모니터링하고 사용자가 정의한 임계값을 초과하는 경우
    경고를 발생시켜 성능 문제를 식별하고 해결할 수 있도록 지원

 

 

 

 

Amazon S3(Simple storage Service)


- Amazon S3(Simple Storage Service) -

Amazon S3
정의 업계 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체(=파일) 스토리지 서비스
특징
  1. 데이터 저장 및 관리: S3를 사용하면 거대한 양의 데이터를 안전하게 저장하고 관리 가능하며
    데이터는 객체로 저장되고, 각 객체는 고유한 키(유니크한 식별자)로 식별

  2. 확장 가능성: 높은 확장성을 제공하며 필요에 따라 데이터 저장 용량을 쉽게 조절 가능

  3. 데이터 가용성 및 내구성: 여러 데이터 센터에 걸쳐 데이터를 복제하여 가용성을 높이고 내구성을 확보하여
    데이터의 손실을 방지하고 안전한 데이터 보관을 보장

  4. 버킷 및 객체: 데이터는 S3에서 "버킷"이라는 저장 컨테이너에 저장하고
    각각의 객체는 고유한 키를 갖고 있으며, 이 키를 사용하여 데이터에 액세스 가능

  5. 데이터 전송 및 보안: 데이터를 안전하게 전송하고 저장하기 위해 SSL을 사용하며, 데이터 암호화,
    버킷 정책, 액세스 제어 등 다양한 보안 기능을 제공

  6. 라이프사이클 관리: S3를 사용하면 데이터에 대한 라이프사이클 규칙을 정의하여 자동으로 데이터를 이동하거나 삭제 가능하여 비용을 최적화하고 데이터 관리를 향상시키는 데 도움

  7. 버전 관리: 객체의 버전을 관리하고 이전 버전으로 복원할 수 있는 기능을 제공하여
    데이터의 변경 이력을 추적하고 복구할 수 있도록 도움

 

 

 

 

동일 출처 정책 & 교차 출처 리소스 공유


- 동일 출처 정책(SOP) -

동일 출처 정책
정의 어떤 출처에서 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와
상호 작용할 수 있는 방법을 제한하는 중요한 보안 메커니즘

출처: 프로토콜(예: http, https), 호스트(도메인), 포트로 정의
특징
  1. 스크립트 실행 제한: 웹 페이지의 스크립트가 다른 출처의 스크립트에 접근하는 것을 방지

  2. 쿠키 보안: 쿠키는 동일한 출처에서만 전송되도록 제한되며 이를 통해 다른 출처의 스크립트에서
    사용자의 쿠키에 액세스하는 것을 방지

  3. XMLHttpRequest 제한: XMLHttpRequest와 같은 웹 리소스를 비동기적으로 로드하는 객체의 경우,
    동일 출처 정책이 적용되며 이를 통해 다른 출처에서의 리소스 로딩을 방지하거나 제한 가능

 

동일 출처 정책은 웹 보안을 강화하는 중요한 도구이지만 때로는 웹 개발자가 원하는 리소스 교환을

어렵게 만들 수 있기 때문에, 이를 우회하는 기술이나 메커니즘도 일부 존재

 

 

- 교차 출처 리소스 공유(CORS) -

교차 출처 리소스 공유
정의 동일 출처 정책(SOP)을 우회하여 웹 페이지에서 다른 출처의 리소스에
안전하게 접근할 수 있게 해주는 메커니즘

특징
  1. HTTP 헤더를 이용한 허용 제어:
    • 서버는 HTTP 응답 헤더 중 Access-Control-Allow-Origin을 통해 어떤 출처로부터의 요청을 허용할지
      명시하며, 허용할 출처는 단일 출처일 수도 있고, 여러 출처일 수도 있음
  2. 사전 요청(Pre-flight Request):
    • 일부 복잡한 요청에 대한 사전 검사를 위해 브라우저는 실제 요청을 보내기 전에 사전 요청을 보내며
      사전 요청은 HTTP 메서드가 OPTIONS인 요청으로, 서버가 어떤 메서드와 헤더를 허용하는지를 확인
  3. HTTP 메서드의 안전성과 허용:
    • CORS는 안전한 메서드(GET, HEAD, OPTIONS)에 대해서는 추가 검사 없이 허용하고,
      비안전한 메서드(POST, PUT, DELETE 등)에 대해서는 사전 요청을 통해 서버의 허용 여부를 확인
  4. 쿠키와 자격 증명(Credentials) 관리:
    • 기본적으로 브라우저는 CORS 요청에는 쿠키와 자격 증명 정보를 포함시키지 않지만
      서버에서 명시적으로 허용하도록 설정 가능
  5. 클라이언트 측 설정:
    • 클라이언트에서는 XMLHttpRequest 또는 Fetch API를 사용할 때 특정 헤더나 속성을 설정하여
      CORS 동작을 조절 가능

 

CORS는 웹 애플리케이션이 다른 도메인의 API나 리소스에 안전하게 접근할 수 있도록 하면서도,

보안상의 이슈를 방지하고 안전한 통신을 유지