이제 나머지를 차근차근 설명해볼까 한다.
AWS Cognito와 AWS STS(IAM의 임시 보안 자격 증명)를 활용하여 웹 및 모바일 앱에 대한 인증과 권한 부여, 사용자 관리 서비스를 제공할 수 있다., 기존의 아이디, 패스워드 방식 이외에도 Facebook, KaKao, Google 등 여러 회사의 소셜 로그인 기능을 사용이 가능하다. AWS Congnito에는 User pool과 Identity pool이 있으며, 사용자가 가입하여 User pool에 저장된 정보를 바탕으로 Identity pool에서 사용자에게 AWS 서비스에 대한 권한을 부여하는 방식으로 작동 된다.
이 서비스를 사용하는 고객은 user pool 에 가입하는 형태로 가입할 수가 있고, 이 서비스의 관리자는 identity pool을 통해서 서비스 이용 고객의 권한을 조정할 수 가 있다는 소리다.
IAM 사용자 생성을 통해 IAM은 AWS 리소스를 사용할 수 있도록 사용자에 인증 및 권한부여 서비스를 제공한다.. 그리고, IAM에 MFA를 활성화하여 사용자 이름과 암호 외 인증 수단을 추가하여 계정의 보안을 더 높일 수 있다.
IAM과 congnito가 별개는 아니지만, 위는 관리자의 계정을 의미하는 부분이다.
사용자와 서비스 간에 안전한 통신 인 HTTPS를 지원하기 위해 ACM을 포함시켰다. ACM은 SSL/TLS 인증서를 손쉽게 프로비저닝, 관리 및 갱신하고 CloudFront와 같은 AWS 서비스에 배포할 수 있도록 지원하는 서비스이다.
Aurora와 ElastiCache, S3, S3 Glacier Deep Archive에는 암호화 기능이 제공된다. 그리고 기본적으로 전송 중인 데이터는 SSL을 사용하여 암호화 시켜 보호한다.
Aurora와 ElastiCache의 경우 KMS 기반 암호화(고객 관리키, AWS 관리 키, 유료)를 사용할 수 있다.
Aurora의 암호화 설정은 DB 클러스터 생성할 때 설정해야 되며, 암호화된 DB 클러스터의 암호화를 비활성화 할 수 없으며, 마찬가지로 암호화되지 않은 DB 클러스터를 암호화 시킬 수 없습니다. 따라서, Aurora 암호화의 경우 처음에 고려되어야 하는 요소이다.
S3의 경우 SSE-S3(AWS S3가 관리하는 암호키, 무료)와 SSE-KMS(AWS KMS를 이용한 암호키, 유료), SSE-C(고객이 관리하는 암호키)와 같이 3가지의 방법이 있다. S3의 암호화의 경우 추후 변경이 가능하다. 다만, 암호화되지 않은 데이터가 있는 상태에서 S3의 암호화를 활성화하게 되면, 활성화된 이후 부터 업로드 되는 객체에 대해서 암호화가 적용되기 때문에, 기존의 데이터 또한 암호화 시킬 경우 별도의 과정(암호화 변경)을 통해서 암호화를 시켜야 한다. 그리고 활성화된 암호화를 비활성화 시킬 수도 있습니다. S3 Glacier Deep Archive의 경우 자동적으로 SSE-S3으로 암호화된다.
CloudTrail을 통해 AWS 환경에서 발생한 모든 이벤트들의 log를 통해 사용자의 비인가 된 행위나 침해 시도로 인한 이상징후를 탐지 등 보안 상태 점검이 가능하다. ClouldWatch log에 CloudTrail 이벤트를 전달할 수 있도록 하여 ClouldWatch log와 CloudTrail의 log를 통합할 수 있으며, CloudWatch Alarm을 통해 알람을 받을 수 있다.
Blueprint 아키텍처를 기반으로 여러 환경을 쉽게 관리하고 복제할 수 있도록 하는 것이 AWS CloudFormation이다. AWS CloudFormation은 IaC로, 코드(JSON/YAML)로 정의한 AWS 리소스를 자동으로 프로비저닝을 해주는 서비스이다. 이는 AWS에 구축한 구성을 템플릿화하여 재사용하기 쉽게 해준다.
코드로 AWS 리소스를 정의한 것을 Template이라고 하며, Template를 통해 생성된 AWS 리소스를 Stack이라고 한다. Template과 Stack을 활용하여 AWS 구성을 쉽게 복제 및 삭제할 수 있고, Change Sets을 통해 AWS 리소스의 변경 사항을 추적할 수 있다. 또한 AWS 리소스의 버전 별 관리도 가능하다.
AWS CloudFormation의 별도 사용 요금은 없고, Stack을 통해 사용된 리소스의 가격만 청구되기 때문에 효율적인 가격으로 여러 인프라 환경을 쉽고 빠르게 관리할 수 있다.
AWS CDK를 사용하게 되면, AWS CLI를 사용하여 JSON이나 YAML이 아닌 JavaScript와 Python, Java, C#, TypeScript 기존 개발자에게 익숙한 언어로 코드를 구성하고 AWS CloudFormation을 통해 AWS 리소스 관리도 가능하다.
OpsWork를 통해 장애가 일어난 인스턴스를 새 인스턴스로 대체하는 작업을 자동으로 진행할 수 있다. OpsWork는 CloudWatch를 활용하여 리소스 모니터링을 제공하기도 하고, CloudWatch log도 지원하기 때문에 추후 어떤 장애가 있었고, 어떻게 조치되었는지 확인이 가능하다.
'개인 공부 > 면접 준비' 카테고리의 다른 글
DAY? AWS로 마이그레이션 하기 (0) | 2022.08.30 |
---|---|
DAY? AWS를 활용한 웹 3Tier Architecture_3 (0) | 2022.08.30 |
DAY? AWS를 활용한 웹 3Tier Architecture_2 (0) | 2022.08.29 |
DAY? AWS를 활용한 웹 3Tier Architecture_1 (0) | 2022.08.29 |
DAY? 통신 프로토콜 (0) | 2022.08.28 |