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 |
댓글