개요
- AWS 클라우드는 2002년에 Amazon에서 처음 시작됐다
- 아마존 IT 인프라를 외주를 하는게 어떨까 라는 생각으로 2004년에 SQS를 출시했다
- 2006년에 SQS, S3, EC2가 출시되고 추가 확장되어 유럽, 전세계에 유통중이다

시장점유율
1). Regions
- AWS의 Region은 전세계에 걸쳐있고 가용성을 보장한다
- Regison에는 이름이 있고 ap-east-1, ap-northeast-1 등이 있다
- 대부분 서비스들은 특정 리전에 연결되어 사용한다
- 한 Region에서 어떤 서비스를 이용하다 다른 Region에서 그 서비스를 사용하려고 처음부터 해야한다
- Region을 선택할 때는 정부 지침, 지연시간, Region에서 가능한 서비스 등으로 선택할 수 있다
- Region의 가용영역은 최소 3개 최대 6개까지 있다.
- 하나의 가용영역에는 하나 또는 두개의 개별적인 데이터 센터로 이루어져 있다
- 데이터센터와 가용 영역들은 높은 대역폭의 초저지연 네트워킹으로 서로 연결되어 Region을 형성한다
- 특정 서비스는 Region에 종속되지 않는데 이를
글로벌 서비스라고 한다

IAM
- IAM에서는 사용자를 생성하고 그룹에 배치하는 글로벌 서비스이다
- Root 계정또한 IAM으로 기본적으로 생성되는 계정이다
- 루트 계정을 사용해서도 공유해서도 안되고 사용자를 생성해서 사용하라고 한다
- 사용자들을 Group으로 묶어서 편리하게 관리할 수 있고 권한도 편리하게 줄 수 있어서 Group을 사용하는 것이 좋다

1). 생성
- 비밀번호를 생성할 때 입력하도록 하거나 내가 직접 만들수도 있다
2). 그룹
- 권한을 줄 때는 직접 추가할 수도 있고 그룹을 만들어서 줄 수도 있다

3). 태그
- 태그는 선택사항이고 메타데이터의 역할이다

4). IAM 대시보드
- 대시보드로 돌아가면 Account Id가 있고, Alias가 있고 URL이 있다
- Alias가 없다면 생성을 하고 계정 별칭을 만들면 홈페이지에서 로그인할 때 사용할 수 있다들면 홈페이지에서 로그인할 때 사용할 수 있다
- AccountId 또는 별칭으로 적고 IAM의 이름과 Password를 적으면 된다

5). 정책
- 사용자나 그룹에게 접근하거나 사용할 수 있는 권한을 말한다
- 직접 선택을 하거나 JSON 형식으로 만들어 사용할 수 있다
{
"Version": "2012-10-17",
"Statement": [
{
// Custom으로 만든다면 Visual로 만든건지, Json형태로 만든건지 나온다
"Sid": "VisualEditor0",
// 이 정책이 허용(Allow)인지, 거부(Deny)인지 설정 (여기서는 허용)
"Effect": "Allow",
// 허용되는 API 작업 목록 (IAM 관련 읽기 및 시뮬레이션 관련 API)
"Action": [
"iam:GenerateCredentialReport",
"iam:GenerateServiceLastAccessedDetails",
"iam:Get*",
"iam:List*",
"iam:SimulateCustomPolicy",
"iam:SimulatePrincipalPolicy"
],
// 위에 명시된 모든 작업을 모든 리소스(*)에 대해 허용
"Resource": "*"
// 이런식으로 특정 사용자만 허용할 수도 있다
//"Resource" : "arn:aws:iam::123456789012:user/Alice"
}
]
}
6. MFA
- 사용자와 그룹을 해킹의 위험에서 벗어나도록 할 수 있다
- 이를 위해 두가지 방어 매커니즘이 있다
- 비밀번호 정책 정의: 비밀번호가 강력할수록 계정 보안이 강화된다.
- AWS에서는 다양한 옵션으로 비밀번호 정책을 설정할 수 있다
- 최소 비밀번호 길이를 설정하고 특정 문자 유형을 요구할 수 있다(대문자, 특수문자, 소문자)
- 사용자들이 자신의 비밀번호를 변경하도록 허용하거나 허용하지 않을 수 있고 일정 시간 후에 사용자에게 비밀번호를 변경하도록 만료시킬 수도 있다
- 이미 가지고 있거나 또는 이전에 사용한 비밀번호를 사용하지 못하도록 막을 수 있다
- 다중 인증(MFA)
- AWS에서는 필수이며 사용하기를 강력하게 권고한다
- 비밀번호와 Devide를 통해 로그인을 하도록 한다
- 비밀번호를 해킹당하더라도 MFA가 없다면 로그인할 수 없으므로 안전하다
- 그 종류로는 가상 MFA 장치, 물리적 장치, 패스키가 있다가 있다
7. Role
- AWS 몇몇의 서비스들은 사용자와 마찬가지로 권한이 필요하다
- Role은 User와 같지만 서비스들이 사용하도록 만들어졌다
- 만약 EC2가 AWS 다른 서비스에 어떤 작업을 수행하려고 할 때
Role이 필요한 것이다

1). 사용
- Role을 적용할 서비스를 선택한다
- 권한을 사용할 정책을 골라서 사용한다

AWS 접속
- AWS Management Console
- 사용자 이름과 비밀번호 MFA로 인증되고 보호된다
- 우리가 자주 사용하는 Web기반 Console이다
- AWS Command Line Interface(CLI)
- 컴퓨터에서 설정하고 액세스키로 사용한다
- AWS Software Developer Kit (SDK)
- aws에 애플리케이션 API를 호출할 때 사용되고 액세스 키로 사용한다
- 코딩을 통해 애플리케이션 내에 심어 두어야 한다
1). CLI
- amazon cli를 설치하고 액세스키를 다운받으면 된다
PS C:\Users\fatum> aws configure
AWS Access Key ID [****************DQMH]: AKIAQR5EO6YN5OT3QGOM
AWS Secret Access Key [****************u3T4]: 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
Default region name [ap-northeast-2]: ap-northeast-2
Default output format [None]:
// iam user의 리스트를 가져온다
aws iam list-users
2). 클라우드쉘
- AWS에서 터미널을 통해 명령을 내리는 대신으로 사용할 수 있는 용도이다
- AWS 웹 페이지에서 사용할 수 있다
- 이미 로그인을 해놓은 상태이기 때문에
configure로 로그인할 필요가 없다
- CloudShell도 컴퓨터이기 때문에 저장이 가능하고 안에 있는 파일들을 내보내거나 불러오기를 할 수 있다
