IAM이란?

이기태·2024년 2월 17일
0

AWS

목록 보기
2/62

IAM

  • 접근 레벨이나 권한 관리기능을 제공하는 서비스.
    root계정은 모든 리소스를 제약 없이 사용할 수 있고, 새로운 유저를 만들 수 있다.
    또한 새로운 유저의 권한을 직접 조작할 수 있다.

EX)

유저 X를 생성할때 IAM은 X에 대한 액세스 키와 비밀 키를 부여한다.
두 키를 가지고 AWS내의 다양한 서비스를 사용한다. -> API 또는 콘솔에서 키를 가지고 AWS 자원을 사용.

  • 세밀한 접근 권한 관리
    DB 데이터를 X 유저에게 모든 권한을 줄수도 있고. 읽기 전용 권한을 줄 수도 있다.
    리소스 권한뿐 아니라 리소스 안에서 행동에 대한 권한 관리도 가능하다.

[MFA] 아마존은 다요소 인증(MFA) 활성화를 적극 권장하고 있다.
MFA: 사용자의 다른계정(구글, 페이스북 등)을 통한 2차 인증을 거치는 추가적인 과정.

IAM 활용

목적: 특정 리소스에 접근하거나 특정 데이터만 불러오고 수정할 수 있는 제약을 정하는 최소 권한 정책을 적용 하는것.

  • 최소 권한 정책
    어떤 회사 A에 데이터 엔지니어팀, S/W엔지니어팀, 데이터 분석팀이 있을때 각 팀마다 고유한 업무가 존재하고 업무 처리를 위한 접근하는 소스와 생산되는 결과물이 모두 다르다.
    데이터 엔지니어팀과 S/W엔지니어팀이 필요로하는 리소스는 서로 다르고 이에 따른 접근 권한도 다르다.
    만약 모든 팀에게 root권한을 준다면 잘못 건들여 설정이 잘못 되거나 차질이 생길 수 있다.
    그렇다면 비용이 더 발생하게 될 수 있기 때문에 각 팀마다 최소 권한 정책을 통해 최소한의 역할만 제공하고 그 이외에 대한 접근은 차단하는 역할을 한다. 보안적으로도 중요하다.

  • 생성 및 관리
    * 유저: AWS 리소스를 사용하는 사람들
    * 그룹: 유저들의 집합. 개개인에게 같은 접근 권한을 하나하나 주지않고 그룹으로 묶어 그 그룹안에 있는 유저들은 동일한 접근제어를 적용시킴.
    * 역할: AWS 리소스에 대한 임시 액세스 권한을 부여하는 도구
    역할은 하나 또는 다수의 정책을 포함할 수 있다. 여러 정책을 합쳐서 새로운 역할을 만들어 유저 및 그룹에 적용시킬 수 있다.
    * 정책: 액세스할 수 있는 리소스와 각 리소스에 대한 액세스 수준을 정의하는 문서
    정책을 만들어 최소 권한 정책을 펼칠 수 있음.
    ex) 정책A는 DB읽기 전용, 정책B는 대시보드 생성 후 모든 작업을 진행할 수 있는 admin모드 등.

  • 정책 시뮬레이터
    개발 환경: 스테이징, 프로덕션.
    1) 스테이징: 개발자가 끊임 없이 개발하고 테스트하고 검증 과정을 거치는 플레이그라운드이며, 모두의 동의하에 스테이징에서 프로덕션으로 프로모션한다.
    2) 프로덕션: 실제로 고객에게 보여지는 제품이나 프로그램.

IAM도 마찬가지로 루트 유저가 다른 유저에게 역할과 정책을 적용했을때 실제로 잘 작동하는기 모른다.
역할 및 정책을 유저에게 적용하기 전 IAM 정책 시뮬레이터를 돌려 잘 작동되는지 확인 가능.


AWS 액세스 유형

1) 프로그래밍 방식 액세스: 액세스 키와 비밀 키를 제공. API를 통해 다양한 AWS 리소스를 사용 가능.
2) AWS Management Console 액세스: 콘솔에서 비밀번호를 통해 AWS 메인 화면에 로그인 가능.


역할생성

Action 내부의 sts:AssumeRole은 일시적 권한을 부여한다.
Service dynamodb.amazonaws.com의 역할을 통해 DynamoDB에 일시적인 권한을 부여하겠다는 의미.


정책 생성
[방법1] 시각적 편집기: 원하는 리소스를 직접 선택하고 리소스 안에서 실행할 수 있는 다양한 행동에 대한 권한을 부여.
[방법2] JSON: JSON형태의 정책 문서를 직접 생성해 추가할 수 있다.


IAM = Identity and Access Management -> 글로벌 서비스

  • 사용자 생성

  • 그룹 배치

루트 계정(root): 계정 생성 시 에만 사용.

-> 사용하거나 공유하면 안됨

그룹(Group): 사용자만 배치 할 수 있고, 다른 그룹을 포함 할 수 없음.

-> 한 사용자가 다수의 그룹에는 포함 할 수 있음.

사용자와 그룹을 생성하는 이유

-> AWS 계정 사용을 허용하기 위해

-> 권한을 부여하기 위해

===> 그룹정책, IAM 정책 이라는 JSON문서를 지정할 수 있음.

  • 모든 사용자에게 모든 권한을 주면 안된다.

-> 비용, 보안문제 발생 가능성이 큼.

===> 최소 권한을 부여해야함.

  • IAM 정책 구조
    • 구성
      • version: 정책 언어 버전
      • id: 정책 식별 id(선택)
      • statement
        • Sid: 문장 식별자(선택)
        • Effect: API 허용/거부
        • Principal: 정책에 적용될 사용자/계정/정책
        • Action: API 호출 목록
        • Resource: 적용될 Action의 리소스 목록
        • Condition: Statement가 언제 적용될지 (선택)

0개의 댓글

관련 채용 정보