본문 바로가기
🟡 Ops

[AWS] IAM(Identity and Access Management)

by 제리강 2023. 7. 8.

IAM(Identity and Access Management)

  • AWS 계정 및 권한 관리 서비스
  • AWS 서비스와 리소스에 대한 액세스 관리
  • 사용자, 그룹, 역할, 정책으로 구성
  • 리전에 속하는 서비스가 아닌 글로벌 서비스
  • 계정 보안 강화를 위해 루트 계정은 최초 사용자 계정 생성 이후 가능하면 사용하지 말 것
  • 사용자 계정으로 서비스를 사용하고 필요한 최소한의 권한만 부여(최소 권한의 원칙)
  • 루트 계정과 개별 사용자 계정에 강력한 암호 정책과 멀티팩터 인증(MFA) 적용
  • 사용자 암호에 대한 복잡성 요구 사항과 의무 교체 주기를 정의

 

IAM 액세스 관리

  • 사용자(User): 사람, ID, 계정
  • 그룹(Group): 사용자의 모음
  • 역할(Role): AWS 리소스에서 사용하는 자격 증명(예: EC2에서 실행되는 앱이 S3, RDS와 같은 AWS 리소스에 액세스하는 권한)
  • 정책(Policy): 사용자, 그룹, 역할에 대한 권한 정의 JSON 문서 형식으로 구성

 

IAM 기초 실습

  • 보안 자격 증명 - MFA 이용해 보안을 강화할 수 있음
  • 사용자 추가, 그룹 생성 메뉴
  • 그룹에 미리 설정되어 있는 정책 리스트에서 정책을 선택하여 연결
  • 정책은 JSON 형태이며 어떤 권한을 설정하는 지 명시되어 있음
  • 그룹에 사용자가 속하고, 해당 그룹에 정책(특정 권한)이 부여
  • IAM 사용자를 위한 임의의 로그인 URL이 있고, 별칭을 설정해 custom URL을 설정할 수 있음
  • 이 URL로 들어가 설정한 사용자 이름과 비밀번호를 이용해 서비스를 이용할 수 있음
  • 일반 주소로 들어가도 'IAM 사용자'를 선택해 로그인할 수 있음
  • 계정 ID나 별칭, 비밀번호를 입력하여 로그인
  • 정책 중 Admin 권한은 AWS 모든 서비스를 이용할 수 있음

 

IAM - 정책

  • AWS 리소스에 대한 액세스 권한을 정의한 것
  • 사용자, 그룹, 역할에 정책을 연결하여 사용
  • JSON 형식
  • Effect: Statement에 대한 Access 또는 Deny
  • Action: 권한에 대한 작업 목록
  • Resource: 권한이 적용되는 리소스
  • Condition: 정책이 적용되는 세부 조건(옵션 - 예: 특정 리전, 특정 IP)
  • 특별한 명시 없이 * 표시는 모든 항목을 나타냄
  • 정책이 명시되지 않은 경우 모든 요청이 거부(Deny)
  • StringNotEquals - string으로 표현되는 특정 항목을 제외할 때 이용

 

IAM - 권한 경계(Permission Boundary)

  • IAM 사용자 또는 역할에 최대 권한을 제한하는 기능
  • 사용자 > 권한 > 권한 추가 > 기존 정책 직접 연결 > 정책 선택(EC2FullAccess)
  • 실제로 EC2 인스턴스 생성하여 해당 권한 가지는 지 확인
  • 사용자 창에서 Permission Boundary > 경계 설정 선택 > EC2ReadOnlyAccess
  • 인스턴스 생성, 삭제는 안되는 것 확인
  • 경계를 제거하면 다시 인스턴스 생성, 삭제 가능한 것 확인
  • 정책을 생성하여 사용할 수도 있음
  • 시각적 편집기나 JSON 형태로 생성 가능
  • 시각적 편집기로 편집하면 JSON으로 변환됨

 

IAM - 역할

  • AWS 리소스에서 사용하는 자격 증명
  • 특정 AWS 서비스가 다른 서비스에 액세스하여 작업을 수행할 때 필요한 권한
  • 정책을 연결하여 IAM 역할에 작업 수행에 필요한 권한을 부여

 

IAM - 역할(신뢰정책)

  • IAM 역할을 사용하여 AWS 계정 간 액세스 권한 위임을 하는 기능
  • 신뢰 정책(Trust Policy)을 사용하여 다른 AWS 계정에 역할을 위임할 수 있음

 

IAM 역할 실습

  • IAM > 역할 > 역할 생성
  • 신뢰할 수 엔터티 > AWS 서비스
  • 서비스 선택 > 다음
  • 권한 검색 또는 선택하여 추가(체크), 여러 개 가능
  • 역할 이름 설정 > 역할 생성
  • 서비스 창(예: EC2) > 고급 세부 정보 > IAM 인스턴스 프로파일 에서 생성한 역할 선택
  • 해당 서비스에서는 만든 역할에 포함된 사용자가 서비스를 사용할 수 있음

 

IAM 보안 도구(Security Tools)

  • IAM 자격 증명 보고서(Credential Report)
    • 계정의 모든 사용자와 암호, 액세스 키, MFA 디바이스 등의 자격 증명 상태에 대한 보고서를 다운로드
  • IAM 액세스 관리자(Access Advisor)
    • 사용자 또는 역할이 허용된 서비스에 마지막으로 액세스하려고 시도한 시간을 표시
  • 이 정보를 사용해 필요 이상으로 부여된 권한을 재정의하는 데 참고 가능

 

IAM 보안 도구 실습

  • IAM > 자격 증명 보고서 > 파일 다운로드 > 활동 내역 확인
  • IAM > 사용자 > 사용자 클릭 > 액세스 관리자 > 어떤 서비스에 언제 마지막으로 액세스 했는 지 확인 가능
  • IAM > 역할 > 역할에 대한 액세스 내역 확인

 

IAM Policy Simulator

댓글