AWS - 2 [IAM]

_Block·2022년 8월 27일
0

AWS

목록 보기
2/27
post-thumbnail
post-custom-banner

👆 IAM

사용자를 생성하고 그룹에 배치하기 떄문에 글로벌 서비스 입니다.

AWS에서 계정을 생성할 떄 루트 계정을 만들게 되는데 이는 기본 계정으로 루트 사용자가 됩니다.

이후로는 사용자들을 생성해야 하고, 생성되는 사용자들은 그룹으로 묶여서 관리가 됩니다.

  • 이를 IAM이라고 합니다.
  • 루트 계정 또한 사용자로 취급됩니다.
Example

a,b,c. d,e  f 라는 조직이 존재하게 된다고 가정을 하겠습니다.

a,b,c는 개발자 집단으로 한 그룹으로 취급을 합니다.

d,e는 오퍼레이터로 한 그룹으로 취급을 합니다.

이런식의 구성을 IAM이라고 합니다.

앞선 예시처럼 f난 그룹을 형성하지 않지만 이런식의 구성도 가능합니다.
- 반드시 그룹을 형성하는 것이 좋다고는 할 수는 없지만 그래도 그룹형태로 관리를 하는것이 좋은 방법 입니다.


또한 한 사용자가 여러개의 그룹에 속하는 것 또한 가능합니다.

c,d는 부수적인 업무로 감사팀에서 속해있다면 c는 개발, 감사 그룹에 속하게 되고, d는 오퍼레이터, 감사 그룹에 속하게 됩니다.

👆 그룹을 형성하는 이유

권한을 설정하기 위해서 그룹을 형성 합니다.

  • 이를 위해서 권한에 대한 정보를 JSON으로 제공하기도 합니다.

AWS는 모든 사용자들에게 모든 접근권한을 제공하지는 않습니다.

새롭게 유입되는 사용자들의 실수로 인해 많은 비용이 부과될 수 있기 때문에,

사용되는 서비스에 한해서 권한이 부여 됩니다.

  • 이를 최소권한 정책이라고 합니다.

👆 IAM 실습

AWS에는 리전, 글로벌 서비스로 구분이 되는데 IAM은 글로벌 서비스 입니다.

Link : https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/home

  • 보이는 바와 같이 글로벌 서비스로 지칭되어 있는 것을 확인할 수 있습니다.

왼쪽 대시보드를 통해서 사용자 - 사용자 추가를 선택 합니다.

  • 현재 접속해 있는 계정은 root계정이라고 합니다.
  • root 계정은 모든 권한을 가지고 있기 떄문에 매우 위험한 계정으로 따로 관리자 계정을 만들어서 관리를 하는것이 보안적으로 최선입니다.

첫번쨰 페이지 에서는 UserName과 Password자격증명을 선택해 원하는 계정을 생성 합니다.

  • 일반적인 회원가입과 유사합니다.

앞서 만든 계정은 admin계정으로 사용일 될 것이기 떄문에 정책에 Admin..Access를 선택해 줍니다.

이후의 페이지는 옵션값 입니다.

  • 단순히 어떤 역할을 하는지 적어주는 부분으로 진행이 됩니다.

  • 제가 설정한 User의 정보는 이와 같습니다.

가장 중요한 부분은 이후 생성된 .csv파일을 다운로드 해주어야 합니다.!!

👆 IAM 실습 - 생성된 계정으로 접속

이후 생성된 계정으로 접속을 하고자 합니다.

대시보드에 보이는 바와 같이 방금 생성한 그룹, 사용자가 추가 되어있습니다.

이 계정에 접속을 하고자 한다면 대시보드의 오른쪽에 있는 AWS계정을 유심히 살펴보아야 합니다.

이 부분에서 계정 별칭이라는 부분에 생성이라는 부분이 있는 것을 확인해 볼 수 있습니다.

이후 생성 부분을 통해서 원하는 이름을 생성하고 아래 있는 URL로 접근합니다.

  • 이떄 중요한 점은 새로 브라우저를 열고 접속을 해야 합니다!!

그러면 이러한 정보에 접근이 가능하고 아까 설정한 이름, 비밀번호로 로그인 합니다.

👆 IAM 정책

  • 해당 JSON파일을 뜯어보며 IAM의 정책에 대해서 알아보겠습니다.

🔨 Version

정책 언어 버전으로 보통 2012-10-17로 사용 합니다.

🔨 Id (optional)

정책을 식별하는 ID값으로 Option입니다.

🔨 Statement

중요한 사항으로 어떤 정책으로 구성이 되어있는지를 명시 합니다.

1. Sid : statement의 식별자로 Optional한 값 입니다.

2. Effect : 문장이 특정 API에 접근 가능한지를 입력하는 값 입니다.
- Allow, Deny 둘중 하나로 구성 됩니다.

3. Principal : 정책이 적용될 계정을 선언 합니다.
- 현재 사진에서는 root계정이 적용이 되고 있습니다.

4. ACtion : API요청에 의해서 거절 or 승인되는 항목을 선언 합니다.

5. Resource : action이 적용 될 리소스의 목록 입니다.

👆 IAM 정책 실습

해당 과정을 진행하기 위해서는 두가지의 화면이 필요 합니다.

저희가 아까 만들어 놓았던 계정의 정보 입니다.

  • 해당 계정의 경우에는 admin권한을 주어기 때문에 이후의 그룹 생성하는 것에는 문제가 없습니다.

하지만 해당 권한을 삭제하고 새로운 권한을 부여해 보겠습니다.

X버튼을 눌러 권한을 삭제하고, 권한 추가를 통해서 readOnly권한을 추가 하였습니다.

오른쪽은 생성된 계정으로 접속한 브라우저 입니다.

이 계정을 통해서 권한 생성을 진행하면 현재의 권한이 readOnly이기 떄문에 권한을 생성 할 수 없다는 것을 확인할 수 있을 것 입니다.

이외에도 새로운 그룹을 생성하고 해당 그룹에 연결하는 등 다양하고 유연한 작업이 가능합니다.

👆 IAM - MFA

그룹과 사용자들이 생성 되었기 떄문에 이 계정들이 침해당하지 않게 보호해야 합니다.

  • 즉 보안에 관한 내용입니다.
  1. 비밀번호 정책
  • 비밀번호의 최소 조건을 설정하여 구성하는 보안 정책입니다.

예를들면 대문자가 한개 들어가야 한다.
특수문자가 포함되어야 한다 등등이 있습니다.

  1. 다요소 인증, MFA

필수적으로 사용하도록 권장되는 장치 입니다.

기본적으로 User들이 형성이 되었을떄 User들의 보안도 중요하지만, Root계정, admin계정은 수정권한이 부여되기 때문에 특히나 중요합니다.

그러기 때문에 필수적으로 권장이 되는 장치이며, MFA는 비밀번호와 보안장치를 함께 사용하는것을 의미합니다.

예를들면 계정에 접속하고자 한다면 비밀번호 + 특정 토큰이 필용한 상황이 MFA가 적용되었다고 할 수 있습니다.

MFA의 종류에는 크게 두가지가 있습니다.

1. Virtual MFA device
- 저희가 일반적으로 알고있는 OTP와 유사하게 작동을 합니다.

2. 보안 키
- 물리적인 장치로 USB를 활용하는 방법을 의미하비다.

👆 IAM - Security Tools

  1. IAM Credentials Report (account-level)
  • 계정에 있는 사용자와 다양한 자격 증명의 상태를 포함한다.
  1. IAM Access Advisor (user-level)
  • 사용자에게 부여된 권한과 서브시에 마지막으로 접근한 시간을 포함한다.
  • 이 정보를 통해서 정책을 바꿀 수 있습니다.

단순히 IAM의 변경 사항에 대한 보고서를 볼 수 있는 Tool입니다.

  • 대시보드에서 Access reports를 통하여 접근 가능합니다.
profile
Block_Chain 개발자 입니다. 해당 블로그는 네트워크에 관한 내용을 다루고 있습니다.
post-custom-banner

0개의 댓글