Study/Cloud Computing

IAM 등 계정 설정

jxx_yxjx 2024. 3. 8. 17:26

1. IAM이란?

AWS IAM(Identity and Access Management)은 AWS에서 제공하는 서비스 중 하나로, 사용자 및 리소스에 대한 보안 및 액세스 제어를 관리하는 데 사용됩니다. IAM을 사용하면 AWS 리소스에 대한 액세스를 안전하게 제어하고 관리할 수 있습니다.

다음은 AWS IAM의 주요 기능과 역할에 대한 간단한 설명입니다:

  1. 사용자 관리: IAM을 사용하여 사용자를 생성하고 관리할 수 있습니다. 각 사용자에게는 고유한 액세스 키, 비밀 액세스 키 및 권한이 부여됩니다.
  2. 그룹 관리: 그룹을 생성하여 사용자를 묶어서 권한을 관리할 수 있습니다. 그룹에 권한을 할당하면 해당 그룹의 모든 사용자가 해당 권한을 상속합니다.
  3. 권한 관리: IAM을 사용하여 사용자 및 그룹에 대한 세분화된 권한을 설정할 수 있습니다. 필요한 권한만을 제공하여 보안을 강화할 수 있습니다.
  4. 액세스 키 관리: 각 사용자에게 고유한 액세스 키와 비밀 액세스 키를 제공하여 API 호출 및 CLI(Command Line Interface)를 통한 프로그래밍 방식의 액세스를 지원합니다.
  5. IAM 정책: IAM 정책은 AWS 리소스에 대한 액세스를 제어하는 데 사용됩니다. JSON 형식으로 작성되며, 특정 작업 또는 리소스에 대한 권한을 정의합니다.
  6. 다중 요소 인증: IAM은 다중 요소 인증(Multi-Factor Authentication, MFA)을 지원하여 보안을 강화할 수 있습니다.
  7. IAM 역할: IAM 역할을 사용하여 AWS 리소스 간에 보안 권한을 위임할 수 있습니다. 예를 들어, EC2 인스턴스에서 S3 버킷에 액세스 권한을 부여할 수 있습니다.

AWS IAM은 클라우드 환경에서 보안 및 액세스 제어를 강화하기 위한 핵심 도구로 사용되며, 모든 AWS 사용자는 리소스에 대한 안전한 액세스를 관리하기 위해 IAM을 적극 활용해야 합니다.

 

2. 인증과 인가

  1. 인증(Authentication):
    • 인증은 사용자가 신원을 확인하는 프로세스를 의미합니다. AWS에서는 사용자가 계정에 로그인할 때 사용자의 신원을 확인하고 인증합니다. 사용자는 사용자 이름과 비밀번호, 또는 다중 요소 인증(Multi-Factor Authentication, MFA)을 사용하여 자신의 신원을 인증합니다. 또한, API 호출을 통한 프로그래밍 방식의 액세스를 위해 액세스 키와 비밀 액세스 키를 사용하여 인증할 수 있습니다.
  2. 인가(Authorization):
    • 인가는 인증된 사용자가 특정 리소스 또는 서비스에 대한 액세스 권한을 부여받는 프로세스를 의미합니다. AWS에서는 IAM(Identity and Access Management)을 사용하여 사용자 또는 역할에 대한 권한을 정의하고 제어합니다. 각 사용자 또는 역할에는 AWS 리소스에 대한 특정 작업을 수행할 수 있는 권한이 할당됩니다. 이러한 권한은 IAM 정책을 사용하여 정의되며, 정책은 JSON 형식으로 작성됩니다

 

3. 루트 사용자와 일반 사용자(IAM 사용자)

  1. 루트 사용자(Root User):
    • AWS 계정을 처음 생성할 때 생성되는 최초의 사용자입니다.
    • AWS 계정의 모든 리소스와 서비스에 대한 완전한 권한을 가지고 있습니다.
    • 모든 AWS 리소스와 서비스를 관리하고 모든 계정 설정을 변경할 수 있는 권한을 갖습니다.
    • 루트 사용자의 액세스 키와 비밀 액세스 키는 보안상의 이유로 권장되지 않습니다. 대신 IAM 사용자를 생성하여 리소스에 대한 액세스를 관리하는 것이 좋습니다.
  2. 일반 사용자(Regular User):
    • AWS 계정 내에서 루트 사용자가 생성하는 IAM(Identity and Access Management) 사용자입니다.
    • 일반 사용자는 루트 사용자의 권한을 부분적으로 상속받거나, 루트 사용자가 정의한 IAM 정책에 따라 권한을 가집니다.
    • 일반 사용자의 권한은 IAM 정책에 의해 정의되며, 필요에 따라 사용자별로 다른 권한을 부여할 수 있습니다.
    • 일반 사용자는 루트 사용자보다 보안적으로 안전하며, 권한을 필요에 맞게 세분화하여 부여할 수 있습니다.

우리가 리눅스에서 루트계정으로 작업을 하는건 편리하지만 위험하듯

AWS에서도 IAM사용자(일반 사용자) 계정을 추가해서 용도에 맞게 분배하는것이 낫습니다.

 

4. 권한 부여의 편의성

IAM사용자들은 그룹으로 묶을 수 있습니다.

이렇게 묶인 그룹에 대해 권한을 부여하면 한 번에 여러 사용자에게 권한을 부여할 수 있습니다.

따라서 사용자보다는 그룹으로 관리하는것을 추천합니다.

 

5. IAM 개념 실습해보기

 

루트 사용자 액세스키 파기하기

 

먼저 루트 사용자의 액세스 키가 존재하는지 확인하고 존재한다면 삭제해보겠습니다.

액세스 키는 우상단 계정을 클릭하고 나오는 보안 자격 증명에 들어가서 확인 가능합니다.

 

다중 요소 인증(MFA) 설정하기

다음으로 메일 주소와 비밀번호만으로 로그인하는것을 방지해보겠습니다.

루트계정의 권한이 막강하기 때문에 은행 등에서 OTP와같은 수단을 추가로 사용하듯 에떱에서도 2차인증수단을 마련해야 합니다.

스마트폰에 Google Authenticator를 설치 후 보안 자격 증명 관리 화면을 열고 MFA를 활성화 시킵니다.

다음 기기관리명을 적어주고 어플을 열고 큐알표시를 클릭한 다음 스캔하고 코드를 입력합니다.

하나 입력하고 다 만료되면 뜨는 다음 6글자를 공백없이 입력해주세요.

 

일반 사용자(IAM)계정 생성하기

이제 루트계정이 아닌 일반계정을 추가하기 위해 IAM대시보드로 넘어옵니다.

그리고 액세스 관리에서 사용자를 눌러서 사용자탭으로 가서 추가합니다.

우측 하단의 사용자 생성을 눌러줬다면 먼저 계정명만 간단히 입력해줍니다.

그리고 콘솔 접근 권한을 주고 IAM사용자 생성을 선택합니다.

MFA를 IAM 유저도 추가 가능하니 추후 추가하시면 더 좋습니다.

이제 루트사용자에서 로그아웃을 하고 다시 콘솔에 로그인해봅니다.

생성한 IAM 계정 번호를 적어주거나 계정 별칭으로 만들었던것을 적어주면 됩니다.

그러면 이제 해당 계정 내에서 설정했던 IAM 계정과 비번을 입력하는 창이 나오고 로그인하면 됩니다

-> 루트계정에서는 접근 가능하던 몇몇 기능이 막아지는것을 볼 수 있습니다.

 

그룹 설정하기

먼저 IAM계정에서 로그아웃하고 다시 루트계정으로 로그인해주세요.

그리고 다시 IAM대시보드로 돌아갑니다.

사용자 그룹에서 그룹을 생성해주고 이름을 부여합니다.

루트계정 산하에 있는 모든 iam계정이 나타나고 원하는 계정을 추가해주면 됩니다.