AWS 글로벌 인프라의 이해
- 재해 복구, 성능 최적화 등에 해당 지식이 중요함
리전(Region)
- 데이터 센터를 클러스터링 하는 물리적 위치 (서울 리전 ap-northeast-2, 홍콩 리전)
- 전세계 주요 국가에 위치
- 1개 AWS Region은 2개이상의 가용 영역으로 구성
- 대부분의 AWS 서비스는 Region을 선택하여 시작(ex. EC2 서비스 생성 시, 서울 Region을 선택)
- Region을 선택하지 않는 글로벌 서비스도 존재(ex. IAM 서비스)
- 재해복구(DR) 설계 = 2개 이상의 Region에 시스템을 배치
가용 영역(AZ,Availabiltiy Zone)
- 하나 이상의 개별 데이터 센터
- 서울 Region이라고 할 때, 서울 북서 AZ, 남서 AZ...
- 가용 영역끼리는 물리적으로 떨어져 있고 고속 네트워크로 연결 됨
- 고가용성 설계 : 다중 AZ
* ex. EC2 서비스 생성할 때, Region과 함께 가용 영역까지 선택했을 경우 해당 가용영역에 있는 데이터 센터에 EC2 인스턴스를 생성시킬 수 있다.
데이터 센터
엣지 네트워크(Edge Location)
- 엣지 로케이션에 콘첸트(데이터)를 캐싱하여, 사용자에게 더 짧은 지연 시간으로 콘텐츠를 전송
- 사용자가 콘텐츠를 요청하면 서버가 있는 리전의 오리진에서 전송(일반적인 전송)
- 최초 사용자가 콘텐츠를 요청하면 서버가 있는리전의 오리진에서 엣지 네트워크로 전송, 가까운 엣지 네트워크에서 콘텐츠를 전달 받음
(엣지로케이션 방법)
- Region이 없는 곳도 엣지 로케이션이 존재하여 빠르게 접근 가능
- 엣지 로케이션과 Region과는 고속네트워크로 연결되어 있음
IAM 개요
- AWS 계정 및 권한 관리 서비스
- AWS 서비스와 리소스에 대한 액세스 관리
- 사용자, 그룹, 역할, 정책으로 구성
- 리전에 속하는 서비스가 아닌 글로벌 서비스
- 계정 보안 강화를 위해
* 루트 계정(AWS 회원가입 시 만들어지는 계정)은 최초 사용자 계정 생성 이후 가능하면 사용하지 말것
* 사용자 계정(IAM 계정)으로 서비스를 사용하고 사용자는 필요한 최송한의 권한만 부여 권장
* 루트 계정과 개별 사용자 계정에 대한 MFA 적용 권고
* 계정 비밀번호 복잡한 길이 지정하도록, 30일마다 비밀번호 변경할 수 있도록 암호정책 설정 권장
IAM 액세스 관리
- 사용자 (사람, ID, 계정)
- 그룹 (사용자의 모음, 재무팀, 개발팀)
- 역할 (AWS 리소스에서 사용하느 자격증명, EC2에서 다른 리소스에 접근하기 위해 사용되는 권한을 정의해 둔 것)
- 정책 (사용자, 그룹, 역할에 대한 권한 정의, 어떤 것을 할 수 있고, 어떤 것을 할 수 없는지 정의, JSON 문서형식)
-> 정책은 사용자, 그룹, 역할과 서로 엮어서 사용하는 방식으로 사용된다.
-> Full 권한을 가진 정책은 AdministratorAccess
IAM 유저, 그룹 실습
- 암호정책 > 비밀번호 패턴, 비밀번호 변경 주기 설정
- 보안자격증명 > MFA 활성화 > 가상 MFA > QR 코드 > 크롬 확장 또는 스마트폰 사용
- 사용자 > 사용자 추가 > 사용자명 지정 > AWS 자격 증명 선택(액세스키 체크, 암호 체크, 콘솔 비밀번호 입력) > 권한 설정 > csv 파일 다운로드
- 그룹 생성 후, 정책을 여러개 할당한 후, 해당 그룹을 사용자에게 포함시켜주면 사용자는 해당 권한을 갖는다.
- IAM 사용자의 경우, 계정 별칭(12자리 숫자) 또는 계정 별칭(텍스트)
IAM 정책 실습
IAM - 정책
- AWS 리소스에 대한 액세스 권한을 정의한 것
- 사용자, 그룹, 역할에 정책을 연결하여 사용
- JSON 문서 형식으로 이루어짐
- 정책이 명시되지 않는 경우, 기본적으로 모든 요청이 거부됨
- JSON 문서구조 : Statement 상위 컬럼
- Effect : Statement에 대한 Access 또는 Deny
- Action : 권한에 대한 작업 목록
- Resource : 권한이 적용되는 리소스
- Condition : 정책이 적용되는 세부조건(옵션사항)
IAM - JSON 정책 구문
{
}
- Lambda 서비스에 대한 Access 정책이 명시
- 기본적으로 모든 권한을 허용(ex. Action : { lambda: * })
- 모든 자원을 대상(ex. Resource: * )
- 특정 IP 네트워크로부터의 함수 생성과 함수 삭제는 권한이 거부됨(ex. Condition: { IpAddress: "..."})
- 특정 Region일 경우, 권한/허용
IAM - 권한 경계(Permission Boundary)
- 최대 권한을 제어하는 기능이다.
-> 만약 AdministratorAccess과 아래의 정책이 중첩된 사용자의 경우, AdministratorAccess를 가지게 되는 것이 아니라, 겹치는 부분의 권한만 가지게 된다.
-> FullAccess와 ReadOnly 권한이 중첩되면, ReadOnly 권한이 적용된다.
- 권한 경계 기능은 IAM 콘솔에서 제거 가능하다.
{
Version: "...",
Statements : {
Effect: "Allow",
Action: [
"s3:*",
"ec2:*"
],
Resource: "*"
}
}
- 위와 같이 정책을 정의할 경우, s3, ec2 서비스만 FullAccess(CRUD)가 가능하다.
- IAM 사용자 콘솔의 권한 추가 탭에서는 쉽게, 리소스에 대한 XXXFullAccess / XXXReadOnly 형태의 권한을 쉽게 추가할 수 있도록 되어 있다.
- XXXReadOnly의 경우 Action에 ..Describe로 끝난다.
IAM - 역할
- AWS 리소스에서 사용하는 자격증명
- 특정 AWS 리소스가 다른 AWS 리소스에 액세스 하여 작업을 수행할 때 필요한 권한
- 정책을 연결하여 IAM 역할에 작업 수행에 필요한 권한 부여
예를 들어, AWS EC2 Instance 내의 어플리케이션이 Amazon S3와 Amazon RDS에 CRUD하고 싶을 때(기본적으로 접근 불가)
AmazonS3FullAccess와 AmazonRDBFullAccess 정책을 가진 Role을 신규 생성
(생성 시, 접근을 진행할 리소스와 접근 될 리소스들에 대한 CRUD 권한 정책들을 매핑해주어야 함)
(예를 들어, EC2 Instance를 선택 후, AmazonS3FullAccess와 AmazonRDBFullAccess 정책을 매핑하여 생성)
Role 생성 후, EC2 Instance로 이동하여 IAM Role 속성에 지정해주어야 함
IAM - 역할 (신뢰 정책, 신뢰 관계)
- IAM 역할을 사용하여, AWS 계정 간 엑세스 권한을 위임하는 기능
- 신뢰 정책을 사용하여 다른 AWS 계정에 역할을 위임할 수 있음
'[CDS] Cloud Service > AWS' 카테고리의 다른 글
[AWS] Aws devops professional 자격증 준비하기 (0) | 2023.02.06 |
---|---|
[AWS] 2주차 공부 - 컴퓨팅(EC2) (0) | 2022.11.29 |
[AWS] Serverless Lambda (0) | 2022.06.07 |
[AWS] Iot FleetWise 이론 및 학습 (0) | 2022.03.24 |
[AWS] 서버리스(Serverless)란? (0) | 2021.07.06 |
최근댓글