여기 정리하는 내용들은 Udemy 강의를 통해 배운 내용들을 정리하였습니다.
출처 - Udemy AWS Certified Developer Associate 2022 - New!
AWS 글로벌 인프라
1. AWS Regions
Region은 data ceters의 집합체이며 이 Region을 중심으로 다른 대부분의 AWS 서비스들이 존재합니다.
특징
데이터가 permission없이 이동하지 않는다.
latency를 줄일 수 있다.
Region마다 사용가능한 서비스가 다를 수 있다.
Region마다 서비스간의 가격차가 있다.
2. AWS Availability Zones(AZs)
AZs 는 서로 멀리 떨어져 있으며, 각 AZ는 여러 데이터 센터로 이루어져 있습니다.
AZs는 Region안에 존재한다. (최소 2개, 최대 6개, 보통 3개)
어느 한 AZ의 데이터 센터가 사용이 불가하게 되면 같은 Region의 다른 AZ의 데이터 센터로 대체할 수 있습니다.
3. Edge Locations/Points of Presence
가장 lowest latency로 데이터를 제공하기 위해 만들어진 데이터 센터라 할 수 있을 것 같습니다.
아직 사용해보거나 경험해보지 못한 서비스라 후에 더 자세하게 설명할 수 있는 기회가 있다면 좋겠습니다.
AWS 사용법
- AWS Management Console
- AWS CLI - Access key 필요
- AWS SDK - Access key 필요
Access Key 발급 방법
AWS Conosle > 우측 상단 메뉴 > 계정 클릭 > Security credentials 클릭 > Access keys 클릭 > Create New Access Key 클릭 (2022.03.16 기준)
AWS IAM(Identity and Access Management)
Global service
글로벌 서비스로 특정 Region에서 설정할 필요가 없습니다. (사실 Region을 선택도 할 수 없었다.)
Global
글로벌로 제공되는 AWS 서비스의 예시
- IAM
- Route 53(DNS service)
- CloudFront( Content Delivery Network)
- WAF (Web Application Firewall)
Root user와 IAM user의 차이
- Root user는 모든 권한을 가진 계정이고 (절대 다른 사람에게 공유되어서는 안된다.)
- IAM user는 Root user에 의해 생성된 하위 계정이라고 볼 수 있을 것 같습니다..
가급적 Root 계정은 사용을 줄이고 IAM 계정에 특정 권한들을 부여하여 사용하는 것이 좋다.Root 계정은 계정 설정(IAM포함)을 제외하고는 쓰지 않는것이 좋을 것 같습니다.
Group
IAM계정을 Group에 지정할 수 있습니다. (필수 사항은 아닙니다.)
한 계정이 여러 Group에 속할 수 있습니다.
Group안에 Group을 넣을 수는 없습니다.
Permissions
Permissions - policies를 부여한 Json document입니다.
Group or User는 이 Permissions에 부여된 Action안에서 접근 권한을 갖습니다.
least privilege principle
한 User에게 필요한 permissions보다 더 많은 권한을 주지 말라
한 계정이 여러 Permissions를 받을 수 있습니다.
Permissions는 Roles에 부여하여 계정에 전달되는 형식이 좋습니다.
- 구조
{
"Version" : "연-월-일"
"Id" : "id" (optional)
"Statement" :
[
{
"Sid" : "Statement id",
"Effect" : "Allow/Deny",
"Principal" : "policy가 적용될 계정/user/role",
"Action" : [
"서비스 Action 리스트","여러개 가능"
],
"Resource" : "Action 대상",
"Condition(optional)" : "condition"
},
{
여러 Statement 가능
}
]
}Password Policy
가장 기억에 남는 것은 MFA(Multi Factor Authentication)입니다.
보통 입력 하는 password에 다른 device에서 주는 code를 입력하는 형식이라고 볼 수 있겠습니다.
게임 하다보면 OTP이런거 사용하는데 비슷한 느낌입니다.
부가적으로 보안을 위해 U2F Security Key, Hardware key Fob등이 있습니다.
IAM Role
Set of permissions라고 할 수 있겠습니다.
처음에는 왜 Role이 필요하지? permissions 있잖아? 라고 생각했는데요.
한 계정에 여러 permissions가 필요할 경우 하나하나 지정해주기 힘든데
Role에 한번 지정해두면 여러 계정에 한번에 적용하기가 용이합니다.
Security Tools
- IAM Credentials Report (계정 단위)
- 모든 계정의 credentaial 정보 리스트
- IAM Access Advisor (유저 단위)
- 한 계정에 부여된 service permissions
IAM을 왜 사용하는가?
IAM을 사용하면 계정 관리가 편하다. 보안 걱정도 덜 수 있습니다.