[AWS] Identity and Access Management : IAM

Cherry·2024년 3월 30일
0

IAM이란 무엇인가?

IAM의 풀 명칭은 Identity and Access Management으로 AWS 리소스를 안전하게 제어할 수 있도록 AWS 계정과 리소스의 권한을 관리하는 AWS의 글로벌서비스이다. IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어해준다.

  • 루트계정은 디폴트값으로 생성되며 보안에 취약하기 때문에 사용되거나 공유되면 안된다
  • User(사용자): 자신의 organization에 포함되어 있는 사람(계정)
  • Groups: 여러개의 user 포함
  • user는 group에 속하지 않아도 되며 반대로 여러개의 그룹에 포함되어도 된다

IAM Roles

일부 aws 서비스는 나를 대신하여 작업을 수행해야 하는데 이를 위해 aws role을 사용하여 aws 서비스에 권한을 할당할 것이다. 이 Role은 다양한 엔티티에 부여할 수 있어 user와 굉장히 비슷한 개념이다.

사용예시

  • EC2 Instacne Roles
  • Lambda Function Roles
  • Roles for CloudFormation

IAM Role vs User

한마디로 사람이고 영구적이라면 user를 사람이 아니거나 사람이지만 일시적인작업을 할때 role을 사용하면 된다.

IAM: Permissions

User 또는 Groups에 Policies이라는 JSON document를 할당할 수 있다. AWS에서는 사용자가 필요로 하는 최소한의 권한만을 허용한다.

전체 구성

  • Version: policy language version
  • ID: identifier for the policy(선택)
  • Statement: one or more individual statements(필수)

Statements 구성

  • Sid: identifier for the statement(선택)
  • Effect: whether the statement allows or denies access
  • Principal: account/user/role to which this policy applied to
  • Condition: conditions for when this policiy is in effect(선택)

IAM Policy Statement Priority (우선순위)

  1. 명시적 거부: 요청에 대한 모든 정책에서 Deny 를 발견하면 거부
  2. 명시적 허용: 요청에 대한 모든 정책에서 Allow를 발견하면 허용 (요청에 대한 모든 정책에 Deny가 없으면)
  3. 묵시적 거부(Implicit Deny) : 요청에 대한 모든 정책에서 Allow를 발견하면 허용

Multi Factor Authentication (MFA)

루트 사용자와 IAM 사용자를 보호하기 위한 다중인증 기능이다. 비밀번호를 해킹당해도 계정이 보호될수 있다.
MFA = Password you know + security device you own

보안 장치
▪ 가상 MFA 기기 (Google Authenticator, Authy)
▪ Universal 2nd Factor 보안키
▪ 하드웨어 Key Fob MFA 장치
▪ 하드웨어 Fob MFA 장치 for AWS GovCloud (US)

IAM 요약

  • Users: 물리적 사용자와 연결되어 AWS Console에 비밀번호를 가지고 있다
  • Groups: user만 포함하고 있다
  • Policies: 사용자 및 그룹에 대한 권한을 설명해주는 JSON 문서
  • Roles: EC2 Instance와 같은 AWS Service에 권한 부여
  • Security: MFA + Password Policy

0개의 댓글