1
IAM은 AWS에서 제공하는 수많은 리소스 중 하나.
누가 어떤 리소스, 서비스를 사용할 수 있는지 접근 레벨 및 권한 관리 기능을 제공한다.
2
대부분 AWS리소스는 지역에 따라 제공하지만, IAM은 글로벌 서비스이다.
IAM에서 일어나는 모든 것은 전 지역에 적용되기 때문이다.
3
앞장에서 만든 계정은 루트 유저이다.
새로운 유저도 만들 수 있다.
IAM은 유저 X에 대한 엑세스키과 시크릿키를 부여한다.
4
액세스 키와 시크릿키는 콘솔에서 사용하지 않고 , 원격지에서 CLI로 AWS 리스소를 사용합니다.
1
계정 생성
계정은 2가지를 만들 수 있다.
AWS management Console Access - 웹 상에서 콘솔로 로그인하여 사용한다. 콘솔로 로그인 가능한 사용자 계정 만드는 것.
프로그래밍 방식 액세스 - 액세스 키와 시크릿키를 제공, 원격에서 API로 AWS리소스를 생성과 관리 가능하도록 계정을 만드는 것.
2
프로그래밍 방식 액세스 계정 생성 시 주의점!!!
이 화면을 닫으면 콘솔에서 다시 확인할 수 없습니다.
따라서, 반드시 따로 보관하고 유출되지 않도록 조심해야 합니다.
반드시, csv다운로드를 클릭하여 다운로드합니다.
[닫기] 버튼을 누릅니다.
프로그래밍 방식 액세스 계정 생성은 개발팀 별로 1개씩 발급 하도록 하자.
원격에서 서버를 만들거나 삭제 할수 있는 계정이라 위험하다.
특정 서버에서만 사용 가능하도록 제한 하는게 필수이다.
최근 타회사 벌금 부과 사례를 보면 IP제한을 하지 않아 문제가 되는 경우가 많다.
https://zdnet.co.kr/view/?no=20210929131738
특정 IP에서만 사용가능하도록 하자.
조회 정도만 아무 곳에서 사용 가능하도록 하자.
3
그룹 생성
생성한 계정을 그룹에 넣는다.
계정 생성 시는 권한을 주지 않는다.
그룹에 권한을 준다.
개발팀을 그룹으로 만들자.
dev1 그룹을 만들고, 개발자들 계정을 넣자.
그룹에 권한(정책)을 부여하여 관리하자.
개인 계정별로 권한 관리를 하려면 너무 리소스가 많이 들어간다.
실무에서는 그룹으로 권한 관리를 한다.
4
역할 생성
정책을 역할에 부여
역할을 사용
역할이 필요한 서비스? 람다
EC2에 역할 부여하여 권한(정책)을 사용할수 있다. 예) S3 사용 권한
정책은 권한 이다.
예) S3 사용 권한
역할에 정책이 들어가 있다.
사용자가 잠시 역할을 사용할수 있다.
EC2등 리소스에 역할을 부여해서 해당 권한을 사용할수 있다.
예) S3 사용 권한을(역할) EC2에 부여한다. EC2에 로그온해 사용하면, S3를 사용할수 있다.
5
정책 생성
시각 편집기 또는 JSON 형식 2가지로 만들 수 있다.
dynamodb
seo-dynamodb-policy 형태로 작성해보자.
seo라는 회사의 다이나모 디비 , policy로 써보자.
나중에 seo정책을 한 번에 볼 수 있고, policy로 끝나 정책인지 알 수도 있다.
그룹에 정책을 넣어 사용하도록 한다.
그룹에 S3 생성 권한 주고, 삭제 권한은 부여하지 않는다.
그러면, 개발자는 해당 권한을 사용해 S3 생성 할수 있다.
6
정책 시뮬레이터 사용해보자~ (선택)
대시보드 - 오른쪽에 정책 시뮬레이터가 있다.
사용자 이름 선택 : 만든 사용자 계정
서비스명 선택 : dynamodb로 해보자.
Select ALL
Rum simulation을 눌러 권한을 확인해보자.
denied가 나온다.
왜냐하면 권한이 없기 때문이다.
사용자에게 dynamodb 권한을 부여하자.
다시
정책 시뮬레이터 사용해보자~
허용으로 나와야 한다.
// 그런데 이상하게 계속 deny가 나온다. 반영되는데 시간이 걸리나 보다.
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/getting-started_create-admin-group.html
IAM가서 그룹을 만들자
개발자 계정을 만들자.
정책을 만들어 그룹에 부여 하자. S3 생성 권한은 준다. 삭제 권한은 주지 않는다.
개발자 계정으로 S3를 만들어 보자.
서버를 만들자.
역할을 만들자. 서버에 역할을 부여해보자. 권한은 EC2 생성 권한
서버에서 EC2 생성 해보자.
2
https://brunch.co.kr/@topasvga/1544
다음
https://brunch.co.kr/@topasvga/2862
감사합니다.