이전 게시글에서 AWS란 무엇인지 그리고 리전에 대한 걸 알 수 있었다. 오늘 IAM 서비스를 어떻게 이용하는 지에 대해 공부한 것을 기록한다.
IAM 서비스란?
IAM은 Identity and Access Management의 약어이다.
데이터베이스를 초기에 사용하면 전체 관리자의 기본 값이 root로 되어 있고, root로 접속한 환경 아래에 하위 사용자를 만들어 여러 가지 데이터베이스를 만들어 사용한 기억이 있다. AWS 서비스도 이와 마찬가지라고 보면된다.
하나의 USER 사용자는 하나의 IAM이 된다.
그룹은 사용자만 포함 할 수 있고, 다른 그룹을 포함시킬 수는 없다.
※ 물론, 그룹에 포함될 수도 안될 수도 있지도 권장하는 환경이 아니다.
사용자나 그룹에는 권한이 부여되는데, 그룹에 부여된 권한은 사용자에게 상속되고 사용자는 개별적으로 추가 권한을 가질 수도 있다.
권한은 각 각의 JSON 문서로 만들어진다.
IAM 만들어 보기
1. 사용자 추가 ( 사용자 생성 )
처음 IAM 에 접속하여 왼쪽 메뉴 중 사용자를 클릭하여 접속한다.
아래와 같이 접속을 했다면 사용자를 추가하기 위해 우측 주황색인 사용자 생성을 클릭한다.
- AWS Management Console 클릭 , 커스텀 비밀번호 입력
위와 같이 사용자 생성을 하게 되면 사용자 이름만 입력하는 창 하나만 나오게 된다.
1. "AWS Managetment Console에 대한 사용자 엑세스 권한 제공"을 클릭하면 사용자에게 콘솔 엑세스 권한을 제공하는 있는지에 대한 질의를 던진다.
2. 권한 제공 여부에 대한 질문이 나온다면 "IAM 사용자를 생성하고 싶음" 을 클릭하며 위 사진에서 처럼 콘솔암호를 어떤 방법으로 지정할 건지에 대한 추가 정보 입력 요청을 받게된다.
3. 콘솔 암호에서 "사용자 지정 암호"를 선택해 본인이 사용하고자 하는 비밀번호 8자리 이상을 입력한다.
2. 그룹 생성 및 권한 설정 - AdministratorAccess
사용자를 생성했다면 이번엔 그룹 생성과 권한 설정을 하여 해당 사용자가 서비스 이용 권한을 상속받을 수 있게 해준다.
왼쪽의 사용자 위에 "사용자 그룹"을 클릭하여 접속 한 뒤 우측 상단의 그룹 생성을 클릭하여 접속한다.
그룹 생성을 클릭하며 아래 사진과 같이 권한 설정에 대한 권한 옵션이 나온다. 그때 그룹에 사용자 추가라는 버튼을 누르고 아래에 그룹 생성을 클릭한다.
그룹 생성을 클릭하게 되면 아래와 같이 사용자 그룹 생성에 대한 정보를 입력할 수 있는 화면이 나온다.
그룹 이름을 지정하고, 아래의 권한 정책 연결 - 선택 사항에서 AdministratorAccess를 클릭하여 권한을 부여한다.
3. 처음 계정 생성시 암호가 비활성화 된다.
이때 사용자탭의 "보안 자격 증명 - "콘솔 엑세스 관리"에 접속해 활성화를 눌러준다.
4. csv 파일은 아이디, 비밀번호, 접속url 정보 등이 들어있다.
5. 사용자 그룹 확인 ( 사용자가 추가가 안된 경우 직접 추가 )
6. 대시보드에서 계정 별칭 생성 후 접속하기
위의 일련의 과정들을 무리없이 진행했다면 AWS 서비스 내의 사용자 정보를 만들고, 그룹을 생성까지 완료한 것이다.
🕹️IAM 정책이란?
AWS의 특정 서비스를 사용할 수 있는 권한이 JSON 파일 형태로 표기된 것을 정책이라고 한다.
사용자는 여러 권한(정책)을 상속 받을 수 있는데, 보통 기존의 만들어진 정책을 사용하고, 사용자만의 정책을 생성할 수도 있다. ( ※ 미리 AWS 만들어 놓은 정책 vs 개발자가 필요한 정책을 추가로 생성 )
이런 형식들은 자주 등장을 하기 때문에 굳이 외울 필요성은 없다.
정책 예시
정책
이름 | 의미 | 정책 문장 여부 |
version | 정책 언어 버전 | N |
id | 정책 식별 아이디 | N |
sid | 문장 식별 아이디 | Y |
effect | 정책 결정 여부 | Y |
principal | 특정 정책의 역할 | Y |
action | 정책 허용 API 목록 | Y |
resource | action의 리소스 목록들 | Y |
👨💻 나만의 정책 만들기 시나리오
- IAM 정책 탭에 들어가서 정책을 생성한다.
- 비주얼에디터 VS JSON을 사용해 나만의 정책을 만들 수 있다.
- IAM관련 정책을 선택하고, 엑세스 레벨을 지정한다. ( 각 정책별 선택적으로 사용 가능 )
- 모든 리소스를 추가한다. ( Policy 확인 )
5. 정책 에서 본인이 만든 정책을 유저에게 추가한다.
IAM 계정 설정 - 비밀번호 인증(MFA)
MFA란 Multi Factor Authentication으로 비밀번호 + 인증의 방식으로 root 계정이나 IAM 사용자를 보호하는 인증 방식이다. AWS에서는 MFA를 사용하여 사용자 계정을 보호하도록 권고된다.
비밀번호를 해킹당하더라도 사용자의 휴대폰이 필요로 하기 때문에 보다 안전해진다.
MFA 방식
1. 가상 장치 - Google Authentication 앱
2. Security Key
3. 다양한 MFA 하드웨어 키팝 디바이스
여기서 Security Key는 JWT를 공부할 때 사용한 걸로 기억하는 데, 보안하고자 하는 정보에 개인키를 붙임으로써, 보안성을 높인다.
MFA 시나리오
1. 일반 비밀번호 강화는 계정 설정 탭에 접속해 하면된다.
2. MFA 디바이스 추가는 우 상단 계정 탭에 보안자격증명 탭에서 추가하면 된다.
IAM 엑세스 키 발급
AWS CLI를 사용하거나 프로그램에서 AWS의 API를 호출해서 사용할 때 자격 증명 방법으로 엑세스 키를 발급할 수 있다. 엑세스 키는 IAM 사용자의 고유한 비밀번호가 될 수 있으며 누구에게도 노출해서는 안된다.
( ※ 특히 git Public을 이용할 때 나는 주소 application.properties 파일을 못올리도록 설정해놓았다. 그만큼 공개하면 안되는 매우 중요한 사안이다. )
엑세스 키는 장기 자격 증명이며, 액세스 키와 같은 장기 자격 증명을 사용하지 않는 것이 모범 사례이다.
추후 프로그램에서 엑세스키 대신 사용할 대안 책을 제공한다.
엑세스 키 발급 시나리오
1. 반드시 IAM 사용자( ※ root 절대 안됨 )로 접속한다.
2. IAM 사용자를 클릭한다.
3. 보안자격증명(Security Credential)을 선택한다.
4. csv 파일로 다운 받기 ( 최초의 한 번만 가능 )
5. 확인 후에는 삭제 처리!!
IAM ROLE(역할)
역할은 내용이 어려운 편에 속해, 나도 공부하면서 아직 이해를 잘하지 못하였다....
IAM 역할은 단기간 동안 유효한 자격 증명을 가진 특정 권한이 있는 자격 증명이라고 이해하면 된다.
즉, 정책이 영구적 권한이라면 역할은 일시적 자격 증명이다.
다시 말하면
정책이 IAM 사용자에게 부여되는 영구적 권한(자격 증명)이라면
역할(ROLE)은 특정 AWS 서비스(개체)에게 부여된 일시적 권한이라고 생각하면 된다.
예를 들어 AWS 특정 개체(EC2)가 IAM 사용자 목록을 확인하고 싶다.
아무런 권한이 없는 EC2가 IAM 사용자 목록에 접근하기 위해서는 IAM Read 권한이 연결된 역할을 맡겠다는 요청을 보내고 그 권한이 부여된 자격 증명을 다시 얻게 되는 방식이라고 생각하면 된다.
물론 해당 권한은 아무나 얻을 수 없고, IAM 역할을 만들 때 누가 이 역할을 사용할 수 있는지 미리 생성해야 한다.
역할 만들기 시나리오
1. 역할 탭 클릭 - 역할 만들기 클릭
2. EC2 선택 - 신뢰할 수 있는 엔티티 선택
3. 권한은 IAMReadOnlyAccess를 선택해서 연결 - EC2가 IAM의 사용자를 접근할 수 있는 역할을 만드는 것과 같다.
4. 만들어진 역할만 확인하고 나중에 EC2가 IAM 목록을 Read할 수 있도록 설정할 예정이다.
'Programming > AWS' 카테고리의 다른 글
[AWS] EC2 고급 기능 1 (0) | 2024.06.13 |
---|---|
[AWS] EC2로 서버 연결하기 (0) | 2024.06.13 |
[AWS] EC2 (0) | 2024.06.13 |
[AWS] AWS란? (0) | 2024.06.11 |