DevOps/AWS

AccessKey 대신 IAM 역할을 활용한 EC2권한 부여

prden 2022. 6. 18. 17:22

1. IAM이란?

AWS Identity and Access Management(IAM)를 사용하면 AWS서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있다. 또한, AWS 사용자 및 그룹을 만들고 관리하며 AWS리소스에 대한 액세스를 허용 및 거부할 수 있다.

   1. AWS 어카운트 관리 및 리소스/유저/서비스의 권한 제어 : 임시 권한 부여, 서비스 사용을 위한 인증 정보 부여

   2. 유저의 생성 및 관리 및 계정의 보안 : Multi-factor Authentication,  유저의 패스워드 정책 관리

   3. 다른 계정과의 리소스 공유

   4. Identity Federation(Facebook 로그인, 구글 로그인 등) 

 

2. IAM의 구성

1. 유저 : 실제 AWS 서비스를 사용하는 사람 

   -  Access Key / Secret Access Key: 유저가 AWS의 서비스를 사용하기 위한 인증정보

   - 유저명/패스워드 : 유저가 AWS 콘솔을 사용하기 위한 인증정보

2. 그룹 : 유저의 집합. 그룹에 속한 유저는 그룹에 부여된 권한을 행사할 수 있다. 

3. 정책(policy) : JSON 형식으로 정의되며 유저와 그룹, 자격이 무엇을 할 수 있는지에 관한 문서

4. 자격(Role) : AWS 리소스에 부여하여 AWS리소스가무엇을 할 수 있는지를 정의 

  - 다른 자격에 대해서 신뢰관계를 구축 가능

  - 역할을 바꾸어 가며 서비스를 사용 가능 

 

3. IAM 역할을 부여

  • 권한이 부여된 IAM 역할을 만들고 EC2에 부여
  • 관리가 쉽고 교체가 쉽다.
  • 내부적으로 지속적으로 자격증명을 변경할 수 있어 뛰어난 보안성을 갖는다. 

-> IAM 역할 생성 -> EC2 생성 후 역할 연동 -> AWS CLI를 활용하여 S3목록 불러오기 -> NodeJS 어플리케이션에서 S3 목록 불러오기

 

https://www.youtube.com/watch?v=vOI_oAP_j04&list=PLfth0bK2MgIaceKn-kqXDOAzBzsXlbBb_&index=3 

4. IAM 고급 활용 : 권한 범위 설정 

  • 권한 범위 : IAM 자격증명(사용자, 역할)이 행사 가능한 최대 권한을 정의
  • 실제로 자격을 부여하지 않고 행사 할 수 있는 권한의 범위만 정의
  • 자격 증명이 행사 할 수 있는 권한은 권한 범위와 실제 부여된 권한 중 겹치는 부분

https://www.youtube.com/watch?v=LGQaxco22kI&list=PLfth0bK2MgIZ8c4-mC0IMb44o_TJJKyYz

Production영역은 수정 불가능하고 정해진 권한 범위 내에서 활용가능하다. 

 

 

차례https://www.youtube.com/watch?v=ET87afIo4SQ&list=PLfth0bK2MgIYRGF5vgVx5aJ13bHLkGG4l&index=2