[ 2023.01.03 TIL-AWS IAM ]

Coosla·2023년 1월 3일
0

TIL

목록 보기
29/29
post-thumbnail

AWS IAM

✏️ IAM이란?

  • Identity and Access Management의 약자이고, Glocal 서비스
  • 사용자 생성
    • 가입한 계정이 루트 계정
    • 루트 계정에서 계정을 생성하면 다른 팀원이 사용 가능
    • 루트 계정은 공유/사용 하지 않아야함, 계정 생성에만 사용
  • 그룹에 배치
    • 루트 계정에서 생성한 계정을 그룹으로 묶을 수 잇음
    • 그룹에는 사용자만 배치
    • 다른 그룹을 포함 시킬 수 없음
    • 한 사용자가 여러 그룹에 배치 가능

✏️ IAM을 사용하는 이유

  • AWS 계정을 사용하도록 권한 부여 및 허용하기 위해 사용자/그룹에게 IAM 정책 JSON 문서를 지정가능
  • IAM 정책을 통해 사용자의 권한을 정의
    • 서비스 비용 발생, 보안 문제 야기를 방지하기 위해
    • 사용자에게 꼭 필요로 하는 것 이상의 권한을 주지 않기 위해
  • IAM정책 JSON 문서 예제

✏️ IAM 사용자 및 그룹 실습

  • IAM -> Access management -> Users -> Add User클릭
    1. 유저 이름 및 비밀번호 설정
    2. 그룹 생성 및 설정
      2-1. 그룹 생성할 때 그룹에 연결할 정책 선택

      2-2. 그룹 선택

      2-3. 태그 설정(사용자의 접근을 추적, 조직, 제어할 수 있는 정보)

      2-4. 설정한 정보 프리뷰 및 계정 생성

✏️ IAM 정책

  • 그룹에 설정된 정책이 있으면 사용자 전체에게 권한을 얻고, 정책을 상속
  • 인라인 정책을 통해 개인 사용자에게 정책을 적용 가능
  • 여러 그룹에 속한 사용자는 모든 그룹의 정책을 상속

✏️ IAM 정책 구조와 정책 명명법

  • Version : 정책 언어 버전
  • Id : 정책을 식별하는 ID, 선택사항
  • Statement : 문장들, 하나/여러개 일 수 있음
  • Sid : 문장의 식별자, 선택사항
  • Effect : 문장이 특정 API 접근 허용여부
  • Principal : 특정 정책이 적용될 사용자, 계정, 역할로 구성
  • Action : Effect에 기반해 허용 및 거부되는 API 호출 목록
  • Resource : 적용될 Action의 리소스의 목록
  • Condition : Statement가 언제 적용될지를 결정

✏️ IAM 보안 종류

  • 비밀번호 정책 정의
    • 비밀번호가 강력할수록 계정의 보안이 철저
    • 다양한 옵션을 이용해 비밀번호 정책 생성 가능
      • 비밀번호 최소 길이
      • 특정 유형의 글자 사용 요구
    • 비밀번호 변경 혀용여부 설정가능
    • 동일한 비밀번호, 이전에 사용한 비밀번호 사용불가 기능 설정가능
    • 위 4가지 설정을 통해 비밀번호를 이용한 치명적인 공격을 막는데 큰 도움이됨.
  • 다요소 인증(MFA, Multi Factor Authentication)
    • 사용자는 계정에 접근 권한이 있음
    • 관리자는 구성 변경, 리소스 삭제 등 작업 가능
    • 루트 계정과 IAM계정은 무슨일 이 있어도 반드시 보호
    • 위 사항을 보호하기 위해서 MFA를 이용

✏️ IAM MFA

  • IAM MFA란?
    • 비밀번호와 보안 기기를 이용하여 인증을 진행
    • 비밀번호가 해킹되어도 사용자 소유의 물리적 장치가 추가로 필요하여 보안에 좋음
  • MFA 장치 종류
    • 가상 MFA 장치
      • Google Authenticator, Authy
      • 원하는 수만큼 계정 및 사용자를 등록하여 사용 가능
    • U2F 보안 키
      • 다른 회사의 장치로 하나의 보안키에서 여러 루트 계정과 IAM 사용자를 지원하여 하나의 키로 충분
    • 하드웨어 키 팝 MFA 장치
      • 다른 회사의 장치로 인증 번호를 받음

✏️ AWS 액세스 방법

  • AWS 콘솔
    • 사용자 이름, 비밀번호, MFA로 보호
  • AWS CLI
    • AWS 서비스의 공용 API로 직접 액세스 가능
    • 리소스 관리하는 스크립트를 통해 일부 작업을 자동화 가능
    • 오픈 소스
    • 액세스 키로 보호
  • AWS SDK
    • 소프트웨어 개발 키트, 라이브러리의 집합
    • AWS 서비스나 API를 통해 프로그래밍 가능
    • 어플리케이션 코드 내에서 API를 호출할 때 사용
    • 많은 언어 지원(Java, 파이썬 등 프로그래밍 언어, 모바일, IoT)
    • 액세스 키로 보호
  • 액세스 키란?
    • AWS 콘솔에서 생성 가능하며 사용자가 자기 액세스 키를 직접 관리
    • 액세스 키 ID는 유저이름, 액세스 키는 비밀번호
    • CLI에 액세스 키를 적용하면 AWS API를 사용가능
    • 절대로 공유하면 안됨.

✏️ IAM Roles

  • AWS 서비스에 대한 권한을 부여할 때 사용
  • AWS 서비스마다 권한을 부여 가능
  • 서비스에 접근할 때 해당 룰을 체크

✏️ IAM 보안도구

  • IAM 자격 증명 보고서
    • 계정에 있는 사용자와 다양한 자격 증명의 상태 포함
  • IAM 액세스 관리자
    • 사용자에게 부여된 서비스의 권한과 서비스에 마지막으로 액세스한 시간을 통해 최소권한의 원칙을 지킬 수 있음

✏️ IAM 요약

  • Users/Groups
    • 실제 사용자와 IAM 사용자가 매핑
    • 사용자를 그룹별로 분리
    • 사용자나 그룹에 대한 권한 부여
  • Policies
    • Json형태의 문서로 사용자나 그룹이 할 수 있는 권한을 알려주는 문서
  • Roles
    • AWS 서비스에게 권한부여 및 접근 시 체크
  • Security
    • MFA와 강한 비밀번호 정책으로 안전하게 사용
  • Access Keys
    • CLI와 SDK를 사용하여 AWS에 접근할 시 액세스 키 이용
  • Audit
    • 자격 증명 보고서와 사용자의 최근 권한 사용 내용 확인

✏️ IAM 퀴즈









profile
프로그래밍 언어 공부 정리

0개의 댓글