AWS(Amazon Web Services)
출처
- Amazon Web Services의 약어로, 아마존닷컴이 제공하는 클라우드 컴퓨팅 플랫폼 이다.
- AWS는 전 세계에 분산되어 있는 데이터 센터에서 고객에게 IT 인프라를 제공하며, 이를 사용하여 고객은 필요한 인프라를 빠르고 쉽게 설정하고 관리할 수 있다.
주요 서비스
- 컴퓨팅: EC2 (Elastic Compute Cloud), Elastic Beanstalk 등
- 데이터베이스: RDS (Relational Database Service) 등
- 스토리지: S3 (Simple Storage Service), EBS (Elastic Block Store)등
- 네트워킹: VPC (Virtual Private Cloud), CloudFront, Route 53 등
- 보안: IAM (Identity and Access Management) 등
Onpremise
- 조직내부에 설치되고 유지보수되는 서버로써, IT 인프라를 담당하는 조직이 새당 서버들을 관리하고 유지보수하는 형태로 조직의 중요한 데이터 혹은 APP을 호스팅하고 보호하기 위해 사용된다.
- 클라우드서비스와 대조적인 형태의 서비스로 데이터센터를 직접 관리하고 사용하는 형태이다.
Region and Availability Zone

-
Region 은 AWS 데이터 센터가 존재하는 물리적 위치를 의미한다. 각 리전은 여러 개의 가용 영역(Availability Zone, AZ)으로 구성되어 있다.
-
가용 영역은 독립적으로 구성이 되며, 네트워크를 통해 통신한다.
-
여러개의 가용 영역을 구성하면서 데이터센터가 재해상황에 빠지더라도 서비스를 유지할 수 있도록 고가용성 을 확보가 가능하다.
고가용성(High Availability) : 시스템이 예기치 않은 장애 또는 중단에도 불구하고 지속적으로 작동하는 능력 말한다.
-
개발자 위치의 기준이 아닌 그 APP이 배포되고 사용됄 곳을 리전으로 지정해야한다.
Identity and Access Management

- AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹서비스(글로벌 서비스)로 사용자, 그룹 및 역할을 생성하고 관리하여 리소스에 대한 접근을 제어가 가능하다.
- 기존 회원가입시 만들어진
Root Account 는 리소스에 대한 권한이 높기에 사용/공유시에 리스크가 크다.
- 별개의 USER 와 GROUP 를 만들어서 접근권한을 명시해주는 것이 안전하게 QWS를 사용할 수 있다.
- 인증: IAM을 사용하여 사용자가 AWS 리소스에 액세스할 때 사용자 이름과 암호를 요청하여 인증할 수 있다.
- 권한 부여: IAM을 사용하여 사용자, 그룹 또는 역할에 대한 권한을 지정할 수 있다. 권한은 AWS 리소스에서 수행할 수 있는 작업을 나타내며 IAM 정책을 사용하여 지정할 수 있다.
- 권한 검증: IAM을 사용하여 사용자가 AWS 리소스에 대한 액세스를 요청할 때 요청이 인증된 사용자에게 허용되는지 여부를 결정할 수 있다. IAM은 권한 검증을 수행하기 위해 사용자가 AWS 리소스에 대한 액세스를 요청할 때 IAM 정책을 적용한다.
Users, Groups, Policies
- user
- AWS 계정에 액세스하는 개별인물 또는 서비스로 각 사용자에 대해 별도의 보안 자격 증명 생성이 가능하다.
- group
- 하나이상의 사용자를 그룹화하여 이들에게 공통적으로 권한을 부여하는데 사용된다.
- Policy
- AWS 리소스에 대한 액세스 권한을 지정하는 데 사용되며, 사용자 또는 그룹과 연결된다.
- JSON 형식으로 작성되며, 허용 또는 거부할 수 있는 작업 및 AWS 리소스에 대한 액세스 수준을 지정하며,
최소권한원칙 을 따라 보안을 강화한다.

- 새로운 유저 계정을 발급 해 줄수 있으며, 자동생성된 암호는 해당유저가 첫 접근시 비밀번호를 지정해줄 수 있도록 사용하는 옵션이다.

- 새로운 유저 계정에 대해 그룹 및 정책등을 상세하게 지정 해 줄수 있다.
Policy Structure
{
"Version": "policy-version",
"Statement": [
{
"Effect": "allow-or-deny",
"Action": ["action-name"],
"Resource": ["resource-arn"],
"Condition": {
"condition-operator": {
"condition-key": "condition-value"
}
}
}
]
}
Version: 정책의 버전을 나타냅니다. 현재는 "2012-10-17" 에서 고정되었다.
Statement: 정책의 규칙을 나타낸다. 배열 형태로 여러 개의 규칙을 작성할 수 있다.
Effect: 규칙의 적용 여부를 나타낸다. "allow" 또는 "deny" 중 하나를 선택한다.
Action: 규칙이 적용되는 작업의 종류를 나타낸다. 예를 들어 "s3:ListBucket"과 같은 형식으로 작성한다.
Resource: 규칙이 적용되는 리소스의 ARN (Amazon Resource Name)을 나타낸다. 예를 들어 "arn:aws:s3:::my-bucket/*"과 같은 형식으로 작성한다.
Condition: 규칙이 적용되는 조건을 나타낸다. 필수는 아니며, 필요한 경우 추가할 수 있다. 다양한 조건 연산자를 사용할 수 있다. 예를 들어 "IpAddress" 조건 연산자를 사용하면 특정 IP 주소에서만 작업을 수행할 수 있도록 제한할 수 있다.
MFA (Multi-Factor Authentication)

- 간단하게 생각하면
2차 인증 으로 생각하면 되며, ID + PW 를 포함하여 로그인정보외에도 스마트폰 또는 하드웨어 보안 토큰 등을 사용하여 구현 된다.
- 루트유저를 포함한 모든 IAM user에도 반드시 적용하는것이 좋다.
