728x90
Amazon Web Service
- AWS의 인프라를 활용하면 사용자는 높은 가용성과 뛰어난 네트워크 접근성을 지닌 애플리케이션을 구축할 수 있다.
- AWS는 기초적인 IaaS부터 높은 수준의 PaaS에 이르기까지 매우 많은 수의 클라우드 서비스를 제공하고 있다.
- AWS의 각 서비스는 다양한 보안 규정을 준수하도록 설계되었으며, 아마존은 이들에 대해 높은 가용성, 보안성, 확장성 등을 보장하고 있다.
- 만약 AWS의 잘못된 서비스 구현으로 인해 보안 사고가 발생한다면, 그 책임은 AWS에게 있다. 그러나 사용자의 잘못된 클라우드 사용으로 인해 보안 사고가 발생한다면, 그 책임은 사용자에게 있다.
핵심 서비스
- 연산
- Amazon EC2 : AWS를 대표하는 IaaS 서비스로, 사용자가 요청하는 사양의 서버를 프로비져닝 해주는 서비스
- AWS Elastic Beanstalk : 사용자가 코드를 업로드하면, AWS가 이를 배포하고 관리해주는 PaaS 서비스
- AWS Lambda : 특정 이벤트가 발생하면, 사용자가 작성한 함수를 실행해주는 서비스
- 스토리지
- Amazon S3 : 객체 스토리지
- Amazon Elastic File System : 파일 스토리지
- Amazon EBS : EC2에 마운트할 수 있는 블록 스토리지를 제공
- 데이터베이스
- Amazon RDS : 관계형 데이터베이스
- DynamoDB : 키-값 데이터베이스
- DocumentDB : 문서 데이터베이스 제공
- 네트워크
- AWS는 사용자가 제어할 수 있는 가상 네트워크 환경으로 VPC를 제공
- 애플리케이션 트래픽을 분산시키는 Elastic Load Balancer (ELB)와 DNS 서비스로 Route 53을 제공
- 거버넌스
- Amazon CloudWatch : AWS 서비스들과 관련된 로그를 수집하고, 시각화해주는 서비스
- 보안
- AWS IAM : AWS 서비스 및 데이터에 대한 RBAC (Role-Based Access Control) 을 제공
- AWS KMS : AWS에서 사용할 암호화키를 관리해주는 서비스로, KMS에 등록한 키로 AWS 스토리지를 암호화할 수 있다.
- AWS Trusted Advisor : 사용자의 애플리케이션을 비용, 성능, 보안, 가용성, 서비스 한도 측면에서 분석하고, 개선해야 할 부분을 제안해주는 서비스
AWS 보안
공동 책임 모델
AWS의 공동 책임 모델은 AWS와 사용자가 공통으로 준수해야 하는 보안 사항, AWS가 책임져야 하는 사항, 사용자가 책임져야 하는 사항으로 구성된다. 사용자와 AWS 모두는 패치 관리, 구성 관리, 인지 및 교육이 잘 이뤄지도록 할 책임이 있다.
- 패치 관리 : AWS는 인프라와 관련된 결함 수정과 패치에 대한 책임이 있으며 고객은 게스트 OS와 애플리케이션 패치에 대한 책임을 갖는다.
- 구성 관리 : AWS는 인프라 디바이스의 구성을 유지 관리하고, 고객은 자체 게스트 운영 체제, 데이터베이스 및 애플리케이션의 구성에 대한 책임이 있다.
- 인지 및 교육 : AWS는 AWS 직원을 교육하고, 고객은 자사의 직원을 교육해야 한다.
AWS 보안의 중요성
보안 문제 | 예시 |
미흡한 키 관리 | 컨테이너 기반 서비스를 개발할 때, 클라우드 API 키를 코드에 포함한 채로 이미지를 빌드하는 경우가 있다. 만약 이렇게 빌드한 이미지를 Docker hub 등에 배포할 경우, 클라우드 키가 도용되어 사용 중인 모든 클라우드 서비스가 공격당할 수 있다. |
취약한 스토리지 접근 제어 | S3는 HTTP를 이용한 RESTful API를 지원한다. 만약 S3 버킷에 대한 접근 권한을 퍼블릭으로 설정할 경우, GET으로 모든 객체가 리스팅될 수 있고, PUT, DELETE 등으로 객체가 조작될 수 있다. |
취약한 데이터 암호화 | 사용자의 개인 정보를 암호화하지 않거나, 암호화에 취약한 암호 알고리즘을 사용할 경우, 데이터베이스가 유출됐을 때 사용자의 개인 정보를 모두 탈취당할 수 있다. 예를 들어, 고객의 비밀번호를 솔트(Salt)없이 해시하여 저장할 경우, 데이터베이스가 탈취당하면 레인보우 테이블로 비밀번호들이 복호화될 위험이 있다. |
취약한 네트워크 보안 설정 | EC2 인스턴스의 네트워크는 사용자가 정의한 VPC 설정으로 제어된다. 온프레미스 시스템에서와 마찬가지로, 내부망과 외부망의 분리, 불필요한 인바운드/아웃바운드 연결 차단 등이 중요하다. 이러한 설정이 미흡하면, 개발 서버가 외부에서 접근될 수 있으며, 리버스 셸 등을 통한 셸 획득 등이 가능해질 수 있다. |
728x90
'Cloud > AWS' 카테고리의 다른 글
[CI/CD] Blue/Green 무중단 배포 - EC2 (0) | 2024.09.18 |
---|---|
[CI/CD] Blue/Green 무중단 배포 - VPC (0) | 2024.09.17 |
[CI/CD] Blue/Green 무중단 배포 - CodeBuild (3) | 2024.09.17 |
[Dreamhack] AWS의 보안 설정(2) (0) | 2024.09.09 |
[Dreamhack] AWS의 보안 설정(1) (0) | 2024.09.01 |
728x90
Amazon Web Service
- AWS의 인프라를 활용하면 사용자는 높은 가용성과 뛰어난 네트워크 접근성을 지닌 애플리케이션을 구축할 수 있다.
- AWS는 기초적인 IaaS부터 높은 수준의 PaaS에 이르기까지 매우 많은 수의 클라우드 서비스를 제공하고 있다.
- AWS의 각 서비스는 다양한 보안 규정을 준수하도록 설계되었으며, 아마존은 이들에 대해 높은 가용성, 보안성, 확장성 등을 보장하고 있다.
- 만약 AWS의 잘못된 서비스 구현으로 인해 보안 사고가 발생한다면, 그 책임은 AWS에게 있다. 그러나 사용자의 잘못된 클라우드 사용으로 인해 보안 사고가 발생한다면, 그 책임은 사용자에게 있다.
핵심 서비스
- 연산
- Amazon EC2 : AWS를 대표하는 IaaS 서비스로, 사용자가 요청하는 사양의 서버를 프로비져닝 해주는 서비스
- AWS Elastic Beanstalk : 사용자가 코드를 업로드하면, AWS가 이를 배포하고 관리해주는 PaaS 서비스
- AWS Lambda : 특정 이벤트가 발생하면, 사용자가 작성한 함수를 실행해주는 서비스
- 스토리지
- Amazon S3 : 객체 스토리지
- Amazon Elastic File System : 파일 스토리지
- Amazon EBS : EC2에 마운트할 수 있는 블록 스토리지를 제공
- 데이터베이스
- Amazon RDS : 관계형 데이터베이스
- DynamoDB : 키-값 데이터베이스
- DocumentDB : 문서 데이터베이스 제공
- 네트워크
- AWS는 사용자가 제어할 수 있는 가상 네트워크 환경으로 VPC를 제공
- 애플리케이션 트래픽을 분산시키는 Elastic Load Balancer (ELB)와 DNS 서비스로 Route 53을 제공
- 거버넌스
- Amazon CloudWatch : AWS 서비스들과 관련된 로그를 수집하고, 시각화해주는 서비스
- 보안
- AWS IAM : AWS 서비스 및 데이터에 대한 RBAC (Role-Based Access Control) 을 제공
- AWS KMS : AWS에서 사용할 암호화키를 관리해주는 서비스로, KMS에 등록한 키로 AWS 스토리지를 암호화할 수 있다.
- AWS Trusted Advisor : 사용자의 애플리케이션을 비용, 성능, 보안, 가용성, 서비스 한도 측면에서 분석하고, 개선해야 할 부분을 제안해주는 서비스
AWS 보안
공동 책임 모델
AWS의 공동 책임 모델은 AWS와 사용자가 공통으로 준수해야 하는 보안 사항, AWS가 책임져야 하는 사항, 사용자가 책임져야 하는 사항으로 구성된다. 사용자와 AWS 모두는 패치 관리, 구성 관리, 인지 및 교육이 잘 이뤄지도록 할 책임이 있다.
- 패치 관리 : AWS는 인프라와 관련된 결함 수정과 패치에 대한 책임이 있으며 고객은 게스트 OS와 애플리케이션 패치에 대한 책임을 갖는다.
- 구성 관리 : AWS는 인프라 디바이스의 구성을 유지 관리하고, 고객은 자체 게스트 운영 체제, 데이터베이스 및 애플리케이션의 구성에 대한 책임이 있다.
- 인지 및 교육 : AWS는 AWS 직원을 교육하고, 고객은 자사의 직원을 교육해야 한다.
AWS 보안의 중요성
보안 문제 | 예시 |
미흡한 키 관리 | 컨테이너 기반 서비스를 개발할 때, 클라우드 API 키를 코드에 포함한 채로 이미지를 빌드하는 경우가 있다. 만약 이렇게 빌드한 이미지를 Docker hub 등에 배포할 경우, 클라우드 키가 도용되어 사용 중인 모든 클라우드 서비스가 공격당할 수 있다. |
취약한 스토리지 접근 제어 | S3는 HTTP를 이용한 RESTful API를 지원한다. 만약 S3 버킷에 대한 접근 권한을 퍼블릭으로 설정할 경우, GET으로 모든 객체가 리스팅될 수 있고, PUT, DELETE 등으로 객체가 조작될 수 있다. |
취약한 데이터 암호화 | 사용자의 개인 정보를 암호화하지 않거나, 암호화에 취약한 암호 알고리즘을 사용할 경우, 데이터베이스가 유출됐을 때 사용자의 개인 정보를 모두 탈취당할 수 있다. 예를 들어, 고객의 비밀번호를 솔트(Salt)없이 해시하여 저장할 경우, 데이터베이스가 탈취당하면 레인보우 테이블로 비밀번호들이 복호화될 위험이 있다. |
취약한 네트워크 보안 설정 | EC2 인스턴스의 네트워크는 사용자가 정의한 VPC 설정으로 제어된다. 온프레미스 시스템에서와 마찬가지로, 내부망과 외부망의 분리, 불필요한 인바운드/아웃바운드 연결 차단 등이 중요하다. 이러한 설정이 미흡하면, 개발 서버가 외부에서 접근될 수 있으며, 리버스 셸 등을 통한 셸 획득 등이 가능해질 수 있다. |
728x90
'Cloud > AWS' 카테고리의 다른 글
[CI/CD] Blue/Green 무중단 배포 - EC2 (0) | 2024.09.18 |
---|---|
[CI/CD] Blue/Green 무중단 배포 - VPC (0) | 2024.09.17 |
[CI/CD] Blue/Green 무중단 배포 - CodeBuild (3) | 2024.09.17 |
[Dreamhack] AWS의 보안 설정(2) (0) | 2024.09.09 |
[Dreamhack] AWS의 보안 설정(1) (0) | 2024.09.01 |