오늘은 IAM에 대해 공부한 내용을 적어보려고 한다.
내가 오늘 공부한 내용은 이렇다.
1. IAM의 정의
2. IAM을 쓰는 이유
3. IAM으로 할 수 있는 것
왜 IAM이란 말을 붙였을까?
개인적으로 공부를 시작하게 되면 작명부터 이해하려고 한다.
IAM를 Identity and Access Management의 약자로 한글로 풀어쓰면 이럴 것이다.
접근 관리에 대한 독자성으로 Identitiy는 흔히 쓰이는 ID, 식별과 비슷하게 해석하면 될 것으로 보이니
접근 관리에 대한 식별을 하겠다는 의미로 보인다.
그럼 무엇을 식별할까??
AWS 는 Amazon Web Service의 약자로, 클라우드 서비스이다.
클라우드란 말에는 어디서든 접근이 가능하다는 뜻으로, 한 번 더 생각해보면 어디서든 접근할 수 있다는 말은,
보안에 대한 중요성이 커진다는 의미로도 받아들여질 수 있다.
원래 우리가 이용하는 서비스라면 ID/PW를 이용해서 로그인하면 편한데 왜 IAM이란 걸 만들었을까??
리눅스를 사용해본 유저라면 알겠지만 일반 유저와 슈퍼유저로 표현되는 관리자가 존재한다.
만약 내가 관리자여서 ID/PW는 유일하게 나만 알고싶은 것이라고 생각해보자.
접근성이 커진다는 말은, 누구나 접근할 수 있다는 말로, 관리가 어려워진다.
관리자 입장에서 생각해보면 유저마다 분리할 필요도 있을 것이다.
IAM은 리눅스로 치면 계정을 식별하고 관리하는 역할을 한다.
IAM을 왜 써야 할까??
AWS는 단순하게 컴퓨터부터 DB, 모니터링 시스템 등 어마어마한 생태계를 구축하고 있다.
더 자세히 말하면 IAM은 여기서 각 유저마다 서비스의 권한을 줄 수 있는 역할을 한다.
회사 계정이 관리자라고 한다면, 일반 개발자1은 IAM을 통해 EC2 자원에 한해서만 개발하도록 권한을 줄 수 있다.
음... 여기까지만 들으면 이 것만으로도 IAM은 역할은 어느정도 있어보인다.
더 매력적인 것은 하나 더 있다.
AWS의 생태계에서는 IAM으로 권한을 준 경우, 계정에 대한 AccessKeyID와 SecretAccessKey가 주어지는데
SDK를 이용하면 해당 키만으로도 서비스에 접근이 가능해진다.
나의 경우는 파이썬을 주언어로 사용했으니 파이썬으로 예를 들어보겠다.
파이썬 기준으로 pip install awscli 로 AWS의 CLI(Command Line Interface)를 설치하고 Configuration을 등록한 뒤,
Boto3 이라는 AWS에서 제공하는 라이브러리를 이용하면 API로 상대적으로 보다 편리하게 AWS 서비스들을 이용할 수 있다.
https://boto3.amazonaws.com/v1/documentation/api/latest/index.html
아마존에서 저장소 역할 중 하나인 S3인 경우는 예를 들어 다음의 코드로 쉽게 접근이 편리해진다.
import boto3
client = boto3.client('s3')
IAM을 이용하면 SDK에 접근이 편리해지는 장점이 있지만, 단점도 존재한다.
파이썬을 기준으로는 boto3이라는 라이브러리로 웬만한 기능들이 주어지긴 했지만,
100% 모든 기능이 주어지지 않는다.
이런 경우, IAM으로 Authorization(권한)은 있지만, Authentication(인증) 작업을 직접 구현해야 한다.
API를 사용할 권한이 주어졌을 뿐, API에 따라 인증이 필요한 경우도 있다는 뜻이다.
이후의 내용은 다음에 쓰도록 하겠다.
'DevOps > AWS' 카테고리의 다른 글
[Kubernetes] error: You must be logged in to the server (Unauthorized) (0) | 2022.07.25 |
---|---|
[AWS] IAM 기반 Python으로 IoT Core MQTT 사용 (0) | 2022.03.04 |
[AWS] Sagemaker endpoint job delete (4) | 2021.07.04 |
[AWS] Sagemaker Groundtruth 403 error (0) | 2021.05.31 |
[AWS] SageMaker AlgorithmError (0) | 2021.05.28 |