본문 바로가기

AWS

챌린지랩 - IAM

728x90

Task #1

1. 그룹 생성하기

  • AmazonEC2ReadOnlyAccess
  • AWSCloud9EnvironmentMember

정책 넣고 AppDevelopers그룹 생성

 

2. 사용자 생성

 

그룹에 추가해주고 

마지막 성공 페이지에서 csv 파일 다운로드 눌러서 다운로드!!

 

3. DEVCafeServer 라는 cloud9을 눌러 IDE 오픈하기

터미널에

wget https://aws-tc-largeobjects.s3-us-west-2.amazonaws.com/ILT-TF-200-ACACAD-20-EN/mod8-challenge/install-cafe-app.sh
chmod +x install-cafe-app.sh
./install-cafe-app.sh

명령어 입력하기

 

4. IDE안에서 오른쪽 상단의 [share]버튼 눌러서

invite members로 Nikhil 사용자 추가하기

 

Task #2

새 시크릿 창을 띄워놓기

5. IAM - 사용자 - Nikhil 클릭

-> 보안 자격 증명 - 로그인 자격증명에서 [로그인 링크]를 카피

하고 새 시크릿 탭에 붙여넣기 해서 Nikhil로 로그인하기

 

6. 리전이 east-1이 맞는지 확인하기

EC2 콘솔에서 aws-cloud9-어쩌구라는 인스턴스의 IPv4 퍼블릭 IP주소 복사하기

새로운 탭에서 [아이피주소/cafe]를 입력해서 홈페이지가 잘 나오는지 확인(창 닫지마세욜)

 

7. EC2를 리부팅 해보기

그러면 오류가 날 것

Q1 : 권한이 없어서 실패

Q2 : Nikhil에게는 그룹의 AWSCloud9EnvironmentMember 정책을 연결한 사용자

 

8. Nikhil이 로그인된 시크릿 창으로 돌아오기

 

9. AWS Cloud9 콘솔을 열고

오른쪽 메뉴 아이콘에서 [Shared with you] 클릭

 

10. DEVCafeServer/www/html/cafe/index.php

파일을 열어서 13번째 줄을

<div class="center">Caf&eacute; DEV Site</div>

로 바꾼뒤 카페 홈페이지를 새로고침 해보자

그러면 Cafe 제목이 다르게 나온다 -> 지금 Nikhil이 개발 환경 안에서 바꾼 것이다

 

11. 카페 홈페이지에서 [Menu]를 클릭해보자

이런 식으로 거부 메시지가 나온다

 

12. Q3 : 어떤 메시지가 뜨는 가? A3 : 루트 유저에 접근할 수 없음

 

13. AWS 콘솔에서 (Nikhil로 로그인된) Systems Manager service에 들어가보자

 

14. Q4 : 어떤 메시지가 나오는가? 

위 에러메시지 읽어봐

 

15. Nikhil로, EC2 콘솔에서 PRODCafeServer 인스턴스의 IPv4 주소를 복사한 뒤

IPv4주소/cafe/menu.php를 새 창에 입력해보자

그럼 이런 창이 제대로 로드 되며 주문도 가능하다

 

Task #3

16. 다시 시크릿창 말고 원래 창으로 돌아와서 IAM - 그룹생성

-> 그룹 이름 : DBAdministrators

그룹 권한 :

  • AmazonRDSReadOnlyAccess
  • AmazonSSMFullAccess

인 그룹을 만든다

 

17. 이번에는 Olivia라는 사용자를 만들고

콘솔에서 로그인하도록 선택 한 뒤 비밀번호를 넣기

[로그인 할 때 비밀번호 다시 생성 어쩌구] 버튼은 누르지 않기

 

18. Olivia에 DBAdministrators 그룹을 추가한다

 

Task #4

19. 시크릿 창의 Nikhil에서 로그아웃 하고 Log back in을 선택

만약 계정 ID가 비어있다면 원래 나의 창으로 돌아와서 IAM - 사용자 - Olivia - 보안 자격증명 - 로그인 자격증명 링크 복사

하고 새 시크릿 창에서 붙여넣기

그리고 Olivia로 로그인한다

 

20. Olivia 로그인 상태!

콘솔에서 RDS - 실행중인 데이터베이스가 있는지 확인

-> 있고, 수행 중이라고 보이긴 하지만 권한 문제로 오류가 떠있음

 

21. 이번에는 EC2 콘솔로 ㄱㄱ

앗 API오류라는 빨간 글자가 보이고 실행 중인 인스턴스가 아무것도 보이질 않는다

 

22. Q5 : 왜 Olivia는 EC2 인스턴스에 접근하지 못하는가?

-> EC2에 대한 권한이 없다

 

23. 다시 원래 창으로 돌아오기(올리비아 x, 닠힐 x)

 

24. IAM에서 사용자 그룹 - DBAdministrators 그룹 선택

거기에 [권한 추가] - [정책 연결]로 다음의 정책을 추가해준다

  • AmazonEC2ReadOnlyAccess
  • IAMReadOnlyAccess

그럼 총 4개의 연결된 정책이 생김

 

25. 여전히 원래 창!

IAM의 사용자 Olivia를 열어서 [액세스 관리자] 탭으로 들어가보자

그럼 올리비아가 최근에 방문한 서비스들을 볼 수 있다. 이 서비스는 4시간 이내에 최근 서비스 활동이 표시된다

  • 이 보기를 사용하여 사용자의 권한이 필요 이상으로 열려 있는 방법을 파악할 수 있습니다. 이 정보를 통해 최소 권한 원칙에 따라 액세스 권한을 보다 긴밀하게 조정할 수 있습니다.

26. 올리비아 시크릿 창으로!!

가면 안보이던 EC2 인스턴스가 2개가 보인다

aws-cloud9-DEV어쩌구 인스턴스를 선택한다

[세부정보] 탭에서 마지막의 [IAM Role]의 [CafeRole]을 선택한다 - 그럼 새 창으로 넘어간다

CafeRole 창에서 [권한]에서 [AmazonSSMManagedInstanceCore] 정책을 선택

JSON 형식으로 읽어보자

 

27. Q6 : 

JSON 형식의 정책을 보고 정책 내에 있는 Action을 선택하는 것인듯 답은 2번

 

올리비아는 이제 EC2 인스턴스가 파라미터 스토어에 액세스 가능한 웹 애플리케이션임을 확신했다

근데 무슨 문제가 있나봄 ( 번역 : Sofía remembers that the development environment previously used a local database, but that it now uses Amazon RDS. The local database had a different user name that allowed the web application to connect to the database. Connecting to the database on Amazon RDS requires a different database user name. That must be the issue! 소피아는 개발 환경에서 이전에는 로컬 데이터베이스를 사용했지만 지금은 Amazon RDS를 사용한다는 사실을 기억한다. 로컬 데이터베이스에 웹 응용 프로그램이 데이터베이스에 연결할 수 있는 다른 사용자 이름이 있습니다. Amazon RDS의 데이터베이스에 연결하려면 다른 데이터베이스 사용자 이름이 필요합니다. 그게 문제인가 봐!)

 

28. 올리비아의 시크릿 탭!!

에서 AWS System Managers - [파라미터 스토어]로 들어간다. 거기의 dbUser를 업데이트 한다

 

29. 위에서 뭘 업데이트 하라는 건지 모르겠네

아무것도 안하고 (root라는 값을 다른 걸로 바꿔봄)

페이지도 제대로 되지 않았는데 제출하니 성공.,,,;;;;

모르겠으니 계속 해보자 aws-cloud9-DEVCafeServer의 ip주소/cafe/menu.php한 페이지로 들어가서 잘 되었는지 보면됨

 

Task #5

30. https://policysim.aws.amazon.com/ 원래 탭에서 링크 들어가기

 

31. 왼쪽에서 Olivia 유저 선택

 

32. IAMReadOnlyAccess 선택하고 나머지는 선택 해제

 

33. Policy Simulator 섹션에서 Identify and Access Management 필터로 검색 (select all)

 

34. 그럼 이런 식으로 권한에 관한 것들이 보임

 

35. 다시 원래 탭으로 돌아와서

 

36. IAM - 정책 - 정책 생성 클릭

 

37. [시각적 편집기] 탭에서

JSON 탭에서

이런 식으로 보이면 된다

여기의 랩에서는 정책 생성을 하는 권한이 주어지지 않았다 하지만, visual editor를 통해 정책을 생성하고, JSON 정책 파일을 처음부터(from scratch) 작성하지 않고도 세분화된 정책을 만드는 방식을 배운 것이다...

 

38. 정책 생성 취소하고

 

39. 정책 페이지에서 LimiedIamPolicy 검색 후 방금 만든 정책과 같은지 확인

 

40. DBAdministrators 그룹에서 정책을 수정한다

LimitedIamPolicy는 붙이고, IAMReadOnlyAccess는 제거

위의 그림과 같이 만들면 된다

 

41. 올리비아 시크릿 탭으로 돌아와!

EC2 콘솔로 가서 aws-cloud9-어쩌구 인스턴스를 선택

세부사항에서 caferole 확인

IAM 콘솔에서 역할 선택

caferole을 선택해서 AmazonSSMManagedInstanceCore 정책이 아까 본 JSON 파일과 맞는 지 확인 

 

 

728x90