IAM 정책 실습하기 2번째!
IAM 정책
IAM 정책의 기본 개념
IAM 정책은 사용자나 그룹, 역할에 특정 작업을 수행할 수 있는 권한을 부여하거나 제한 할 수 있도록 해준다.
만약 아래 사진 처럼 a,b,c,d,e,f 라는 유저가 있고 각 역할을 준다고 할 때 [a, b, c] 는 Developer Group , [d, e]는 Operations 그룹, [c, d]는 또 다른 database라는 Group의 정책에도 연결 시킬 수도 있다. 그리고 유저 f는 그룹에 속하지 않을 수도 있다.
이럴 때는 사용자에게만 연결이 가능한 인라인 정책을 생성하여 유저에게 정책을 적용시킬 수 있는 것이다.
IAM 정책의 구조
{
"Version": "2012-10-17",
"Id": "S3-Account-Permissions",
"Statement": [{
"Sid": "1",
"Effect": "Allow",
"Principal": {"AWS": ["arn:aws:iam::account-id:root"]},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}]
}
✔️ Version
정책 언어의 버전으로 최신 버전인 "2012-10-17" 사용하는 것이 권장된다.
✔️ Id
정책의 식별자로 선택사항이다.
✔️ Statement
정책을 의미하며 하나 이상 포함할 수 있다.
내부에는 정책의 주요 요소들을 포함한다.
###아래는 Statement 내부에 들어가는 요소들 ###
✔️ Sid
각 정책 Id의 식별자로 선택사항이다.
✔️ Effect
정책이 특정 API 호출을 허용할지 거부할지에 대한 내용으로 Allow, Deny가 있다.
✔️ Principal
특정 정책이 적용될 AWS 계정이나 사용자를 지정
✔️ Action
Allow 되거나 Deny될 정책에 대한 작업 또는 API 호출 지정
✔️ Resource
Action이 적용될 AWS 자원을 지정
✔️ Condition
정책이 언제(어떤 조건에서) 적용될지 정하는 조건으로 선택사항이다.
🔻 IAM 사용자 계정과 admin 계정 생성하기
앞서 생성한 사용자와 admin 계정으로 실습을 진행했다.
IAM 정책 - 실습 전 준비
그룹에서 사용자 제거
서로 다른 창에 로그인을 해주고 우선 정책 연결하는 방법을 알아보기 위해 admin 그룹에서 soli 사용자를 제거했다.
1. IAM > 사용자 그룹 admin 에서 사용자 제거
1-2. 확인
제거 후 사용자로 로그인한 창으로 가서 새로고침 해보면 액세스가 거부되어 있는 것을 확인할 수 있다. admin 권한으로 모든 AWS 관련 권한이 주어졌는데 그룹에서의 권한이 삭제 되었기 때문이다.
IAM 정책 (권한 추가) - 실습
권한을 추가하는 방법은 여러 가지이다. 여러 방법 중 원하는 방법을 선택하여 사용하면 된다.
- 그룹에서 사용자 추가
- 새로운 그룹 생성
- 직접 추가
- 인라인 정책 추가
1. 그룹에서 사용자 추가
1-1. admin 눌러서 그룹 정보 들어가기
1-2. 그룹 정보에서 사용자 추가클릭
1-3. 사용자 리스트에서 사용자 선택 후 사용자 추가
2. 새로운 그룹 생성
2-1. IAM > 사용자 그룹 에서 그룹 생성 버튼 클릭
2-2. 넘어가서 원하는 권한 정책 선택해서 추가 후 그룹 생성 클릭
사용자에 가서 그룹을 확인해보면 그룹이 2개 생성되어 있는 것을 확인할 수 있다.
3. 직접 추가
3-1. 사용자 > User 에서 권한에 보면 권한 추가가 있다. 권한 추가를 클릭한다.
3-2. 직접 정책 연결을 할 것이기 때문에 `직접 정책 연결`을 선택
3-3. 원하는 권한 정책들을 선택하고 다음을 눌러 넘어간다.
3-4. 권한 추가 클릭
직접 연결 완료 확인
4. 정책 생성 및 추가
모든 정책들은 아래와 같이 JSON 형태로 구성되어 있는 것을 확인할 수 있다.
옆의 요약 버튼을 누르면 이 정책이 어떤 권한들을 포함하고 있는지 리스트로 보여준다. 이렇게 정책을 새롭게 만들어서 추가할 수도 있다.
✔️ 관리형 정책
관리형 정책은 사용자가 만들어서 재사용할 수 있는 정책이다. 여러 엔티티에 적용이 가능하기 때문에 일반 정책들 처럼 재사용이 가능하다.
4-1. IAM > 정책 에서 `정책 생성` 클릭
4-2. 권한 지정하기
권한 지정은 시각적, JSON 둘 중 선택이 가능하다. 시각적으로 선택하게 되면 GUI로 원하는 서비스를 선택하고 원하는 액세스 수준을 선택해서 추가할 수 있가 때문에 쉽게 권한을 지정할 수 있다는 장점이 있다.
4-2. 권한 지정하기
🔻IAM 정책 및 권한 생성
✔️ 인라인 정책
특정 사용자나 그룹, 역할에 직접 포함되는 정책으로 연결시키는 해당 엔티티에만 적용이 된다. 따라서, 해당 엔티티가 삭제되면 해당 정책 또한 삭제되게 된다.
IAM > user 에서 권한에 `인라인 정책 생성` 클릭
이후에는 정책 생성방법 위와 모두 동일
📖 참고 자료
Udemy AWS Certified Solutions Architect Associate 강의
AWS IAM 공식 문서
'DevOps > AWS' 카테고리의 다른 글
[AWS] IAM Role 역할 생성하기 (0) | 2023.12.13 |
---|---|
[AWS] AWS CLI 실습 - 액세스 키(Access Key) 발급 및 간단한 명령어 입력 해보기 (0) | 2023.12.12 |
[AWS] windows 에서 AWS CLI 설정하기 (0) | 2023.12.11 |
[AWS] IAM 사용자 계정으로 관리자 및 그룹 생성하기 / 사용자, 그룹, 정책 알아보기 (0) | 2023.11.18 |
[AWS] S3(Simple Storeage Service) 개념 / 권한 및 정책 설정 (0) | 2023.10.19 |