IAM 정책이란?
- AWS 리소스에 대한 액세스 권한을 정의한 것
- 사용자, 그룹, 역할에 이 정책을 연결하여 사용
- 정책외에 요청은 모두 거부(Deny)된다.
- JSON 형태로 이루어져 있음
JSON 구조 자세히 살펴보기
1. Effect
- Statement에 대한 Access 또는 Deny
- Effect뒤에 Access 혹은 Deny를 적어서 사용
2. Action
- 정책에 대한 작업 목록
- EC2 생성 및 관련 허용 가능
3. Resource
- 권한이 적용되는 리소스
4. Condition
- 정책이 적용되는 세부조건
- 특정 ip 주소 및 리전에서만 적용되도록 할 수 있는 옵션사항
JSON 정책 구문
- Version은 Language에 대한 날짜이고 Statement문으로 하나로 묶여있다.
- lambda 서비스에 대한 모든 행위를 Allow하고 그에 대한 모든 Resouce를 Allow한다.
- 즉, Lambda 서비스에 대한 정책의 명시
- 기본적으로 모든 권한을 허용
- Deny는 함수 생성 및 삭제를 거부한다.
- 모든 리소스에 대해 함수의 생성 및 삭제를 거부한다.
- 조건은 이 220.100.16.0/20 IP 네트워크로 부터 함수 생성 및 삭제는 권한을 거부한다.
이들을 사용자 및 그룹에 적용할 수 있다.
다음 예시를 또 살펴보자
- 정책은 두가지로 이루어져 있다.
- ec2에 대한 정책이고 TerminateInstances에 대해는 Allow 한다.
- 모든 Resource에 대해 Allow 하고 조건은 Source Ip가 10.100.100.0/24 의 네트워크 일때 허용한다.
- 즉, 10.100.100.0/24 의 네트워크 일 경우에만 ec2 인스턴스를 종료할 수 있음
- 모든 ec2에 대해 Deny 한다.
- 또한 모든 Resource에 대해 서도 Deny한다.
- 조건은 us-east-1의 Region가 아닌것에 대해 이뤄나는 것에서 Deny
- 즉, us-east-1 Region이 아닌 경우에는 모든 작업이 거부된다.
IAM - 권한 경계 (Permission Boundary)
- IAM 사용자 또는 역할에 최대 권한을 제한하는 기능
- S3와 Cloudwatch, ec2에 대한 모든 권한을 허용하는 것
- 즉 이 IAM 사용자에게 이 3가지만 관리할 수 있도록 정책을 만든 것 (다른 작업은 할 수 없음)
IAM 권한 및 정책 실습 (권한 삭제 및 개별 부여)
Root 계정으로 로그인하여 진행한다.
IAM으로 들어가 사용자 그룹을 클릭 후 만들어 놓은 그룹으로 들어간다.
만들어 놓은 사용자를 체크하고 제거한다.
그리고 사용자에 들어가 사용자 이름을 클릭하면
권한이 지워진 것을 알 수 있다.
다시 권한 추가를 눌러 개별 권한을 부여해주자
정책은 JSON 형식으로 되어 있는데 살펴보면
ec2에 대한 모든 권한을 Allow하고 모든 Resource에 대해서도 Allow한다.
정책 요약을 통해 간편하게 확인도 가능하다.
그리고 권한을 추가해준다.
잘 완료된 것을 확인할 수 있다.
이 계정에 들어가서 정책이 잘 적용됐는지 확인해보자
IAM 계정 권한 확인
보다시피 EC2를 제외한 모든 서비스는 정책에 따라 제한되고 있다.
반면 EC2에 대한 모든 권한을 부여했기 때문에 EC2 부분은 잘 되는 것을 확인할 수 있다.
EC2도 잘 생성된 것을 확인할 수 있다.
Root 계정에서 Permissions boundary를 통한 최대 권한 제한하기
클릭 후에 [AmazonEC2ReadOnlyAccess]를 선택해서 정책을 부여해준다.
위와 같이 설정이 된 것을 볼 수 있다.
이렇게 설정을 했으니 실제로 적용이 됐는지 확인해보자!
IAM 계정으로 EC2 시작해서 확인해보기
이렇게 시작이 실패한 것을 볼 수 있다.
위 권한 경계에서 읽기 용도로만 정책을 부여했으므로 당연히 생성은 불가능하다.
IAM 계정으로 인스턴스 종료하기
종료는 삭제라는 뜻이다.
당연히 삭제할 수 없다!! 삭제권한이 없기 때문이다!
그러면 Root에서 다시 이 정책을 지우고 다시해보자
잘 종료되는 것을 확인할 수 있다.
- 즉 정책은 AWS Resourec에 Access 권한을 설정하는 것이며 사용자 및 그룹별로 설정할 수 있다.
- 경계설정으로 최대 설정할 수 있으며 정책 문법들은 JSON 형태로 저장되어 있다.
- 물론 이 정책은 이용자가 스스로 만들 수 있다. (JSON 코딩 혹인 시각적 편집기)
'Cloud Infra Architecture (AWS) > AWS SAA-C03' 카테고리의 다른 글
IAM 보안 도구 (IAM Security Tools) (0) | 2022.12.27 |
---|---|
IAM 역할 (이론 및 실습) (0) | 2022.12.27 |
AWS IAM (Identity and Access Management)란? (이론 및 실습) (0) | 2022.12.27 |
AWS 결제 및 비용 (0) | 2022.12.23 |
On-Premise에서 AWS로 마이그레이션(이전)하기 - WAS & OS (0) | 2022.12.21 |