아래 사이트를 읽고 제가 이해한 것들을 기록용으로 작성한 글입니다.
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html#intro-accessing
IAM이란 무엇인가요? - AWS Identity and Access Management
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
용어 정리
IAM: (AWS) Identity and Access Manager
-> 리소스를 사용하도록 인증및 권한 부여된 대상을 제어함
설명
AWS 계정을 처음 생성하면 모든 서비스와 리소스에 대한 완전한 권한이 있는 SSO(Single Sign In) ID로 시작함.
이걸 루트 사용자라고 함.
보안 상의 이유로 루트 사용자는 IAM을 생성할 때만 사용하고 서비스 및 리소스는 IAM을 통해 사용하는 것이 권장됨.
작동방식
용어 설명
리소스:
- IAM에 저장된 사용자, 그룹, 정책, 자격 증명 공급자 객체.
ID:
- 식별 및 그룹화에 사용되는 IAM 리소스 객체.
(정책을 IAM 자격 증명에 연결할 수 있는데 사용자, 그룹, 역할이 여기 포함됨)
엔터티:
- aws가 인증에 사용하는 IAM 리소스 객체.
(IAM 사용자, 연합된 사용자, 수임된 IAM 역할이 포함됨)
보안 주체:
- 아래 3가지 중 하나를 사용해서 로그인하고 aws에 요청하는 사람 또는 어플리케이션
1. aws 계정 루트 사용자
2. IAM 사용자
3. IAM 역할
서비스:
- 각 리소스에서 수행할 수 있는 일련의 작업
작동 과정
1. 요청
- 보안 주체가 aws 콘솔, aws cli, aws api 등을 통해 서비스를 사용할 때 aws에 전송하는 것
- 요청엔 아래와 같은 정보가 들어있음
작업 또는 작동: 보안 주체가 수행하고자 하는 action
리소스: 수행된 작업 또는 작동에 따른 aws 리소스 객체
보안 주체: 엔터티를 사용하여 요청을 보내는 사용자 또는 어플리케이션
환경 데이터: IP 주소, 사용자 에이전트, SSL 사용 상태 등등
리소스 데이터: 요청되는 리소스와 관련된 데이터
2. 인증
- 보안 주체가 aws에 요청을 보내기 위해선 자격 증명을 사용하여 인증을 받아야함.
(ex. 콘솔로 로그인, 액세스 키 & 보안 키 사용, MFA 등등)
3. 권한 부여
- 보안 주체가 aws로 요청을 보냈어도 요청을 완료할 수 있는 권한이 없다면 실패함
- aws는 권한 부여 동안 요청 콘텍스트의 값을 사용하여 요청을 허용할지 거부할지 여부에 적용되는 정책을 점검함
- 정책을 사용하여 요청을 허용할지 거부할지 결정함
(해당 영역에 대한 상세 내용은 추후 정리 필요)
4. 작업 또는 연산
- 요청이 인증 및 권한 부여된 후 aws가 요청의 작업 또는 작동을 승인함
- 작업은 서비스로 정의되고 각 리소스에 대한 crud 연산을 할 수 있음
- 보안 주체가 작업을 수행하기 위해선, 보안 주체 또는 리소스에 적용되는 필요한 작업을 정책에 포함해야함
5. 리소스
- aws가 요청의 작업을 승인하면 관련 리소스에서 해당 작업을 수행할 수 있음
- 리소스는 서비스 내에 존재하는 객체
(ex. ec2의 인스턴스, s3의 버킷 등등)
- 리소스에서 관련되지 않은 작업을 수행하도록 요청하면 해당 요청은 거부됨
'인프라' 카테고리의 다른 글
[aws] github action으로 s3에 정적 웹사이트 배포하기 (0) | 2020.11.18 |
---|---|
[aws] iam 자격 증명 관리하기 (0) | 2020.11.05 |
[aws] JSON으로 IAM 유저 정책 생성하는 방법 (0) | 2020.11.04 |