IAM이란 AWS에서 제공하는 SSO으로 RBAC(Role..) / GBAC(Group..) / UBAC(User..) 와 리소스 엑세스를 컨트롤 할 수 있는 서비스이다.
즉 '모든 엑세스 관리'를 제공하는 서비스
구성요소는 크게 다음과 같다.
- 사용자(그룹) : 정책 적용 → 사용자(혹은 그룹).
OS의 User(Group)과 같은 역할이라고 보면 된다.
- 역할 : 정책 적용 → 자격(이라는 오브젝트).
역할은 정책을 먹고 완성되는데, 이 역할을 사용자에게 줄 수도 있지만 EC2같은 리소스에게도 줄 수 있다.
- 정책 : IAM 자격 증명(사용자, 사용자 그룹 또는 역할) 또는 AWS 리소스에 연결하여 AWS에서 액세스를 관리.
정책은 자격 증명이나 리소스와 연결될 때 해당 권한을 정의하는 보안프로필 같은 것.
※ 사용자와 역할 무엇이 다른가? : IAM 역할은 권한 정책이 부여된 자격(Identity)으로, 권한 정책은 어떤 자격을 가졌을 때 AWS 상에서 수행할 수 있는 작업의 범위를 정헤줍니다. 이런 점에서 IAM 역할은 사용자와 아주 유사합니다. 하지만 역할은 자격 증명(암호 또는 접근 키)을 갖지 않는다는 차이점을 갖습니다. 역할은 한 사용자에 고유하게 연결되는 것이 아니라, 해당 역할을 필요로 하는 사용자에 의하여 사용될 수 있습니다. 이 경우 Lambda 함수는 일시적으로 권한을 얻기 위해 역할을 할당 받는 것입니다.
※ 정책 유형 요약 비교
자격증명-기반 정책(Id-Based Policy)리소스-기반 정책(Resource-Based Policy)
연결 대상 | 사용자, 그룹, 역할 등 보안주체(Principal)가 될 수 있는 대상 |
리소스 |
의미 | ( 이 정책이 연결된 보안주체는 ) ( 특정 조건(Condition) 하에 ) 이 리소스(Resource)에 대한 특정 행동(Action)을 허용/불허(Effect) |
( 특정 조건(Condtion)하에 ) 이 리소스(Resource)에 대한 특정 행동(Action)을 특정 보안주체(들)(Principal)에게 허용/불허(Effect) |
특징1 | Principal 속성이 안 들어감 | Principal 속성이 들어감 |
특징2 | IAM Policy 메뉴에서 관리 (혹은 IAM Role에 인라인으로) |
일부 AWS 서비스의 리소스에서 자체 관리 (대표적으로 S3, SQS 등) |
특징3 | 모든 AWS 서비스에 연관 | 일부 공유 자원 성격을 가진 서비스에서 사용 (대표적으로 S3, SQS 등) |
가) 자격증명-기반 정책(Id-Based Policy)
그런데 자격증명-기반 정책(Id-Based Policy)으로 사용할 때는, 그 정책에 연결된 보안 주체(AWS 계정, IAM 사용자, 그룹, 역할 혹은 연합 인증된 사용자, Cognito User Identity 등이 될 수 있음)가 암묵적인 Principal이 됩니다.
그래서 여러분이 자주 보던 정책의 Statement에서는 대개 Principal 속성이 없었다는 것을 깨달았을 것입니다.
IAM 메뉴의 정책 리스트에 나오는 정책들은 모두 자격증명-기반 정책(Id-Based Policy)입니다.
나) 리소스-기반 정책(Resource-Based Policy)
자격증명 기반 정책은 ‘이 정책과 연결된 보안주체는 어떤 대상에 대해 이러이러한 권한이 부여된다’는 의미였습니다.
그런데 반대로 객체(대상)를 중심으로 생각을 해보면 어떨까요? (마치 능동태를 수동태로 바꾸듯이)
‘이 정책과 연결된 보안주체는 어떤 대상에 대해 이러이러한 권한이 부여된다’
‘이 대상에 대해 이러이러한 권한이 누구누구누구에게 부여된다’
리소스-기반 정책은 AWS의 서비스 중에서 일부 서비스에서 사용됩니다.
IAM 작동 방식의 이해
'IaaS > 퍼블릭클라우드' 카테고리의 다른 글
(AWS) AWS의 CI/CD 툴 - CloudWatch (0) | 2021.06.06 |
---|---|
(AWS) AWS의 CI/CD 툴 - AWS Cloud9 (0) | 2021.06.06 |
(AWS) 서버리스 AWS Lamdba 개요와 사용법 (0) | 2021.06.05 |
(AWS) VPC with Cloudformation (0) | 2021.06.03 |
(AWS) AWS Cloudformation 템플릿 (0) | 2021.06.02 |