Cloud 기본과 IAM
Cloud 는 컴퓨팅 자원을 local (on-premiss) 이 아닌, 컴퓨팅 자원 대여업을 하는 다른 3자에게서 빌려 쓰는 것을 말한다.
AWS 는 이런 컴퓨팅 자원을 Region, Available Zone (AZ) 단위로 나눠서 서비스한다.
세계 각 지역에 Data Center 의 집합인 Available Zone 이 있고 Available Zone 이 모여 Region 을 구성한다.
또 CloudFront 라는 CDN 서비스를 위한 Low latency network 로 Edge Location 이 있다.
서비스는 Global Service 와 Regional Service 로 나뉘는데 IAM, Route53, CloudFront, WAF 등이 Global Service 이고 EC2, Lambda 등 대다수의 서비스가 Regional Service 이다.
이중에서도 IAM 을 정리해보았다.
IAM(Identity and Acess Manager) 는 AWS 전반의 권한을 관리하기 위한 서비스이다.
맨 처음 계정을 생성하면 받는 Root Account 가 있고 IAM 을 통해 User, Group, Role 등을 생성할 수 있다.
User 는 AWS 를 사용하는 각각의 유저에 대응한다.
Group 은 그 User 들을 묶어서 관리하는 단위이다. Group 은 Group 을 포함할 수 없다.
Role 은 User 가 아닌 Service 에 부여하는 역할이며 Policy 들로 구성되어있다.
Policy 는 User 나 Group 에 부여하는 권한이다. JSON document 로 되어있으며 구성은 다음과 같다.
Version, Id, Statements
Statements 는 다음으로 구성되어있다.
Sid, Effect, Principal, Action, Resource, Condition
Effect 는 Allow / Deny 를 구분한다.
Principal 은 요청이 허용, 거부되는 주체를 제한한다.
Action 은 어떤 요청인지를 특정한다.
Resource 는 어떤 대상에 대한 요청인지를 특정한다.
Condition 은 해당 Statement 가 적용되는 조건 (IP 등) 을 제한한다.
AWS 에서 서비스에 접근하는 방법은 3 가지가 있다.
AWS Management Console : 웹 기반 Interface 이며 Id, Password 를 사용한다.
CLI : Terminal 에서 접근할 때 사용하며 각 User 가 가지는 Access Token 을 사용한다.
SDK : Software Development Kit 의 약자로 코드 단위에서 접근할 때 사용하며 Access Token 을 사용한다.
이 중 Console 을 이용할 때 보안을 강화하기 위해 휴대폰 등의 기기에서 2차 인증 코드를 발급받는 Multi Factor Authentication(MFA) 을 사용할 수 있다.
terminal 비슷하게 AWS Management Console 에서 제공하는 CloudShell 을 이용할 수 있으며 따로 Access Token 이 필요없다.
이런 IAM 의 보안을 위해 IAM Credential Report , IAM Access Advisor 를 사용하여 보안을 점검할 수 있다.
IAM Credentail Report 는 Account level
IAM Access Advisor 는 User level 이다.
마지막으로 User 의 password policy 를 커스톰화할 수 있다.
암호 길이, 특수문자, 변경 가능 여부, 만료기간, 재사용 금지 등을 설정할 수 있다.