IAM 이란?
AWS 자격 및 접근 관리(AWS Identity and Access Management, IAM)는 당신의 사용자들이 AWS 리소스에 대하여 가지는 접근 권한을 안전하게 제어할 수 있도록 도와주는 웹 서비스입니다. IAM을 사용하여 누가 AWS 리소스를 이용할 수 있는지(인증:Authentication), 그리고 사용자가 접근 가능한 리소스를 어떤 방식으로 이용할 수 있는지(권한 부여:Authorization)를 제어합니다.
* IAM 사용자 (User)
ROOT: aws 계정을 만들 때 사용한 전자메일 주소와 암호. aws 계정의 모든 리소스에 대한 무제한 접근 권한을 갖고 있음.
루트 사용자가 아닌 특정한 역할(role)을 가진 또는 그룹으로 묶어서 사용자를 지정하기 위한 용도
* IAM 역할(Role)
권한 정책이 부여된 자격(identity), 어떤 자격을 가졌을 때 aws 상에서 수행할 수 있는 작업의 범위.
ex. db를 쿼리한 다음 전자메일로 보내는 람다함수가 있는데, 실수로 db를 변경하지 않도록 읽기 쿼리만 실행할 수 있게 설정.
사용자와 차이점은, 역할은 자격증명(암호 또는 접근 키)를 갖지않음.
* IAM 정책(Policy)
'AWS 리소스'에서 수행할 수 있는 작업을 정의하는 규칙, 규칙들의 집합.
// 모든 S3에 모든 자격 부여
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
}
// Hello-bucket이라는 버킷에서 오직 문자열 Bobs-로 시작하는 파일의 반환만 허용
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::Hello-bucket/*",
"Condition": {"StringEquals": {"s3:prefix": "Bobs-"}}
}
출처:https://serverless-stack.com/chapters/ko/what-is-iam.html
https://dev.classmethod.jp/articles/what-is-aws-iam-kr/
https://blog.voidmainvoid.net/405