IAM (Identity and Access Management)
: AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스이다. IAM을 사용하여 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어할 수 있다.
⇒ 인증 : 로그인
⇒ 인가 : 권한 확인
IAM Group
IAM User
IAM Role
IAM Policy
IAM 정책 소개
IAM에서 자격 증명에 대한 권한을 설정할 경우 AWS 관리형 정책, 고객 관리형 정책 또는 인라인 정책 중 어떤 것을 사용할지 결정해야 한다.
- 자격 증명 기반 (Identity-based policies)
- AWS 관리형 정책 : AWS에서 제공하는 글로벌 적용
- AWS 고객 관리형 정책 : 계정에서 직접 생성하여 사용 및 관리
- AWS 인라인 정책 : 단일 사용자, 그룹 역할에 직접(directly) 추가하여 사용 및 관리
- 리소스 기반 정책 (Resource-based policies)
- 권한 경계 기반 정책 (Permission boundaries)
- 조직 SCP 기반 정책 (Organizations SCPs)
- 세션 정책 (Session Policies)
정책 시뮬레이션
현재 적용된 정책이 어떤 권한을 가지고, 어떤 자원을 사용할 수 있는지를 평가해주는 도구이다.
⇒ 사용자 계정에서 직접 생성한 권한이 해당 리소스에 대한 특정 권한이 있는지를 파악할 때 사용하기 좋은 도구이다.
명시적 접근 거부
AmazonEC2FullAccess를 통해 현재 CloudWatch Logs에 대한 권한이 Allowed 상태이다.
인라인 정책에 CloudWatch Logs를 거부하여 명시적 거부를 시켜보겠다.
CloudWatch Dashboard로의 접근 실패
⇒ 명시적 거부가 있는 경우, 허용된 정책 권한이 있더라도 우선시함. test_user는 EC2FullAccess 권한으로 Cloudwatch에 대한 권한을 가지고 있지만, 사용자에 인라인정책을 적용하여 명시적 접근 거부 정책으로 Cloudwatch에 대한 접근을 제어할 수 있게 된다.
권한 경계(Permission Boundary)란?
자격 증명 기반 정책을 통해 IAM Entity에 부여할 수 있는 '최대 권한'을 설정하는 기능이다.
Entity에 대한 '최대 권한'을 설정하고 싶은 경우 1) 자격 증명 기반 정책 및 2) 권한 경계 모두에서 허용되는 작업만 수행할 수 있다.
아래 사진으로 설명을 하자면,
Identity-based policy와 Permission boundary의 교집합에 포함되는 정책만 Effective 된다.
test_user 유저에게 아래의 권한을 부여해주었다.
⇒ 여기서 추측할 수 있는 부분은 AdministratorAccess와 S3FullAccess의 교집합인 S3FullAccess 권만 가질 수 있을 것이라 추측할 수 있다.
결과
⇒ Administrator 권한을 가지고 있지만 권한 경계로 인해 EC2 Instance에 대한 권한이 없음을 확인할 수 있다.
'AWS' 카테고리의 다른 글
[Packer] Packer를 이용한 EC2 AMI 생성 (1) | 2021.08.06 |
---|---|
[Ansible] AWS EC2 Dynamic Inventory 사용하기 (0) | 2021.07.30 |
[AWS] IAM Policy JSON 알아보기 (0) | 2021.07.24 |
[AWS] Root Volume을 다른 EC2 Instance에 붙이기 (2) | 2021.07.21 |
AWS와 Azure간 Transit Gateway을 통한 Site to Site VPN 연동 (2) | 2021.07.20 |