Home AWS SAA chapter 2. AWS IAM
Post
Cancel

AWS SAA chapter 2. AWS IAM

IAM : Users & Groups

  • IAM(Identity and Access Management)에서는 사용자를 생성하고, 그룹에 배치하는 글로벌 서비스이다.
  • 루트 계정 : 계정을 생성할 때 기본으로 생성되는 계정이다. 루트 계정은 오직 계정을 생성할 때만 사용되어야 한다. 그 후에는 루트 계정을 더 이상 사용해서도, 공유해서도 안된다.
  • User 계정 : 조직 내에 해당하는 한 사용자를 말한다. 필요하다면 사용자들을 그룹으로 묶을 수 있다. 어느 그룹에도 포함되지 않은 사용자가 있을 수 있다. 또한 한 사용자가 다수의 그룹에 포함될 순 있다.
  • 그룹 : 그룹에는 사용자만 배치시킬 수 있다. 다른 그룹을 포함시킬 순 없다.

IAM : Permission

  • 이들이 AWS 계정을 사용할 수 있도록 허용하기 위해선 권한을 부여해줘야 한다.
  • 이를 위해 사용자 또는 그룹에게 IAM 정책이라고 불리는 JSON 문서를 지정할 수 있다. IAM-JSON
  • 사용자에게 필요 이상의 권한을 부여할 경우 너무 많은 서비스를 실행시키거나, 보안 문제를 야기할 수 있다. 따라서 AWS에서는 최소 권한 원칙을 적용한다.

IAM : Policy

  • 그룹 단위로 정책을 설정하여 권한을 부여해줄 수 있다.
  • 혹은 인라인 정책(inline policy)라는걸 생성할 수도 있다.

IAM : Policies structure

  • 정책의 구조
    • Version : policy language version를 지정, 대부분 “2012-10-17”이다.
    • Id (optional): 정책을 식별하는 id
    • Statement : 1개 혹은 그 이상의 문장들이 구성되어 있어야 한다.
      • Sid (Optional): 문자 ID로 문장의 식별자이다.
      • Effect : 문장이 특정 API에 접근하는 걸 허용할지 거부할지에 대한 내용(Allow, Deny)
      • Principal : 특정 정책이 적용될 사용자, 계정, 혹은 역할로 구성된다.
      • Action : effect에 기반해 허용 및 거부되는 API 호출 목록이다.
      • Resource : 적용될 Action의 리소스 목록
      • Condition (Optional) : Statement가 언제 적용될지를 결정하는 Condition이 있다. IAM-JSON-2

IAM : Password Policy

IAM default 정책과 별개로 사용자가 직접 정의하는 비밀번호 정책을 지정할 수 있다.

IAM : MFA(Multi Factor Authentication)

MFA = password + security device

MFA device in AWS

  • Virtual MFA device : google authenticator, authy
  • U2F(Universal 2nd Factor) Security Key : Yubikey
  • Hardware Key Fob MFA Device : AWS의 제 3자 회사인 Gemalto 제품
  • Hardware Key Fob MFA Device for AWS GovCloud(US) : 미국 정부의 클라우드인 AWS GovCloud를 사용하는 경우라면, 필요한 특수 키팝

AWS에 접근하는 방법

  • AWS Management Console : protected by password + MFA
  • AWS Command Line Interface(CLI) : protected by access key
  • AWS Software Developer Kit(SDk) : (for code) protected by access key

Access key는 management console에서 생성할 수 있다.

IAM : Roles for service

  • 몇몇 aws 서비스들은 우리들의 계정에서 실행해야 된다.
  • 이를 위해서는 User와 마찬가지로 aws 서비스에도 권한이 필요하다. 즉, aws 서비스에 권한을 부여해줘야 한다.
  • 그러기 위해선 IAM Roles 라는 것을 만들어야 한다. IAM Role은 User와 같지만 사람을 대상으로 하는 권한이 아닌 aws 서비스를 위해 만들어졌다. 예를 들어 ec2 인스턴스 한 개가 존재할 때 해당 인스턴스는 어떠한 작업을 aws의 어떤 정보에 접근할 필요가 있을 수 있다. 그러기 위해선 권한이 필요하고 이것이 IAM Role이다.
  • 일반적인 Role들: EC2 instance Roles, Lambda function Roles, Roles for CloudFoundation

IAM : Security Tools

  • IAM Credentials Reports(account-level) : report은 계정에 있는 User와 다양한 자격 증명의 상태를 포함한다.
  • IAM Access Advisor(user-level) : User 에게 부여된 서비스의 권한과 해당 서비스에 마지막으로 액세스한 시간을 볼 수 있다. 해당 도구를 사용하여 User가 사용하지 않는 권한을 체크하고 최소 권한 원칙을 지키는데 도움을 줄 수 있다.

IAM : summary

  • Users: mapped to a physical user, has a password for AWS Console
  • Groups: contains users only
  • Policies: JSON document that outlines permissions for users or groups
  • Roles: for EC2 instances or AWS services
  • Security: MFA + Password Policy
  • AWS CLI: manage your AWS services using the command-line
  • AWS SDK: manage your AWS services using a programming language
  • Access Keys: access AWS using the CLI or SDK
  • Audit: IAM Credential Reports & IAM Access Advisor
This post is licensed under CC BY 4.0 by the author.

AWS SAA chapter 1. AWS 시작하기

Frontend - 개요