본문 바로가기
Security

보안 - IAM

by 찻잔속청개구리 2022. 10. 17.

IAM이란?

IAM 은 Identity and Access Management라는 뜻이고

사용자의 접근권한을 관리하기 위한 AWS 서비스다.

세부적으로 어떤 사용자가 언제 어디서 무엇을 할 수 있는지도 설정 할 수 있는데,

사용자는 사용자/그룹으로 일종의 신분을 부여하고

AWS 리소스에 대한 접근권한은 허용/거부를 설정함으로써 사용자를 관리할 수 있게 된다.

 

IAM 구성요소

사용자(Users) 그룹(Groups) - 사용자가 여러명일 때 공통적인 권한을 줄 때 사용한다.

역할(Roles) - 일시적으로 권한을 위임할 때 사용할 수 있다.

정책(Policies) - 허용모음집이라고 생각하면 된다. 사용자/그룹/역할이 AWS 리소스에 대해 무얼 할 수 있는지 나와있고, json 형식이다. 이렇게 만들어진 정책은 사용자/그룹/역할에 붙어있게 된다.

 

json 형식에 대해 좀 더 알아보자

우선, 자격 증명 기반 정책과 리소스 기반 정책의 차이를 이해해야 한다.

 

자격 증명 기반 정책(Identity-based Policies) : 사용자, 그룹, 역할에 할당하는 IAM 정책이다.사용자가  보안주체(Principal)이라서 안 써도 된다. : 능동태-누구는 대상에대해 권한을 부여받는다
리소스 기반 정책(Resource-based Policies) : 리소스에 붙인은  정책이다. 반드시 보안주체(Principal)를 써야 한다. : 수동태-대상이 누구한테  권한이 부여된다.

 

자격 증명 기반 정책과 리소스 기반 정책을 해석하면 아래와 같다.

<자격 증명 기반 정책(Identity-based Policies)>

{
	"Version": "2012-10-17",
  "Statement": [ . . . ]
}
---
한 정책에 여러 Statements가 사용됨
{
	"Version": "2012-10-17",
  "Statement": 
 [ { 
    "Sid": "@@@",       #선택사항임, Statement ID로 statement 를 구분하기 위해서 사용
		"Effect": "Allow",  #허용/거부
		"Action": [ @@@ ]   #특정행동, 고유한  접두사가 있음.
		"Resource": [ @@@ ] #대상, 리소스 특정 못하면 * 입력
		"Codition": { @@@ } #조건 
 } ]
}



<리소스 기반 정책(Resource-based Policies)>

{
"Version": "2012-10-17",
  "Id": "default",
  "Statement": 
 [ { 
    "Sid": "@@@",       #선택사항임, Statement ID로 statement 를 구분하기 위해서 사용
"Effect": "Allow",  #허용/거부
    "Principal": {
        "AWS": [
          "arn:aws:iam::ACCOUNT_ID:user/read-only-console-user" // 어느 IAM 유저에게 정책 적용
        ]
      },
"Action": [ @@@ ]   #특정행동, 고유한  접두사가 있음.
"Resource": [ @@@ ] #대상, 리소스 특정 못하면 * 입력
"Codition": { @@@ } #조건 
 } ]
}

 

'Security' 카테고리의 다른 글

보안 - 프라이빗 키를 분실한 경우  (0) 2022.11.09
DNS Flood란  (0) 2022.11.02
AWS 보안 - 암호화  (0) 2022.09.17
Log4j 보안 취약점 Log4shell  (0) 2022.08.08
웹 서버 버전 노출 방지  (0) 2022.06.02

댓글