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)에서 제공하는 완전 관리형 관계형 데이터베이스 서비스 |
특징 |
- 데이터베이스 엔진: 아마존 RDS는 MySQL, PostgreSQL, MariaDB, Oracle, Microsoft SQL Server와 같은
여러 인기 있는 관계형 데이터베이스 엔진을 지원하여 응용 프로그램에 가장 적합한 데이터베이스 엔진을 선택 가능
- 자동화된 관리: 데이터베이스 관리 작업을 자동화하여 사용자가 데이터베이스 설정, 패치,백업 및 복원 등을
쉽게 수행 가능하여 운영 부담을 줄이고 안정적인 환경을 제공
- 자동 백업 및 복원: 자동으로 일괄적인 백업을 수행하고, 필요할 경우 이를 사용하여 데이터를 복원 가능
- 확장성: 데이터베이스 인스턴스 크기를 조정하거나 여러 가용 영역에 복제본을 생성하여 시스템을 쉽게 확장
- 보안: 데이터베이스 인스턴스에 대한 보안을 강화하기 위한 다양한 기능을 제공하며
VPC (Virtual Private Cloud) 내에서 실행, 데이터베이스 암호화, 네트워크 액세스 제어 등이 포함
- 성능 모니터링 및 경고: 데이터베이스 성능을 모니터링하고 사용자가 정의한 임계값을 초과하는 경우
경고를 발생시켜 성능 문제를 식별하고 해결할 수 있도록 지원
|
Amazon S3(Simple storage Service)
- Amazon S3(Simple Storage Service) -
Amazon S3 |
정의 |
업계 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체(=파일) 스토리지 서비스 |
특징 |
- 데이터 저장 및 관리: S3를 사용하면 거대한 양의 데이터를 안전하게 저장하고 관리 가능하며
데이터는 객체로 저장되고, 각 객체는 고유한 키(유니크한 식별자)로 식별
- 확장 가능성: 높은 확장성을 제공하며 필요에 따라 데이터 저장 용량을 쉽게 조절 가능
- 데이터 가용성 및 내구성: 여러 데이터 센터에 걸쳐 데이터를 복제하여 가용성을 높이고 내구성을 확보하여
데이터의 손실을 방지하고 안전한 데이터 보관을 보장
- 버킷 및 객체: 데이터는 S3에서 "버킷"이라는 저장 컨테이너에 저장하고
각각의 객체는 고유한 키를 갖고 있으며, 이 키를 사용하여 데이터에 액세스 가능
- 데이터 전송 및 보안: 데이터를 안전하게 전송하고 저장하기 위해 SSL을 사용하며, 데이터 암호화,
버킷 정책, 액세스 제어 등 다양한 보안 기능을 제공
- 라이프사이클 관리: S3를 사용하면 데이터에 대한 라이프사이클 규칙을 정의하여 자동으로 데이터를 이동하거나 삭제 가능하여 비용을 최적화하고 데이터 관리를 향상시키는 데 도움
- 버전 관리: 객체의 버전을 관리하고 이전 버전으로 복원할 수 있는 기능을 제공하여
데이터의 변경 이력을 추적하고 복구할 수 있도록 도움
|
동일 출처 정책 & 교차 출처 리소스 공유
- 동일 출처 정책(SOP) -
동일 출처 정책 |
정의 |
어떤 출처에서 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호 작용할 수 있는 방법을 제한하는 중요한 보안 메커니즘
출처: 프로토콜(예: http, https), 호스트(도메인), 포트로 정의 |
특징 |
- 스크립트 실행 제한: 웹 페이지의 스크립트가 다른 출처의 스크립트에 접근하는 것을 방지
- 쿠키 보안: 쿠키는 동일한 출처에서만 전송되도록 제한되며 이를 통해 다른 출처의 스크립트에서
사용자의 쿠키에 액세스하는 것을 방지
- XMLHttpRequest 제한: XMLHttpRequest와 같은 웹 리소스를 비동기적으로 로드하는 객체의 경우,
동일 출처 정책이 적용되며 이를 통해 다른 출처에서의 리소스 로딩을 방지하거나 제한 가능
|
동일 출처 정책은 웹 보안을 강화하는 중요한 도구이지만 때로는 웹 개발자가 원하는 리소스 교환을
어렵게 만들 수 있기 때문에, 이를 우회하는 기술이나 메커니즘도 일부 존재
- 교차 출처 리소스 공유(CORS) -
교차 출처 리소스 공유 |
정의 |
동일 출처 정책(SOP)을 우회하여 웹 페이지에서 다른 출처의 리소스에 안전하게 접근할 수 있게 해주는 메커니즘
|
특징 |
- HTTP 헤더를 이용한 허용 제어:
- 서버는 HTTP 응답 헤더 중 Access-Control-Allow-Origin을 통해 어떤 출처로부터의 요청을 허용할지
명시하며, 허용할 출처는 단일 출처일 수도 있고, 여러 출처일 수도 있음
- 사전 요청(Pre-flight Request):
- 일부 복잡한 요청에 대한 사전 검사를 위해 브라우저는 실제 요청을 보내기 전에 사전 요청을 보내며
사전 요청은 HTTP 메서드가 OPTIONS인 요청으로, 서버가 어떤 메서드와 헤더를 허용하는지를 확인
- HTTP 메서드의 안전성과 허용:
- CORS는 안전한 메서드(GET, HEAD, OPTIONS)에 대해서는 추가 검사 없이 허용하고,
비안전한 메서드(POST, PUT, DELETE 등)에 대해서는 사전 요청을 통해 서버의 허용 여부를 확인
- 쿠키와 자격 증명(Credentials) 관리:
- 기본적으로 브라우저는 CORS 요청에는 쿠키와 자격 증명 정보를 포함시키지 않지만
서버에서 명시적으로 허용하도록 설정 가능
- 클라이언트 측 설정:
- 클라이언트에서는 XMLHttpRequest 또는 Fetch API를 사용할 때 특정 헤더나 속성을 설정하여
CORS 동작을 조절 가능
|
CORS는 웹 애플리케이션이 다른 도메인의 API나 리소스에 안전하게 접근할 수 있도록 하면서도,
보안상의 이슈를 방지하고 안전한 통신을 유지