[AWS] IAM

AWS 권한설정

Posted by owin2828 on 2020-01-29 09:51 · 6 mins read

들어가기 앞서


본 포스팅에서는 IAM에 대해 살펴보고, 접근 제어 및 권한 설정을 하는 방법에 대해 알아볼 예정이다.

1. IAM이란?


IAM은 Identity and Access Management의 약자로, AWS 리소스에 대한 접근을 안전하게 제어할 수 있는 웹 서비스이다.
이 설정을 통해 리소스를 사용하도록 인증하거나, 권한을 부여할 수 있다.

처음 AWS 계정을 생성하게 되면, 해당 계정에 모든 리소스에 접근할 수 있는 권한이 부여된 root 계정이 생성된다.
이러한 사용자는 root 사용자라고 부르며, 로그인할 때 Email을 입력하여 로그인하게 된다.
이에 AWS는 일상작업뿐 아니라 관리작업에도 이 루트사용자를 사용하는 것을 비권장한다.
대신 이곳과 같은 방법으로 IAM 사용자를 생성할 때만 사용하도록 권장한다.

즉 루트 사용자는 계정 및 서비스 관기 작업에만 사용하기를 권장한다.

2. IAM의 기능


IAM은 다양한 기능을 제공하지만, 주로 사용하게 될 기능은 다음과 같다.

  • AWS 계정에 대한 공유 접근제어
  • 권한을 세분화하여 부여
  • MFA(멀티 팩터 인증)

더 구체적인 사항은 AWS 공식 홈페이지를 참고하기 바란다.

3. IAM 유저 생성


  • 콘솔에 로그인하여 내 보안자격 증명을 눌러준다.

  • 위와 같은 팝업창이 뜨게 되는데 여기서 빨간 사각형의 버튼을 클릭한다.

    혹은 서비스에서 IAM을 검색하여 들어가도 된다.

  • 사용자 추가 버튼을 눌러 새로운 IAM 사용자를 추가해준다.

  • 생성할 사용자의 이름을 입력한다.
  • 액세스 유형은 콘솔로 설정한다. (추후, 키를 발급받을 수 있다.)

  • 권한 설정에서 그룹 생성을 클릭한다.
    그룹에 권한을 설정하고 유저를 추가하면, 관리가 편리하다.

    만약 특정 유저에게서 권한을 제거하고 싶다면, 그룹에서 사용자를 제거하면 된다.

  • 그룹 이름을 지정후, AdministratorAccess를 체크하여 관리자 권한을 해당 그룹에 부여한다.
  • 그룹 생성을 클릭한다.

  • 위와 같이 성공적으로 추가되었음을 확인할 수 있고, 다음 단계로 넘어간다.

    다음 단계는 태그이지만, 딱히 추가할 태그가 없으므로 검토로 가도록 한다.

  • 생성한 정보를 확인 후, 사용자 만들기를 클릭한다.

  • 사용자들이 접속할 콘솔 주소가 표시되며, 해당 주소를 통해 IAM 유저로 로그인이 가능하다.
  • 사용자의 액세스 키(액세스 키 ID & 보안 액세스 키)를 확인하려면, 표시 버튼을 눌러 확인한다.
  • 액세스 키를 저장하려면, .csv 다운로드 버튼을 클릭한 후 안전한 위치에 저장한다.

    보안 액세스 키는 이 단계에서만 확인 및 다운로드가 가능하다.
    다시는 확인하거나 다운로드 할 수 없으므로 주의하자.

  • IAM 유저가 생성됨을 확인할 수 있다.
    앞으로는 IAM유저로 로그인하여 네트워크를 구성하면 된다.

4. 루트계정 MFA 활성화


AWS에서 제공하는 MFA는 보안을 강화하는 수단이다. AWS계정 및 개별 IAM 사용자들에 대해 AWS MFA를 활성화할 수 있다.
루트계정에는 MFA를 활성화하는것이 권장되며, 현재는 토큰 기반의 가상 MfA 어플리케이션만 존재한다.

2019.02.01 이후로 SMS 문자 메세지 기반 방식은 더이상 지원되지 않는다.

  • 좌측메뉴의 대시보드를 누른 후, 사진처럼 MFA 관리 버튼을 클릭한다.

  • MFA 활성화 버튼을 클릭한다.

  • 가상 MFA 디바이스를 체크하고 계속을 클릭한다.

  • QR 코드 표시를 클릭하여 나오는 QR 코드를 Google OTP를 설치하여 스캔하면 MFA 코드가 생성된다.
  • 생성된 2개의 MFA 코드를 입력하여 할당을 누른다.

  • 성공적으로 할당시, 사진과 같이 성공했다는 표시가 되며, 루트계정 로그인은 MFA 인증을 해야한다.

  • 루트 계정으로 로그인할 시 MFA 코드를 입력하는 화면이 뜨게되며, Google OTP에서 코드를 입력하면 로그인할 수 있다.

5. IAM 역할 부여


IAM에서 제공하는 기능중 역할을 사용하면 특정 인스턴스에 제약을 걸 수 있다.
이어지는 실습에서는 특정 EC2에게 S3버킷에 대한 접근 제어 역할을 부여하겠다.

  • 좌측 메뉴에서 역할을 클릭 후, 역할 만들기를 클릭한다.

  • 우리는 특정 EC2에게 역할을 부여할 것이므로, 사진처럼 EC2를 클릭 후 다음을 누른다.

    다른 AWS 계정을 눌러 특정 계정에게 역할을 부여할 수도 있다.
    이런 경우, 계정 ID는 이메일 형식의 로그인ID가 아니라, 내 정보에서 볼 수 있는 12자리 숫자 ID이다.

  • 특정 EC2에게 S3버킷에 접근할 역할을 부여할 것이므로, amazons3fullaccess를 검색 후 체크하여 다음을 클릭한다.

    이어지는 태그는 건너뛰고 검토를 클릭한다.

  • 역할의 이름을 지정하고 방금 지정한 정책이 맞는지 확인 후, 만들기를 클릭한다.

  • 생성한 역할이 지정한 이름과 할당한 서비스를 표시함을 확인할 수 있다.

  • EC2를 생성할 때, 우리가 지정한 역할을 부여할 수 있음을 알 수 있다.
    이렇게 생성된 EC2 인스턴스는 S3외의 다른 서비스의 접근은 불가능해진다.

6. 끝마치며


공부하며, 내용을 정리하다 보니 문득 정책역할의 차이가 모호해져 찾아보게 되었다.
내가 이해한 바로는 정책은 어떤 일을 할 수 있는 권한과 관련이 있고,
역할은 그러한 권한들의 논리적인 집합이라는 것이다.
자세한 내용은 다음의 두 링크를 참조하자.

AWS 홈페이지
이현수님 포스팅

IAM, VPC, EC2 이 3가지는 굉장히 중요하다고 한다.
꼭 잘 설정하여 좋은 환경을 구축하기를 바란다.