들어가며 AWS 계정 ID는 민감정보로 분류될 수 있을까? 결론부터 말하면 '해당하지 않는다.' 이 이슈는 2022년도에 이미 종결된 이슈이며 AWS 공식 문서에도 정확하게 명시하고 있다. 그럼에도 이 포스팅에서는 발생할 수 있는 위협에 다뤄보려고 한다. AWS Account ID 정의 AWS 공식 문서(https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html)에서는 계정 ID를 다음과 같이 정의하고 있다. AWS 계정을 고유하게 식별하는 12자리 숫자(예: 012345678901)이다. 많은 AWS 리소스는 ARN(Amazon Resource Name)에 계정 ID를 포함한다. 계정 ID 부분은 한 계정의 리소스..
개요 3계층 구조(3 Tier Atchitecture)를 구성하기 위한 필수요소인 DBMS를 구축한다. 모의해킹을 위한 테스트베드를 구축하는데 백엔드를 구성하는 과정에서 최근의 기술을 반영하기 위해 클라우드와 가상화를 이용한다. 구현하는 환경은 다음과 같다. 아무 리눅스 머신에서 명령어를 실행해도 동일한 결과를 기대할 수 있다. 클라우드: AWS(EC2-t3.small) 가상화: podman DBMS: postgre-sql, pgadmin 설정 먼저 podman으로 파드(pod)를 생성한다. 각각의 서비스를 별개로 관리하지 않도록 하나의 가상화 인프라에 둔다. podman pod create --name nextpostgre-sql -p 8080:80 --name 옵션의 경우 pod의 이름을 지정한다. ..
1. 개요 Amazon S3(Simple Storage Service)를 이용한 정적 웹 사이트 배포과정을 설명한다. 2. 서비스 소개 AWS S3: AWS에서 제공하는 객체 스토리지 서비스로, 데이터의 저장 및 검색 기능을 제공한다. 본 포스팅에서는 정적 웹 사이트 호스팅에 사용한다. 3. 필수 구성요소 정적 웹 파일: 배포하기 위한 리소스가 필요하다. HTML, CSS, JavaScript 파일등 웹 사이트를 구성하는 파일 AWS S3 버킷: 웹 리소스 파일을 저장할 S3 버킷 4. 배포 과정 1. 버킷 생성 리전을 선택하고 S3 서비스로 접근한 후 '버킷 만들기' 메뉴를 통해 새로운 버킷을 생성한다. 여기서 AWS Route 53을 이용하여 도메인을 배포할 계획에 있는 경우 도메인 명과 버킷 명을 ..
개요 외부에서 관리하는 도메인을 AWS 도메인 관리 서비스인 Route53에 연결한다. 1. 서비스 소개 AWS Route 53 : AWS의 도메인 네임 시스템(DNS) 웹 서비스로, 도메인 이름 관리 및 트래픽 라우팅을 위한 서비스 외부 도메인 벤더(예: 가비아): 도메인 등록 및 관리 서비스를 제공하는 외부 DNS 벤더이다. 2. 필수 구성요소 도메인 이름: 외부 도메인 벤더에서 구매한 도메인 이름 호스팅 서비스: AWS Route 53을 사용하여 도메인을 호스팅한다. 레코드 세트: DNS 레코드 세트를 구성하여 도메인의 트래픽을 관리한다. 3. 연결 과정 1. (가비아) 가비아에서 도메인 구매 및 관리 메뉴로 이동 2.(AWS) 호스팅 영역 생성 AWS Route 53에서 새 호스팅 영역을 생성하고..
들어가기 AWS lambda는 외부 모듈의 실행을 바로 지원하지 않는다. 로컬에서는 pip install 을 통해 바로 설치 및 실행할 수 있지만 서버리스 환경에서는 실행시점마다 같은 실행 환경을 보장하지 않는다. 함수의 실행 시점에만 인스턴스를 띄워서 지정한 메모리 용량과 시간만큼만 실행한다. Amazon Linux v2 환경에서 동작하는 것으로 보이나 사용자가 시스템 환경까지 많은 부분 관여할 수 없다. 코드만 실행하면 되는 목적으로 사용하기에는 가장 적합한 환경이다. Lambda Layer 람다 레이어를 사용하여 외부 모듈을 로드하여 사용할 수 있다. 다음의 과정을 따른다. 1. 로드할 모듈 로컬에 설치 pip의 옵션을 이용하여 지정한 폴더에 설치한다. -t 옵션은 모듈을 설치할 타겟(폴더)를 지정..
AWS KMS AWS Key Management Service - KMS는 데이터 암호화를 활성화하기 위해 암호화 키를 생성하고 제어할 수 있는 관리형 암호화 서비스이다. KMS는 AWS 서비스 전반과 애플리케이션 내에서 데이터를 암호화할 수 있는 고가용성 키 스토리지, 관리 및 감사 솔루션을 제공한다. KMS는 하드웨어 보안 모듈(HSM)을 사용하여 FIPS 140-2 암호화 모듈 검증 프로그램을 통해 키를 보호하고 검증한다. KMS는 여러 AWS 서비스와 원활하게 통합되어 해당 서비스의 데이터를 쉽게 암호화할 수 있다. AWS CloudTrail과 통합되어 암호화 키 사용 로그를 제공하여 감사, 규정 및 규정 준수 요구사항을 충족할 수 있도록 지원한다. KMS는 regional 하며, 키는 키가 생성..
Bastion Host? 보안 접근을 제어하기 위해 사용되는 중간 단계 호스트이다. 일반적으로 클라우드 환경에서는 인터넷을 통해 직접적인 접근을 허용하지 않고, 보안을 강화하기 위해 네트워크의 외부에서 내부 리소스에 접근하는 데에는 추가적인 계층이 필요하다. Bastion은 이러한 보안 계층의 한 예시이다. Bastion 호스트는 인터넷에 직접 노출되는 공용 IP 주소를 가지고 있으며, 사용자는 bastion을 통해 내부 네트워크에 접근할 수 있다. 일반적으로 SSH (Secure Shell)를 통해 bastion에 로그인한 다음, bastion을 통해 내부 리소스로 접근할 수 있다. Bastion을 운영하는 방식은 다음과 같은 단계로 이루어진다: 1. Bastion 인스턴스 생성: 클라우드 제공업체의 ..
AWS Application Load balancer - ALB 애플리케이션 로드 밸런서는 OSI 7계층(응용 계층)에서 작동하며 하나 이상의 EC2 인스턴스에서 실행되는 여러 서비스 또는 컨테이너의 컨텐츠를 기반으로 라우팅 규칙을 정의할 수 있다. 시간이 지남에 따라 애플리케이션에 대한 트래픽이 변경될 때 로드 밸런서의 크기를 조정한다. 대부분의 워크로드도 자동 확장할 수 있다. ALB에서는 로드 밸런서가 정상적인 대상에만 요청을 보낼 수 있도록 등록된 대상의 상태를 모니터링하는 데 사용되는 상태 검사(health check)를 지원한다. AWS Application Load Balancer Components A load balancer 클라이언트의 단일 연락처 역할을 한다. ALB로 수신되는 응용 ..
AWS Global Accelerator AWS Global Accelerator는 글로벌 사용자에게 애플리케이션의 가용성과 성능을 향상시키는 데 도움이 되는 네트워킹 서비스이다. AWS Global Accerlerator는 애플리케이션에 대한 경로를 최적화하여 패킷 손실, 지터 및 지연 시간을 지속적으로 낮춘다. 첫 번째 바이트 지연 시간(패킷이 클라이언트에서 엔드포인트로 이동했다가 다시 돌아오는 왕복 시간)과 지터(지연 시간의 변화)를 줄이고 공용 인터넷에 비해 처리량(초 단위로 전송되는 데이터 양)을 높여 응용 프로그램의 성능을 향상시킨다. Global Accerlerator는 광범위하고 잘 모니터링되고 혼잡이 없는 중복 AWS 글로벌 네트워크를 사용하여 TCP 및 UDP 트래픽을 사용자에게 가장 ..
CloudFront 배포 상세 가격 정보 CloudFront는 전 세계에 edge location을 가지며, 각 위치에 대한 비용이 다르고 요청을 처리하는 데 드는 비용도 다르다. CloudFront edge location은 지리적 영역으로 그룹화되고, 지역은 가격 클래스로 그룹화 되어 있다. = 가격 등급 - 모든 리전 포함 = 가격 등급(Price Class 200) - 남미와 호주 및 뉴질랜드를 제외한 모든 지역을 포함 한다. = 가격 등급(Price Class 100) - 가장 저렴한 지역(북미 및 유럽 지역) 가격 등급을 선택하여 비용을 절감할 수 있지만, CloudFront는 선택한 가격 클래스 edge location에서만 요청을 처리하므로 성능 저하(대기 시간 증가)가 발생한다. Clou..