728x90
반응형




  • IAM : Identity and Access Management, Global
  • IAM 계정은 root 사용자이고, 계정을 만들 때에만 사용해야 함.
  • root 계정으로 동일 관리자 권한을 가진 사용자를 생성할 수 있음 => IAM 사용자
  • 사용자를 그룹으로 묶을 수도 있음
  • 그룹 내에 그룹이 배치될 수 없음
  • 사용자가 여러 그룹에 속할 수 있음


  • Json 문서 형태의 정책을 그룹이나 사용자에 적용할 수 있음 (어떤 작업, 어떤 서비스에 대한 권한을 설정)

  • 최소 권한의 원칙


  • 인라인 정책 : 그룹이 아닌 사용자에게 직접 부여하는 권한

  • 특정 사용자가 두 그룹 이상에 속해있을 경우, 두 그룹의 권한을 모두 상속 받음


  • aws console 내 사용자 -> 권한 탭에서 그룹 또는 인라인정책을 통해 부여받은 권한목록 확인 가능

  • 특정 권한을 선택하면 세부 권한 확인 가능, JSON 버튼을 누르면 위 사진처럼 JSON 포맷의 세부 권한정보를 확인할 수 있음

  • aws console 내 사용자 -> 그룹 탭에서 속해있는 그룹을 확인할 수 있고, 추가하거나 제거할 수도 있음.


  • 정책 구조

  1. Version : 정책의 버전 (날짜 형식)
  2. id : 식별자 (Optional)
  3. Statement : 실질적 정책 내용
    1. Sid : 정책 내용의 식별자 (Optional)
    2. Effect : 특정 API에 대한 접근을 허용할지 결정 (Allow/Deny)
    3. Principal : 특정 정책이 적용될 사용자, 계정, role로 구성
    4. Action : Effect에 의해 허용되거나 거부되는 API 호출 목록
    5. Resource : action이 적용될 resource 목록
    6. Condition : Statement가 언제 적용될지에 대한 조건 (Optional)


  • 그룹과 사용자들의 정보를 보호하는 방법
  1. 비밀번호 정책 정의 -> 복잡할 수록 보안이 강해짐 (ex. 비밀번호 패턴 설정, 만료기간, 변경요구, 이전 비밀번호 변경으로 제한 등)

  2. (시험) 다요소인증 MFA (Multi-Factor Authentication) : 비밀번호와 함께 사용하는 보안장치 (OTP 같은거라고 보면 됨)

    • 루트 계정, IAM계정은 반드시 보호 필요,
      ex. 로그인 시, 비밀번호 입력과 함께 MFA 토큰필요
    • MFA 옵션
    1. 가상 MFA 장치 (google auchentication), 여러개 토큰 지원 => 하나의 장치로 여러 사용자 이용 가능

    2. U2F 보안 키 : 물리적 키 (likes USB), 하나의 물리적 장치에서 관리하는 보안 키를 활용, 하나의 키로 여러 루트 계정과 IAM 사용자를 지원

    3. 하드웨어 키 팝 : U2F 보안키와 동일

    4. 미국 정부 클라우드인 AWS GovCloud 활용 시 필요



  • AWS에 접근하는 방법
  1. Console : password + MFA로 보호됨
  2. AWS CLI : 터미널에서 접근 access key로 보호됨
  3. AWS SDK : 애플리케이션 코드에서 접근, access key로 보호됨
    • Example : AWS CLI는 Python용 AWS SDK를 활용해 구축함.


  • AWS CLI : AWS public API에 직접 접근 가능, 명령어 조합의 스크립트를 작성하여 자동화도 가능

  • AWS CLI는 오픈소스로 GitHub에서 확인 가능


  • access key 생성 : AWS Console에서 생성 (암호 형태)

  1. Access Key ID ~= username (공유x)
  2. Secret Access Key ~= password (공유x)


  • AWS CLI 실습 in window
  1. aws CLI install windows 검색
  2. MSI 설치 프록그램을 통한 window에서의 AWS CLI 설치
  3. 프롬프트창에서 aws CLI 설치되었는지 확인 : aws --version 명령어


  • AWS CLI 실습 in mac OS
  1. install aws cli mac 검색
  2. pkg 설치 프로그램을 통한 mac에서의 AWS CLI 설치
  3. 터미널에서 aws CLI 설치되었는지 확인 : aws --version 명령어


  • AWS CLI 사용
  1. Access key는 사용자 -> Security Credentials에서 생성
  2. 터미널에서 aws configure 명령어를 입력하여 access key 입력창 출력
  3. aws 명령어를 입력하면 명령어에 맞는 응답을 JSON형태로 출력해줌 (ex. aws iam list-user : 내 계정내 모든 사용자 출력)
  4. aws console을 통해 부여받은 키에 해당하는 계정에 특정 권한을 제거할 경우, aws CLI에서도 동일하게 적용됨.


  • Cloud Shell : AWS에서 무료로 제공하는 터미널 서비스, 터미널 대신 AWS에 명령을 내릴 수 있음 (console 화면 우측 상단에 위치, 사용가능 Region 한정)

  • Cloud Shell은 공용 저장소 사용 -> 껐다 켜도 이전 터미널에서 생성한 파일이 남아있음 -> 로컬로 다운로드 하거나 로컬에서 업로드할 수도 있음

  • 터미널 서식변경도 가능

  • 멀티 터미널도 가능


  • IAM ROLE : AWS 인스턴스에 의해 사용되도록 만들어진 Role (ex. 특정 EC2 서비스가 타 서비스를 이용하기 위한 권한 집합, EC2 Instance Roles)


  • IAM Security Tools (기능이라 보면 될 듯)

  1. IAM Credentials Report (IAM account-level) : 특정 IAM 계정(ex. djeon)에 대한 사용자 목록과 그들의 자격증명(id, pw) 상태를 확인
  2. IAM Access Advisor (user-level) : 사용자(ex. aws-djeon-v1)에 부여된 권한과 마지막 접근 시간 확인 (권한 사용여부 확인을 통한 최소권한 원칙 준수)
반응형

'개발 > AWS' 카테고리의 다른 글

[AWS] Load Balancer  (0) 2024.05.06
[AWS] EC2 (3)  (0) 2024.05.03
[AWS] EC2 (2)  (1) 2024.04.30
[AWS] EC2 (1)  (0) 2024.04.29
[AWS] AWS Region  (0) 2024.04.13

+ Recent posts