AWS - 01. IAM

배뭉·2022년 7월 23일
0

AWS

목록 보기
2/2
post-thumbnail

IAM(Identity and Access Management)이란?

IAM이 제공하는 서비스

유저를 관리하고 접근 레벨 및 권한에 대한 관리

접근키(Access Key) 비밀키(Secret Access Key) 생성

  • Root 유저가 유저 A를 생성하면 IAM은 A라는 유저에 대한 접근키와 비밀키를 생성 해줌
  • 유저 A는 해당 키들을 가지고 AWS 서비스들을 사용할 수 있음

매우 세밀한 접근 권한 부여(Granular Permission)

  • AWS DynamoDB 테이블 생성, 삭제, 복사라는 기능 중,
  • 유저 A에게 테이블 삭제나 복사기능을 제한하고 생성 기능만 허락할 수 있다.

비밀번호를 수시로 변경 가능

  • 보안적인 이유
  • 한달 또는 분기별로 한번씩 모든 AWS 사용자들의 비밀번호 업데이트를 강요

MFA (Multi-Factor Authentification, 다중 인증)

  • Facebook, Google등 다양한 사용자 인증을 요구
  • 특히, Root유저는 무조건 MFA를 해야한다고 AWS에서 권장

Root유저로 생성할 수 있는 것들

1. 그룹 (Group)

2. 유저 (User)

3. 역할 (Role)

  • 역할에 하나 혹은 다수의 정책을 지정 가능
  • 그래서 유저마다 다양한 정책을 부여함으로써 다른 권한을 위임 (Full Access or Not)

4. 정책 (Policy)

  • JSON 형태로 작성되어 있는 Document를 가르킴
  • 세밀한 접근 권한을 일일이 설정하여 하나의 정책 Document를 만들 수 있음
  • 따라서, 다양한 정책을 만들어 다양한 접근 레벨 및 권한 부여가 가능

정책은 그룹, 역할에 추가시킬 수 있음
하나의 그룹 안에 다수의 유저가 존재 가능

IAM은 Universal 하다!
지역 설정이 필요 없음

IAM 정책 시뮬레이터

  1. 개발 환경(Develop or Staging)에서 실제 환경(Production)으로 빌드하기 전 IAM 정책이 잘 작동되는지 테스트하기 위함

  2. IAM과 관련된 문제들을 디버깅하기에 최적화된 툴

이미 실제로 유저에 부여된 다양한 정책들도 테스트 가능

IAM 실습

사용자 생성

  • 사용자 탭 -> 사용자 추가

Access 유형

  1. 프로그래밍 방식 Access
  • 접근키(Access Key) 비밀키(Secret Access Key) 생성해서 API나 CLI를 통해 서비스에 접근
  1. AWS Management Console Access
  • 비밀번호를 부여해주고 해당 비밀번호로 서비스에 접근

  • Access 유형 선택 이후로는 모두 다음을 눌러줘도 무방

그룹 생성

  • 사용자 그룹 탭 -> 그룹 생성

  • 그룹 이름을 지정하고, 사용자를 추가한 뒤 일단 정책은 연결하지 않고 그룹을 생성

역할 생성

  • 역할은 각 사용자에게 다양한 Policy(정책)을 부여할 수 있다.

  • 역할 탭 -> 역할 만들기

  • 역할을 만들게 되면 위 이미지와 같이 다양한 서비스가 뜨는데, 아직은 몰라도 됨

우리가 특정한 역할을 만든다면 그 역할 안에서 어떠한 서비스를 차단, 허용하는지에 대한 권한을 주는 것

정책과 비슷한 것 같지만, 역할은 사용자와 밀접한 연관이 있음

(개인적으로 역할보다는 정책이 더 중요하다 생각)

정책 생성

  • 기본적으로 AWS에서 제공하는 정책이 이미 존재함

  • 정책 탭 -> 정책 생성

  • 정책 생성하는 2가지 방법.

  1. 시각적 편집기
    우리가 원하는 서비스(ex: DynamoDB)를 선택하면 해당 서비스에서 허용되는 Access Level을 선택

읽기, 쓰기 선택

이 후 리소스(DynamoDB에서 제공하는 다양한 Function)들을 임의대로 추가하고 제거할 수 있음.
-> 일반적으로는 모든 리소스들을 선택

  1. JSON
    수동으로 JSON 정책 Docuement를 생성할 수 있음

생성하려는 정책의 이름을 부여한 뒤 정책 생성

정책 리스트에 방금 생성한 정책을 확인할 수 있음

그리고 해당 정책을 선택하고 들어가서 정책 요약 옆 {} JSON을 선택해보면, 위와 같은 JSON 정책 Document를 확인할 수 있음

마찬가지로 기존에 생성된 정책들도 위와 같은 방법으로 JSON Document 로 작성된 정책을 확인 가능

IAM 정책 시뮬레이터

IAM Home 우측 하단의 도구 밑 정책 시뮬레이터를 선택

우리가 생성한 유저, 그룹, 역할들을 살펴볼 수 있음

유저 탭에서 방금 생성한 aws_learner 유저를 선택하면, 해당 유저에 대한 정책들을 확인할 수 있음

아직은 아무 정책을 추가하지 않았기 때문에 아무것도 뜨지 않는데
그말인 즉슨, aws_learner 유저는 어떠한 권한도 가지고 있지 않음

위 말이 사실인지 확인할 수 있는 것이 정책 시뮬레이터

우측 파티션 Policy Simulator에서 DynamoDB 서비스를 선택하고, Actions는 Select All을 한 뒤 Run Simulation을 돌려보면 아무런 권한도 없기 때문에 Permission Denied가 뜨는 것을 확인할 수 있음

유저에 정책 추가하기

유저 탭에서 aws_learner 유저를 선택하고, 권한 시작하기 아래에 보이는 권한 추가를 선택

일단은 기존 정책 직접 연결을 선택하고 AmazonDynamoDBReadOnlyAccess 정책을 선택하고 추가

그 다음 다시 IAM 정책 시뮬레이터 돌아와서 새로고침을 하거나, 기존창을 닫고 다시 IAM 정책 시뮬레이터에 접속하여 aws_learner 유저를 선택하면 위 이미지 처럼 AmazonDynamoDBReadOnlyAccess 정책이 추가된 것을 확인할 수 있음

지금은 AmazonDynamoDBReadOnlyAccess 정책하나 밖에 없지만, 한 유저에게 다양한 정책이 있을 때 체크 박스를 끄고 키면서 정책 시뮬레이션을 돌릴 수 있다.

다시 우측 파티션 Policy Simulator에서 DynamoDB 서비스를 선택하고, Actions는 Select All을 한 뒤 Run Simulation을 돌려보면 아까와는 다른 결과를 확인할 수 있음

AmazonDynamoDBReadOnlyAccess 정책이 지원하는 Read 관련 기능들은 allowed 됨을 확인

profile
SSAFY 6th -> SEC VD SW 👨‍💻🔥

0개의 댓글