UDEMY 강의
를 듣고 남기는 AWS에 대한 짤막한 개요.
1. AWS는 클라우드 서버를 제공하는 서비스이다.
클라우드의 강점
- 물리적인 서버와의 차이 : 구매/매몰비용 적음, 빠름, 운영비용 (쿨러/전기/공간등 비용) 적음
- 물리서버 구매보다 압도적으로 빠르게 원하는 서비스/서버를 구매/사용할 수 있음.
- 각종 세팅 필요 없음.
서비스의 의미
-
필요한 항목별로 서비스가 나누어져 있음 -> 인프라, 플랫폼, 소프트웨어

-
서비스 세부적으로 들어가면, 옵션들이 나누어져 있음 -> CPU, RAM, 하드웨어, 사용기간, 선불/후불,... 등등
-
물리적인 거리 때문에 불편함이 발생하지 않도록 지역 (아시아, 미국, 유럽,아프리카, ..) 별로 서버가 분리되어 있음. 지역마다 또 Availablility Zone 이라는 이름으로 분리된 데이터 센터에 데이터를 안전하게 보관함.
2. IAM
의미
Identity + Access + Manager
Identity
- 사용자, 그룹을 구분한다.
루트계정
- 루트 계정은 모든곳에 접근 가능한 최상위 계정
- 루트 계정에서 User 계정을 생성하거나, 설정을 setup하는 데에만 쓰여야 하는(권장) 계정
일반 계정
- user는 여러 그룹에 중복으로 소속될 수 있음.
- 각 user와 그룹은 정책(Policy)가 할당될 수 있다.
(*policy는 권한(Permission)에 대해 설정하는 문서라고 볼 수 있다.)
(권한: 어느 서비스의 어떤 객체에 대해 접근 가능한지)

Access
- 정책은 하나하나 규칙을 새로 만들 수도 있고, "정책 객체"를 만들어서 다른 권한에 포함시키거나 user에게 해당 권한을 제공할 수 있음.
- 정책은 JSON 형태로 만들어짐.

이 이미지를 보면 아래와 같이 코드가 되어 잇는 것을 볼 수 있는데, 정책 세부내역은 객체로 만들지 않고, "ARN 연산자"를 사용함.
Principal :
( "AWS" :
["arn:partition:service:region:account:resource"] )
사용자 : user, 그룹 : group, 권한 : policy
IAM 정책 상속
- A 그룹에 있는 3명은 A 그룹의 정책을 따른다.
- B 그룹에 속해있는 2명은 B 그룹의 정책을 따른다. (A그룹의 정책과 별도)
- 아무 그룹에 속해있지 않은 사용자는, 모든 사용자가 따르는 "inline 정책" 만을 따른다.
- 여러 그룹에 속해있는 경우, 여러 그룹의 정책을 모두 상속한다. 이 그룹들에 대한 정책은 "AND"가 된다.
정책(Policy)의 구조
- 포함내용 : 버전, ID(정책 구분용 id, 선택사항), 선언(구체적인 내용, 필수)
선언의 내용
- Sid: Statement ID -> 선언의 ID (선택사항)
- Effect : 이 선언이 허용(Allow) 하는지 차단(Deny)하는지 여부
- Principal: 계정/사용자/역할(account/user/role) 중 어떤 것에 적용될지 여부
- Action : 정책에 허용/차단 당했을 때, 어떤 행동을 취할지에 대한 목록
- Resource : Action이 적용될 자원(EC2인스턴스, S3 버킷/객체 등)의 목록
- Condition : 정책이 허용되거나 되지 않는 경우, 혹은 조건부의 경우

잠깐! 여기에서 나오는 텍스트의 내용중 많이 보이는, "arn:aws:.."란?
ARN = Amazron Resource Name을 뜻한다.
컴퓨터에서 파일의 위치를 표현하기 위해
"경로,디렉토리,파일명/파일이름.확장자" 를 사용하는 것처럼, AWS에서는 특정 경로를 자신들만의 방식으포 표현하는 것.
arn:partition:service:region:account:resource
- arn : 기본 형식
- partition : 리소스가 위치하는 파티션. 표준 AWS 지역에서 파티션은 AWS임
- service : IAM 리소스는 항상 iam 이 된다.
- region : IAM 리소스는 항상 공백이 된다.
- account : 하이픈이 없는 AWS 계정 ID
- resource : 특정 리소스 이름