안녕하세요. J4J입니다.
이번 포스팅은 IAM으로 사용자 관리하는 방법에 대해 적어보는 시간을 가져보려고 합니다.
IAM이란?
IAM은 Identity and Access Management의 약자로 AWS에서 제공해 주는 여러 리소스들에 안전하게 액세스 할 수 있는 기능을 제공해 줍니다.
IAM에서 액세스 관리를 하기 위해 사용되는 것들은 다음과 같이 있습니다.
- 사용자 (USER)
- 사용자 그룹 (GROUP)
- 정책 (POLICY)
- 역할 (ROLE)
먼저 사용자는 AWS 내부에서 특정 리소스에 접근하여 기능 처리를 할 수 있는 사용자를 의미합니다.
상황에 따라 AWS 콘솔에 직접 로그인하여 AWS에서 제공해 주는 리소스 설정들을 해볼 수 있고, Git과 같은 곳에서 AWS에 액세스 하기 위해 사용될 수도 있습니다.
사용자 그룹은 동일한 권한을 부여해야 하는 다수의 사용자들을 보다 편리하게 관리할 수 있도록 도와줍니다.
하나의 그룹에 권한들을 부여해 두고 생성해 둔 사용자들을 매핑해 두면 매번 사용자를 만들 때마다 권한을 부여하지 않아도 되는 환경을 제공해 줍니다.
정책은 특정 사용자가 AWS 리소스에 접근할 수 있는지 없는지에 대한 권한을 부여하는 것이라고 생각할 수 있습니다.
정책은 한번 더 다음과 같이 세부적으로 나눠볼 수 있습니다.
- Effect → 리소스 접근을 허용(Allow)할지 거부(Deny)할지에 대한 속성 값
- Principal → 특정 사용자를 지정할 때 사용되는 속성 값
- Action → 정책이 적용되는 작업 목록 (ex, EC2 전체 기능이나 S3 전체 기능)
- Resource → 정책이 적용되는 리소스 정보 (ex, 특정 EC2 인스턴스 아이디)
역할은 특정 사용자가 가지고 있지 않은 권한을 임시로 부여할 때 활용해 볼 수 있습니다.
만료 시간도 설정하여 일정 기간 동안만 권한을 부여해 볼 수 있고 다른 AWS 계정의 IAM 사용자들에게도 권한을 부여할 수도 있습니다.
하지만 한 가지 알아야 될 점은 역할이 부여된 사용자는 기존에 부여된 권한을 모두 사용할 수 없는 상태가 되며 무조건 역할에 할당된 권한만 사용할 수 있게 됩니다.
IAM 사용자를 통해 권한 관리하는 이유
AWS 계정을 혼자서만 사용하는 경우에는 IAM 사용자를 생성해야 되는 이유에 대해 찾을 수 없습니다.
왜냐하면 동일한 AWS 계정 내부에 존재하는 여러 리소스들에 대해 권한 분리를 할 이유가 없기 때문입니다.
IAM 사용자를 생성하여 권한 분리를 하게 되는 경우는 다수의 사용자가 동일한 AWS 계정 내부에 있는 리소스들을 관리할 때 필요합니다.
예를 들면 A 담당자와 B 담당자가 있는데 A 담당자는 EC2 관련된 작업만 처리해야 하고 B 담당자는 S3 관련된 작업만 처리해야 된다고 가정해 보겠습니다.
A 담당자 입장에서는 S3와 관련된 기능이 필요가 없기도 하고 명확히 담당하는 분야를 나누어 일을 해야 한다고 하면 A 담당자가 S3에 절대적으로 접근하지 못하게 막아야 되는 상황도 있습니다.
그래서 A 담당자를 위한 IAM 사용자, B 담당자를 위한 IAM 사용자를 하나씩 생성한 뒤 각각의 사용자 계정에 EC2와 S3 권한만을 따로 부여하여 담당자들이 처리해야 되는 서비스들만 접근할 수 있도록 도와줄 수 있습니다.
IAM 사용자 생성하는 방법
[ 1. IAM 접속 ]
[ 2. 사용자 생성 ]
왼쪽에서 "사용자" 메뉴를 선택한 뒤 오른쪽에서 "사용자 추가" 버튼을 클릭합니다.
그리고 상세 정보를 원하는 대로 입력해 주시면 됩니다.
AWS 콘솔에 접근할 때 사용되는 사용자이기 때문에 저는 다음과 같이 입력해 줬습니다.
다음은 정책 설정입니다.
저는 해당 IAM 사용자에게 EC2에 접근할 수 있는 모든 권한을 부여할 것이기 때문에 다음과 같이 입력해 줬습니다.
[ 3. 생성된 사용자 정보 확인 ]
모든 정보를 입력하고 사용자를 생성하면 다음과 같이 로그인 URL과 계정 정보를 확인해 볼 수 있습니다.
[ 4. IAM 사용자 로그인 ]
위에 있는 "콘솔 로그인 URL"을 복사하여 접속해 보면 다음과 같이 로그인 화면을 볼 수 있고 해당 화면에서 사용자 이름과 암호를 입력하여 로그인할 수 있습니다.
[ 5. 정책 적용된 리소스 접근 확인 ]
해당 IAM 사용자는 EC2의 모든 권한이 부여된 상태입니다.
그렇기 때문에 다음과 같이 EC2에 들어가 보면 EC2를 사용하는데 전혀 지장이 없는 것을 확인해 볼 수 있습니다.
[ 6. 정책 적용되지 않은 리소스 접근 불가 확인 ]
반대로 권한이 부여되지 않은 리소스를 확인해 보겠습니다.
사용 권한이 없는 S3에 들어가 보면 다음과 같이 정상적으로 사용할 수 없는 것을 확인해볼 수 있습니다.
이상으로 IAM으로 사용자 관리하는 방법에 대해 간단하게 알아보는 시간이었습니다.
읽어주셔서 감사합니다.
'Infra, Cloud > AWS' 카테고리의 다른 글
[AWS] IAM 역할을 이용하여 임시 권한 부여하기 (0) | 2023.08.10 |
---|---|
[AWS] IAM으로 사용자 그룹 관리하기 (0) | 2023.08.06 |
[AWS] Transit Gateway 피어링 연결하기 (0) | 2023.07.31 |
[AWS] Transit Gateway Blackhole 사용하기 (0) | 2023.07.25 |
[AWS] Transit Gateway 사용하기 (0) | 2023.07.22 |
댓글