목표
- 복원력 있고 안전하며 가용성이 뛰어난 IT 솔루션을 AWS에서 설계
- Solutons Architect - Associate 자격증 취득
1. 아키텍팅 기본 사항
모범 사례에 따른 클라우드 인프라 구축
ㅇ AWS 서비스 생성 및 관리 도구
- AWS 관리 콘솔
- AWS CLI
- AWS CDK, SDK
- CloudFormaation
ㅇ 비관리형 서비스
- 인프라는 AWS가 관리하지만 인프라에서 발생하는 상황은 고객이 제어
e.g. Amazon EC2
o 관리형 서비스
- 고객은 최적화만 책임
- 데이터 백업, 데이터베이스 복제, 방화벽 구성 기본 구성 단계 단순화 및 자동화
e.g. RDS
ㅇ 서버리스 서비스
- VPC 인프라 내에서 작동하지 않음, 인프라를 관리할 필요 없음
- 엔드포인트 URL로 서비스에 액세스
ㅇ AWS 인프라
- 데이터 센터, 가용 영역, 리전, AWS Local Zones, CloudFront 엣지 로케이션
AWS Local Zones | 엣지 로케이션 |
---|
짧은 지연 시간 | 데이터 캐싱 |
로컬 데이터 처리 | 빠른 콘텐츠 전송 |
일관된 AWS 경험 | 더 나은 사용자 경험 |
2. 계정 보안
AWS 계정 및 리소스에 대한 효율적인 액세스 권한 관리
ㅇ AWS 계정 루트 사용자
- AWS 서비스에 대한 전체 액세스 권한 보유
- 이메일과 암호로 로그인
- 일상적인 상호작용에 사용하면 안됨
-> IAM을 상용해 추가 사용자를 생성하고 최소 권한의 원칙에 따라 권한 부여
ㅇ IAM
- 사용자, 그룹 및 역할을 생성하고 관리
- AWS 서비스 및 리소스에 대한 액세스를 관리
- 액세스 제어 분석, 회사 디렉토리와 통합
-> 정책을 작성하고 IAM 아이덴티티 또는 특정 리소스에 연결하는 방식으로 관리 (대부분 정책은 JSON)
ㅇ 보안 주체
- AWS 리소스에 대한 작업을 요청할 수 있는 권한을 가진 엔티티
- 사용자 또는 서비스일 수 있음
- 사용자 및 서비스가 역할을 수임하도록 허용
- 리소스에 액세스할 수 있는 임시 보안 인증 정보를 부여
- 애플리케이션이 AWS 계정에 액세스하도록 허용하는 프로그래밍 방식 액세스를 지원
ㅇ IAM 사용자
- 각 사용자에게 개별적으로 권한을 할당할 수 있음
- 각 사용자는 자체 보안 인증 정보가 있음
ㅇ 사용자 보안 인증 정보 및 작동 방식
보안 인증 정보 유형 | 용도 |
---|
루트 이메일 및 암호 | 계정 생성 및 해지 (일상 작업용 아님) |
IAM 사용자 이름 및 암호 | 콘솔 액세스 |
액세스 키 ID 및 비밀 액세스 키 | API 및 SDK 통한 AWS CLI 및 프로그래밍 방식 요청 |
MFA | 루트 및 IAM 사용자에 대해 활성화할 수 있는 추가 보안 계층 |
ㅇ IAM 사용자 그룹
- IAM 사용자를 하나 이상의 IAM 사용자 그룹에 할당
- 해당 그룹 모든 사용자에게 적용할 정책 IAM 사용자 그룹에 연결
ㅇ IAM 역할
- 임시 AWS 보안 인증 정보를 제공
- 권한을 특정 사용자 또는 서비스에 위임
- 사용자는 다른 사용자와 보안 인증 정보 공유하지 않고 역할 수임
- 권한은 역할에 따른 작업 수행하는 동안만 유효
ㅇ IAM 정책 할당
- 모든 유형의 IAM 정책을 생성하고 관리하는 도구 제공
- 여러 정책을 하나의 아이덴티티에 연결 할 수 있고, 각 정책에 여러 권한 포함될 수 있음
ㅇ 권한 부여
- 자격 증명 기반 정책 : 사용자, 그룹 및 역할에 할당
- 누가, 어떤 작업을, 어떤 리소스를 대상으로, 어떤 조건에서 수행할 수 있는지
- 리소스 기반 정책 : 리소스에 할당
- 관리형 정책: 독립 실행형 자격 증명 기반 정책
- AWS 관리형 정책: AWS에서 생성하고 관리하는 관리형 정책
- 고객 관리형 정책: 고객이 AWS 계정에서 생성하고 관리하는 관리형 정책
- 인라인 정책: 단일 사용자, 그룹 또는 역할에 직접 추가하는 정책, 엔티티간 엄격한 일대일 관계, 아이덴티티 삭제하면 인라인 정책도 삭제
ㅇ 정책 요소
| 설명 | 필수 |
---|
Effect | 정책에서 액세스 허용, 거부 여부 Allow 또는 Deny로 표시 | ㅇ |
Principal | 계정, 사용자, 역할 또는 페더레이션 사용자로 액세스 허용, 거부 표시 (리소스 정책) | |
Action | 정책이 허용하거나 거부하는 작업 목록 포함 | ㅇ |
Resource | Action이 적용되는 리소스 목록을 지정 | ㅇ |
Condition | 정책에서 권한 부여하는 상황 지정 | |
ㅇ IAM 정책 평가되는 방법
- 명시적으로 거부되어 있는가? -> 명시적으로 허용되어있는가?
ㅇ 페더레이션 사용자
- AWS 계정이 없는 사용자 또는 어플리케이션
- 역할을 할당하면 제한된 시간 동안 AWS 리소스에 대한 액세스 권한을 부여 가능
- 외부 서비스로 인증할 수 있는 AWS 외부 사용자가 있는 경우 유용
- 자격 증명 공급자: IAM 사용자 생성하는 대신 IdP 사용가능, 외부 아이덴티티 관리할 수 있음
ㅇ AWS Signle Sign-On
- 모든 AWS 계정의 액세스 및 사용자 권한을 중앙에서 관리할 수 있음
ㅇ AWS Organizations 사용
- 계정을 조직 단위(OU)로 그룹화하여 계층 구조를 생성 (중앙 집중식 관리)
- SCP 적용 -> OU 내 모든 계정이 SCP에 의해 바인딩 됨
- 통합 과금 방식의 장점을 활용
- 최종 일관성을 갖춘 데이터 복제
ㅇ IAM 정책이 SCP와 상호 작용하는 방식
- SCP는 조직의 권한을 관리하는데 사용하는 조직 정책 유형
- SCP는 IAM 권한과 SCp의 교집합만 허용
- 권한을 부여하지 않고 필터 역할을 함