IAM
- Identity Access management IAM에서는 사용자를 생성하고 그룹에 배치
- 글로벌 서비스라 리전을 선택하지 않는다
- 사용자와 그룹이 글로벌 관점에서 생성됨
- 루트 계정을 만들때 기본으로 생성되지만 루트 계정은 사용해서도 안되고 공유해서도 안된다
- 루트 계정은 모든 권한을 갖고 있기 때문에 위험한 계정이 될 수 있다 → 별도의 관리자 계정을 만듦
- 대신 사용자를 생성해야한다
- IAM에서 사용자를 생성할 때 하나의 사용자는 조직내에 한 사람으로 해당됨
- 필요하다면 그룹으로 묶을 수도 있다.
- 그룹에는 사용자만 배치가능 다른 그룹을 배치할 수 없다
- 그룹이 없는 사용자도 있지만 추천하는 방식은 아님
- 유저는 다수의 그룹에 속할 수 있다.
- 사용자와 그룹을 사용하는 이유
- AWS에서는 모든 사용자에게 모든 것을 허용하지 않는다
- 최소 권한의 원칙(least privilege principle) → 필요로 하는 것 이상의 권한을 주지 않는다
- 세 개의 서비스에 접근해야한다면 세 개의 서비스만 접근 허용
- Tag로 사용자의 접근을 추적, 조직, 제어할 수 있다
- 이후 루트 계정 로그인이 아닌 IAM 사용자로 로그인할 수 있다.
- AdministratorAccess는 루트랑 별 차이없다
IAM 정책
- 정책을 그룹 레벨로 정의할 수 있다.
- 그룹에 속하지 않는 사용자는 인라인 정책을 생성할수 있다.
- 그룹에 속해있든 아니든 원하는 사용자에게 인라인 정책 상속 가능
- 정책 구조와 정책 명명법에 대해서 잘 이해가 필요
- JSON Document
- 정책 구조 요소
- 버전 숫자를 포함 2012-10-17 정책 언어 버전
- 식별 ID도 있지만 선택사항
- Statement
- Sid - 문장의 식별자
- Effect - 특정 API에 접근하는 걸 허용하는지 거부하는지 (allow, deny)
- Principal - 특정 정책이 적용될 사용자 계정 역할로 구성
- aws:iam:12312313:root ← 이런 형태로 구성됨
- Action - effect에 기반해 허용 및 거부되는 api 목록
- Resource - action이 적용될 리소스의 목록
- Condition - statement가 언제 적용될지 나타내는 것이 있다.
- 정책 구조 요소
- JSON Document
IAM 정책 실습해보기
AdministratorAccess → 이런 구조로 되어있다는 것만 참고할 것
정책을 직접 설정할 수도 있다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:GenerateCredentialReport",
"iam:GenerateServiceLastAccessedDetails",
"iam:Get*",
"iam:List*",
"iam:SimulateCustomPolicy",
"iam:SimulatePrincipalPolicy"
],
"Resource": "*"
}
]
}
IAM 그룹 사용자과 사용자들의 정보 침해 보호
두 가지 메커니즘이 있다
비밀번호 정책의 정의
- 비밀번호가 강력할수록 계정의 보안이 강해짐
- 다양한 옵션을 이용해 비밀번호 정책의 생성이 가능
- 최소 길이, 소문자 대문자 갯수. 특수문자 등 요구가능
- 비밀번호 변경 허용 또는 금지 가능
- 일정시간이 지나면 비밀번호 만료시킬 수 있다
- 재사용 금지 가능
Multi Factor Authentication 다요소 인증 - MFA (시험을 위해 알아두어여함)
AWS에서는 이 메커니즘을 필수 사용 권장
- 루트 계정은 무슨 일이 있어도 반드시 보호
- 전체 IAM 사용자들도 보호를 해야한다
- 비밀번호 외에 MFA 장치를 사용
- MFA란?
- 알고 있는 비밀번호 + 가지고 있는 보안장치를 함께 사용하는 것
- Password+ MFA Token 물리적 장치
- 비밀번호를 해킹당해도 계정 소유자에 물리적 장치를 가져가야함
- MFA 장치 옵션
- Virtual MFA device
- google authenticator(폰에서만 사용가능)
- Authy(멀티 디바이스)
- 원하는 수만큼의 계정 등록 가능
- 하나의 디바이스에서 멀티플 토큰을 지원 → 일반적인 OTP라고 생각하면 될듯
- U2F - Universal 2nd Factor Security KEy
- Yubico - AWS의 제 3자 회사
- 물리적 장치 - USB gudxodla
- 하나의 보안 키로 다양한 유저 지원
- Hardware key Fob MFA
- AWS GovCloud
- Virtual MFA device
- MFA란?
MFA 실습해보기
Authy → aws가 아니더라도 github 등 웹 서비스 중 보안이 중요한 곳에서 많이 사용됨
AWS 엑세스
- AWS 콘솔 → 사용자 이름 및 비밀번호 MFA로 보호
- CLI로 접근 → 컴퓨터에서 설정 엑세스 키에 의해 보호됨
- AWS SDK → 엑세스 키로 보호됨
- 특정 언어로된 API
- 프로그래밍을 위한 엑세스 가능
- 터미널에서 사용하는게 아닌 코딩을 통해 서비스로써 삽입하는 것임
- 다양한 프로그래밍 언어를 지원
엑세스 키는 비밀번호와 같다. 절대 공유되면 안됨
'TIL > AWS' 카테고리의 다른 글
EC2 - SAA Level (1) | 2023.05.17 |
---|---|
AWS SAA를 위한 EC2 공부하기 (2) (0) | 2023.05.15 |
AWS SAA를 위한 EC2 공부하기 (1) (1) | 2023.05.15 |
AWS IAM이 무엇인지 공부하고 실습하기(2) (0) | 2023.05.13 |
AWS 시작하기 (0) | 2023.05.10 |