IAM 뜻은 Identity and Access Management 이다.
서로를 인식하고 접근을 관리하겠다는 뜻이다.
강의가 진행될수록 이 의미를 더 명확하게 알수 있었다.
Root는 최상위의 권한을 가진 사람으로 처음 만들면 Root 이고 그 이후에 개인사용자를 만들어서 Group 에 추가할수있다.
Group 에는 오직 사용자만 배치가 가능하고 한사람이 다수의 Group에 참여 가능하다.
Stephane 이라는 사용자를 생성하고 admin 이라는 group,developers 라는 group 두 group 에 포함될수 있다는 말이다.
사용자와 그룹을 생성하는 이유가 무엇이냐면 AWS 계정을 사용하도록 허용하기 위함이다.
한 계정에 다중의 개인 사용자들이 모두가 AWS 계정을 사용하게 된다면 AWS의 원칙에 맞지 않을 뿐더러 관리하기가 매우 힘들어진다.
그렇기에 각각에게 맞는 권한을 주어서 사용하게 해야함.
권한은 JSON 으로 줄수도 있고 실제로 보니까 시각적 뭐시기로도 줄수있었음.
AWS는 최소권한의 원칙을 적용한다.
최소 권한의 원칙이 뭐냐면 한명의 사용자가 모든 서비스를 사용할수 있는것이 아니라 사용하고싶은 서비스에 대한 권한만 부여를 해서 그 서비스만 사용할수 있게 하는것이다.
3개의 서비스를 사용하고 싶으면 그 3개의 서비스에 대한 권한만 주는것.
그리고 그 권한을 Group 에게 부여를 할수 있고 Group에 포함된 모든 사용자들은 Group에 적용된 권한을 따르게 된다.
하지만 Group에 포함되지 않은 인원은 Inline 정책을 주어서 부여할수 있다.
시험에 나온다고 하는 데
Version,ID,Statement 로 나뉘어져 있고
Statement에 Sid,Effect,Principal,Action,Resource,Condition으로 나뉜다.
여기 보면 Resource는 모든곳에서 허용된다고 하고 Action은 Ec2:StartInstances 가 허용되어있다.
이렇게 그 사용자는 Instances 시작하는것에 허용된 권한을 가지고 있다는것이다.
사진을 보면 알겠지만 JSON 형태이고, 실제 AWS 에서 자신이 허용하고싶은,제한하고싶은 것들을 고르면 JSON 형태로 만들어지게 된다.
Password 는 Group 과 Users 의 정보가 침해당하지 않도록 보호한다.
2개의 정책이 있는데
걍 Pw를 ㅈㄴ 어려운걸 하는거임. 그리고 AWS의 Password에 맞춰서 설정해주면 된다.
또한 Root 계정(최상위 권한) 에서 IAM 사용자들의 비밀번호를 바꾸게 허용할수도 제한할수도 있다. 혹은 시간이 지나면 자신의 PW를 바꾸게할수도 있고,재사용은 못하게 할수도 있다..
다중 요소 인증 이라는 건데.. 아마 구글 로그인할떄는 이게 자동으로 될꺼라서 많이 알꺼다.
자신의 PW로 로그인을 하게 되면 MFA Token을 사용해서 MFA 를 통과해야하고 그것이 진행되면 Login 이 되는 방식이다.
이 방법을 사용하게 된다면 PW 가 유출이 된다고 해도 결국 인증은 물리적인 장치를 통해서 진행되어야 하기 때문에 해킹에 대한 걱정이 사라진다.
MFA는 Virtual Machine, U2F Security Key, Hardware KEy Fob MFA Device, Hardware Key Fob MFA Device for AWS GovCloud(us),, 이렇게 4개의 MFA를 사용할수 있고,,
실제 실습할떄는 Virtual Machine 을 사용해서 IPHONE 에 어플을 깔고 내가 로그인시 나오는 Token이 IPHONE 에 뜨게되고 그 번호를 최종적으로 입력해주어야 Login 이 된다.
4개 뭐쓰는지 외우기.
AWS 에 접근하는 방법은 3가지가 있다.
가장 많이 사용하는 방법으로 Console 을 사용하는것이다. 지금까지 실습한것은 다 Console 로 실습했고 아이디 로그인하고 PW 입력하고 MFA 인증 끝나면 로그인 된다.
Terminal 에서 AWS Access 를 가능하게 한다.
Access Key로 접근해서 서비스를 사용할수 있다.
AWS 로 부터 Application code 내에서 API 를 호출하고자 하는 방식
이건 강의에 정확하게 나오지는 않았는데 내가 SPring 에서 S3 를 연결할때 Access Key, Secret Access key 를 연결해주고 API 를 끌어와서 쓴적이 있는데 그걸 말하는것 같다.
Access KEy는 PW 와 같은것으로 절대 타인과 공유는 하면 안된다.
IAM 의 마지막 구성요소 이다.
실제 사람이 사용하도록 만들어진것이 아니고 AWS 서비스에 의해 사용 되도록 만들어젔다.
EC2 Instance Roles,,,Lambda Function Roles,,, 등. 서비스에게 역할을 부여해서 권한을 설정한다.
이 부분은 기초문제에서도 나왔던것처럼 꼭 알아둬야한다.
실제 실습에서도 두가지를 들어주며 설명해줘서 더 이해하기 쉬웠다.
두가지를 통해서 부여된 권한,,,등 사용자들의 상태를 한눈에 보여준다.
그렇게 지금 다른일,,?을하는 사용자들을 감시할수있다.
자격증명보고서 이다.
계정에 있는 사용자와 다양한 자격증명의 상태를 포함해서 보여준다
접근 권한자?이다.
사용자에게 부여된 서비스의 권한과 해당 서비스에 마지막으로 Access 한 시간을 보여준다.