AWS IAM User (+ S3 버킷 액세스 권한을 가진 IAM 계정 생성하기)

우리는 어떤 서비스를 이용하기 위해서 돈을 먼저 지불하고 서비스를 이용하는 선불 시스템과 이용한 만큼 비용을 지불하는 후불 시스템이 있죠. 우리가 사용하는 AWS는 후불 시스템입니다. 그렇다는 말은 사용한 만큼 비용이 청구되는 것을 의미합니다. 물론, Advaend Pay를 이용하면 AWS 사용 요금을 선 결제하고 향후 송장을 자동으로 결제할 수 있습니다.

하지만, 대부분의 개인 사용자가 AWS 서비스를 이용할 때는 후불 이용 후 청구된 비용을 결제하는 방식을 많이 선택합니다.

 

AWS의 서비스들을 이용하기 위해 제일 처음 해야 할 일은 AWS 계정을 만드는 일입니다. 처음 AWS 계정을 생성하면 결제 수단까지 입력을 해야합니다. 이 후 생성된 AWS 계정은 Root 권한을 가진 사용자 계정이 됩니다. AWS의 모든 작업을 이 루트 사용자를 통해 이용될 수 있습니다. 이 말은 즉, 루트 사용자 계정만 있다면 모든 서비스를 자유롭게 이용할 수 있다는 것이죠.

실제로, 주변에서 루트 권한을 가진 계정정보를 해킹당하여 AWS의 모든 리전에 인스턴스를 생성하여 비용이 어마어마하게 나온 사례가 있습니다.

 

루트 사용자 자격 증명이 필요한 작업

  • 계정 설정의 변경
  • IAM 사용자 권한의 복원
  • 결제 및 비용 관리 콘솔에 대한 IAM 액세스 활성화
  • 특정 세금 계산서 조회
  • AWS 계정 닫기

 

AWS IAM

그래서 AWS는 IAM 이라는 서비스를 이용하고 있습니다. IAM은 (Identity and Access Management)의 약자로, AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. IAM을 사용하면 사용자가 액세스할 수 있는 권한을 중앙에서 관리할 수 있습니다.

AWS는 별도로 IAM 사용자를 만들어 사용하기를 권고하고 있습니다. 루트 사용자는 맨 처음 관리자 계정을 생성할 때에만 사용하고, 그 다음부터는 IAM 사용자로 이용하는 것이 모범적인 이용 방법입니다.

 

IAM 기능

AWS 계정에 대한 공유 액세스

암호나 액세스 키를 공유하지 않고도 AWS 리소스를 관리하고 사용할 수 있는 권한을 다른 사람에게 부여 가능합니다.

 

세분화된 권한

리소스에 따라 여러 사람에게 다양한 권한을 부여할 수 있습니다. 예를 들어 특성 사용자에게 오직 AWS S3에 대한 권한만 부여할 수 있습니다.

 

 


 

IAM 사용자 생성하기

먼저, AWS 계정 생성이 이루어진 직 후로 가정하고, 관리자 역할을 할 IAM USER를 생성하고 S3 버킷 권한만을 가진 IAM 유저를 생성하는 과정을 통해 실제로 어떻게 접근 제어를 하는지 보겠습니다.

 

 

IAM 관리용 사용자 생성하기

맨 처음, 관리자 역할을 할 사용자를 추가해보도록 하겠습니다. 보통 관리자 이름을 Administator를 많이 사용하기 때문에 Administator로 생성하겠습니다.

 

 

  1. 사용자 이름을 입력합니다.
  2. AWS Management Console에 대한 액세스 권한 제공에 체크합니다.
    • 우리가 사용하는 대쉬보드에 대한 권한을 제공해주는 것입니다.
  3. Identity Center에서 사용자 지정을 권장하고 있지만 여기서는 IAM 사용자를 생성합니다.
  4. 사용자 지정 암호를 입력합니다.

 

그룹 생성

그룹 생성하여 관리자 그룹을 생성하겠습니다.

그룹을 생성하여 권한을 설정하게 된다면 사용자 별로 권한을 부여하는 귀찮은 과정 없이 그룹에 사용자만 추가하게 된다면 사용자에게 쉽게 권한을 부여할 수 있습니다.

 

권한 정책 선택

 

Administrators 그룹을 생성합니다.

권한은 아래 정책 목록에서 선택할 수 있으며 관리 정책인 AdministratorAccess 정책을 추가하고 그룹을 생성합니다.

 

생성한 그룹이 사용자 그룹에 표시되는 것을 확인할 수 있습니다.

이제 Administators 그룹에 추가되는 사용자는 AdministratorAccess 정책에 따라 모든 리소스에 모든 액세스가 가능한 사용자가 됩니다.

그룹을 선택한 후 넘어가겠습니다.

 

마지막으로 한번 더 검토 후 사용자 생성 버튼을 클릭하게 된다면 해당 권한을 가진 관리 사용자가 생성되게 됩니다.

 

계정 정보를 csv 파일로 다운받아 저장하거나 로그인 정보를 확인할 수 있습니다.

 

생성한 관리용 IAM 사용자로 로그인

이제 Root 사용자 대신 위에서 생성한 IAM 계정 정보를 통해 로그인해보도록 하겠습니다.

 

 


관리용 IAM 사용자로 S3 버킷 액세스 권한만을 가지고 있는 사용자 생성하기

AWS Console과 cli 상에서 S3 버킷에 파일을 업로드/다운로드 하기 위해서는 S3 권한이 필요합니다. S3 버킷 액세스 권한만을 가지고 있는 IAM 사용자를 만들어보려고 합니다.

 

S3용 IAM 사용자 만들기

사용자 이름을 입력합니다. 예제로 AccountA로 진행하겠습니다.

추후 암호를 지정해서 사용하게끔 하기 위해 다음 로그인시 새 암호를 생성하는 것을 체크하겠습니다.

 

S3 Access 그룹 생성

S3Access 그룹에 사용자 추가

 

생성한 S3 접근용 IAM 계정에 로그인

로그인 시 새 암호 지정을 체크했기 때문에 새로운 암호를 지정하고 로그인 진행합니다.

S3 액세스 권한 확인

이제 S3 서비스에만 액세스 가능한 계정이 생성되었습니다. 

 

다른 서비스 권한 확인

해당 사용자에게 AWS EC2에 대한 권한이 없기 때문에 아래와 같은 오류들이 발생합니다.

EC2에 대한 서비스를 이용하려면 IAM 에서 해당 권한을 추가해주어야 합니다.

 

 

요약

  • AWS IAM에서는 사용자 및 그룹을 관리할 수 있습니다.
  • 루트 계정 대신에 AWS를 관리할 IAM 관리 계정을 생성합니다.
  • 생성한 해당 IAM 관리 계정을 통해 특정 서비스만을 이용할 IAM 사용자를 생성합니다.
  • S3 서비스에 액세스가 필요한 팀원에게 AWS 루트 계정을 공유하지 않고 IAM 계정을 부여하여 해당 서비스만 이용하도록 공유 액세스를 제공하였습니다.