[AWS Certified Solutions Architect Associate 2025] 섹션4: IAM 및 AWS CLI

1. IAM(Identity and Access Management)이란?


AWS Identity and Access Management (IAM)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스이다.

AWS 계정을 최초 생성할 때 만들어진 ID를 루트 사용자라고 하며, 이 사용자는 사용되거나 공유되면 안된다.

IAM은 사용자들을 묶어 그룹으로 만들 수 도 있으며, 각각의 사용자들에 대해 권한을 설정할 수 도 있다. 이를 JSON 으로 부여할 수 있는데, 이건 클라우드 프로젝트에서 했던 거다. 아 그룹 안에 멤버로 그룹은 못 넣으니 참고하자.

실습



IAM - 사용자 그룹 - 그룹 생성 순으로 하면 된다.


이건 사용자 - 사용자 생성이다.
콘솔 액세스 권한을 원래 Identity Center에서 줘야하지만, 밑에 거가 더 간단하니까 일단 이렇게 한다. 시험에는 의미가 없대요

만든 사용자가 내가 아니라면 사진처럼 설정하는게 맞겠지만, 이건 내가 접속하는 용도니까 맨 밑에꺼는 없애고, 사용자 지정 암호로 하면 된다.


그룹을 여기서 만들어도 되고, 있던 거 써도 되고 그런다.


이러면 끝이다. 저 태그는 구분을 쉽게 하기 위해 만들어둔 용도다.

다 만들고 사용자 - Stephane로 들어가 보면,

연결 방식에 그룹 Admin이라고 적혀있다. 이를 통해 그룹을 통해 권한 변경을 더 편하게 할 수 있다.

로그인하기


IAM 대시보드를 보면, 계정 ID만 적혀있다. 이러면 루트 계정이다.
옆에 있는 계정 별칭을 대충 aws-stephane-v898로 해보자.
alias에 저 별칭을 넣고 로그인 하면,

이렇게 IAM 이라고 뜬다.

2.IAM 정책


각 사용자들은 여러개의 그룹에 속할 수 있고, 각각 그 그룹간의 정책을 상속받는 형태로 이루어져 있다.


정책은 JSON 형식을 따르는데, 각각 설명하는 바는:

  • Version: 정책 언어 버전, 지금은 2012-10-17 사용한다.
  • Id: 정책 구분 용도 (선택)
  • Statement: 정책 문장들 모아놓은 거
    - Sid: Statement 구별자(선택)
    • Effect: 어떤 권한을 허용할지, 거부할지 설정
    • Principal: 특정 정책이 적용될 대상, 그룹, 사용자 등등..
    • Action: Allow / Deny 될 정책
    • Resource: 적용될 action의 리소스 목록
    • Condition: 언제 Statement가 적용되는지 설정 (선택)

실습

Stephane는 Admin으로 fullaccess가 가능했었다. 하지만 다시 이걸 지우면? 안되겠죠

이런식으로 연결방식에 따라 여러 정책을 상속시킬 수 있으며,

이런 식으로 생긴 것을 알 수 있다.

정책 - 정책 생성을 통해 나만의 정책을 만들 수도 있다.

3. IAM MFA

IAM에는 비밀번호 관련 정책 또한 존재한다.
강한 비밀번호는 더 높은 보안을 가능하게 하기 때문이다.

AWS에서 설정할 수 있는 비밀번호 정책은:

  • 최소 비밀번호 길이
  • 대문자, 소문자, 숫자 등..
  • IAM 사용자들의 비밀번호 변경 가능 유무
  • 비밀번호 Expired 기간 및 이전에 사용했던 비밀번호 가능/불가능

MFA(Multi Factor Authentication) - 다중인증
루트 계정과 사용자들을 보호하기 위해, 비밀번호 + 내가 가지고 있는 기기를 사용한다 -> 비밀번호 도난당해도 로그인이 불가능하다.

MFA OPTIONS(시험 나올지도)

  1. Virtual MFA Device
    -Google Authenticator / Authy -> 한 계정당 하나의 토큰, 한 디바이스에 여러개 토큰
    -Universal 2nd Factor(U2F) Security Key -> 한 기기에 한 토큰. 여러 계정 가능.
    이거 말고 몇개 더 있다.

실습


암호 정책을 내 맘대로 할 수 있다. mfa 설정은 그냥 하면 되니까 패스.

4. AWS 액세스 키, CLI 및 SDK

AWS에 접속하는 방법은 세가지가 있다.
1. AWS Management Console - 우리 하는거
2. AWS CLI - 액세스 키로 보호, 커맨드 라인 인터페이스
3. AWS SDK - 특정 언어로 된 API 및 라이브러리 제공, 얘도 액세스 키로 보호

사용자들이 각자의 액세스 키를 만들기 때문에, 공유하면 안된다.
액세스 키의 ID는 USERNAME, SECRET KEY는 비밀번호라고 생각하면 된다.

실습

액세스 키를 만들어 봅시당.

어떻게 사용할지에 따라 권장되는 대안이 달라진다. 로컬 코드인지, aws 내부에서 실행되는지 등등.. 실행 환경에 따라 알아서 잘 설정해봅시다.


이런식으로 cli를 통해 관리 콘솔과 동일한 역할을 할 수 있다.


저 종 옆에 콘솔 버튼 누르면 나오는게 Cloudshell인데, 관리 콘솔에서 하는 터미널이라고 생각하면 된다.
cli랑 다른게 뭔데 라고 할 수도 있긴 한데, 전체 저장소 가 있어서 CLoudShell을 재시작해도 파일이 남아있다는 점과, 커스터마이징이 된다는게 장점이다. 파일의 업로드와 다운로드도 쉽다.

5. IAM Role

IAM Role은 사용자와 같지만, 사용 주체가 사람이 아닌 서비스다.
예를 들어 ec2 서버에서 aws에 접근하기 위한 권한 설정에 IAM Role을 사용한다 이말.
aws의 실체들에게 aws에서 작업할 수 있는 권한을 준다 생각하면 된다.

실습

이건 뭐 없다.

6. IAM Security Tools

두가지가 있다.
1. IAM Credentials Report - 이건 Account 레벨, 즉 루트 계정에서 모든 사용자들의 Credentials를 확인한다.

  1. IAM Access Advisor - User level에서 사용자에게 주어진 권한의 종류와 마지막 접근 시각을 알려준다. 이를 통해 최소권환의 원칙 유지가 가능하다.

이 두개를 통해 IAM 사용량을 감사할 수 있다.

7. IAM GuideLines

잘 쓰기 위한 팁이랄까나.

  1. AWS 계정 세팅을 제외하고는 루트 계정을 사용하지 마라.
  2. 하나의 계정은 한 사람만 써라.
  3. 사용자들을 그룹에 추가하고, 그룹에 권한을 부여하라.
  4. 비밀번호 정책을 강하게 해라.
  5. MFA를 사용해 보안을 높여라.
  6. AWS Services들에게 권한을 주기 위해 Role을 사용해라.
  7. CLI/SDK 사용을 위한 액세스 키를 만들어라

0개의 댓글