Cloud

[AWS/Cloud] 강의 노트: IAM 및 AWS CLI

728x90
반응형

 


IAM 소개 : 사용자, 그룹, 정책

  • IAM : Identity and Access Mangement
    • 사용자를 생성, 그룹에 배치 → 글로벌 서비스 해당
    • 루트 계정 : 오직 계정을 생성할 때만 사용되야 함 → 사용자를 생성해서 사용
    • 하나의 사용자는 조직 내의 한 사람에 해당
    • 필요에 따라 그룹으로 묶을 수 있다
    • 그룹에는 사용자만 배치 → 다른 그룹을 포함시킬 수 없다
    • 한 사용자가 다수의 그룹에 배치될 수 있다

 

IAM : Permission

  • 권한을 부여하기 위해 IAM 정책이라고 불리는 JSON 문서를 지정할 수 있다
  • AWS에서는 최소 권한의 원칙을 적용
  • cf. 사용자에게 필요로 하는 것 이상의 권한을 주지 않는다

IAM 정책

  • 그룹을 생성하고 정책을 그룹 레벨에서 연결
  • → 정책이 그룹의 모든 구성원에게 적용, 정책의 상속이 가능
  • 특정 사용자에게만 연결이 가능한 정책의 생성도 가능 : Inline 정책

 

정책의 구조

  • Sid : 문장 ID

IAM MFA 개요

  • 그룹과 사용자들의 정보가 침해당하지 않도록 보호
  • 방어 매커니즘 2가지
    1. 비밀번호 정책
    2. MFA

 

IAM - Password Polity

  • 최소 길이 설정
  • 특정 글자 요구 : 대문자, 소문자, 특수문자
  • IAM 사용자들의 비밀번호 변경 허용/금지
  • 일정 기간 후 비밀번호 만료, 새 비밀번호 요구
  • 비밀번호 재사용 금지

 

MFA (Multi Factor Athentication)

  • 다요소 인증 : 비밀번호 + 보안 장치
    • MFA 생성 토큰 등
  • AWS에서 MFA 매커니즘 사용을 필수 권장
  • 해킹으로 인해 비밀번호가 누출되더라도 계정 침해되는 것을 방지

 

MFA 옵션

  • 가상 MFA 장치
  • U2F 보안 키 : 물리적 보안 장치
  • 하드웨어 키 팝 MFA 장치
  • ..

AWS 액세스 키, CLI, SDK

  • 유저가 AWS에 액세스 하는 방법은 3가지
    1. AWS 콘솔 : password + MFA 보안
    2. CLI (Command Line Interface, 명령줄 인터페이스) : 액세스 키 보안
    3. SDK (Software Developer Kit) : 액세스 키 보안
      • 애플리케이션 코드 내에서 API를 호출
  • 액세스 키의 생성 ⇒ 관리 콘솔 사용
  • 사용자들이 자신들의 액세스 키를 직접 관리
    • 자신의 액세스 키를 동료들과 공유해서는 안됨

 

AWS CLI

  • 명령줄 셸에서 명령어를 사용해서 AWS 서비스들과 상호작용할 수 있도록 해주는 도구
  • 모든 명령어가 aws로 시작
  • AWS 서비스의 공용 API로 직접 액세스가 가능
  • CLI를 통해 리소스를 관리하는 스크립트를 개발해 일부 작업을 자동화 가능
  • 오픈 소스이며 관리 콘솔을 사용하지 않고 CLI만으로도 사용이 가능

 

AWS SDK

  • 소프트웨어 개발 키트
  • 특정 언어로 된 라이브러리의 집합 → 프로그래밍 언어에 따라 개별 SDK가 존재
  • 터미널 내에서 사용하는 것이 아님 → 코딩을 통해 애플리케이션 내에 심어두는 것
  • 다양한 프로그래밍 언어 지원

IAM Role

  • 이를 위해 사용자와 마찬가지로 권한이 필요AWS 서비스 몇 가지는 우리의 계정에서 실행해야 함
    ⇒ AWS 서비스에 권한을 부여해야 한다 ⇒ IAM Role을 생성
  • EC2 인스턴스를 사용하기 위해, 권한을 부여해야 함
  • IAM Role을 만들어 EC2, IAM Role을 하나의 개체로 만든다
  • EC2 인스턴스가 AWS에 있는 어떤 정보에 접근하려고 할 때, IAM Role 사용
  • 권한을 올바르게 부여한 경우, 호출에 접근

IAM 보안 도구

  1. IAM 자격 증명 보고서
    • 계정 수준
    • 계정이 있는 사용자와 다양한 자격 증명의 상태를 포함
  2. IAM 액세스 관리자
    • 사용자 수준
    • 사용자에게 부여된 서비스의 권한과 해당 서비스에 마지막으로 액세스한 시간 포함

IAM 모범 사례

  • 누군가 여러분의 AWS를 이용하고 싶다면 → 자격 증명을 주지 말고 새로운 사용자를 만들어 준다
  • 사용자를 그룹에 넣고, 해당 그룹에 권한을 부여
  • MFA 사용을 권장
  • 권한을 부여할 때마다 역할을 만들고 사용해야 함
  • CLI, SDK를 사용할 경우 → 반드시 액세스 키를 만든다
  • cf. 액세스 키는 비밀번호와 같다
  • 계정 권한의 감사 → IAM 자격 증명 보고서, IAM 액세스 분석기를 사용할 수 있다
  • 절대로 IAM 사용자와 액세스 키를 공유하지 말 것

IAM 요약

  • AWS 사용자와 IAM 사용자가 매핑
  • 사용자는 AWS 콘솔에 대한 비밀번호를 갖는다
  • 사용자를 그룹에 두어 사용하는 것이 바람직
    • 그룹은 사용자만을 포함
    • 다른 그룹을 포함할 수는 없음
  • 사용자나 그룹에 권한을 부여
  • IAM 정책을 생성 → JSON 문서
  • AWS에서 역할을 사용할 수 있다
    • 어떤 권한을 주려고 할 때는 IAM 역할을 만들어야 한다
  • 보안과 관련해 MFA를 활성화 → 로그인 시 2번째 장치를 이용, 강한 비밀번호 정책
  • CLI 또는 SDK를 이용해 액세스하려면, 반드시 액세스 키를 만들어야 함
    • 프로그래밍 방식으로 접근할 수 있다
  • IAM 대시보드를 감사 → 자격 증명 보고서(사용자 관련 정보), IAM 액세스 관리자(특정 사용자 정보)