IAM

Haeun Kim·2022년 1월 2일
0

실습으로 배우는 AWS 핵심 서비스 강좌를 정리했습니다.

  1. 관리 콘솔 ( AWS Management Console )
 Root Acoount : 회원 가입 때 사용한 이메일 계정
 즉시 IAM 사용자를 생성해서 사용하는 것을 권장한다.
 Root account는 MFA 등을 이용해서 이중화를 하는 것이 안전하다.
  1. AWS Global Infra
    https://www.infrastructure.aws/
 region : 2개 이상의 AZ의 모임. 각 region은 각각 다른 AWS 서비스를 제공한다.
 AZ(Availability zones) : 하나 이상의 데이터 센터로 구성됨
 엣지 로케이션(PoP) : CDN, DNS 서비스를 제공
 
 서울 리전 : ap-northeast-2
  1. IAM admin 사용자 추가하기
 1. IAM 서비스로 이동
 2. Admin 그룹 생성 및 권한 부여
  - 그룹 이름 설정 후 'AdministratorAccess' 정책 추가 (모든 Action, resource 허용)하여 그룹 생성
 3. Admin 사용자 생성
  - 사용자 이름 임의 지정, AWS Management Console 액세스 체크, 비밀번호 재설정 해제 후 
    사용자를 그룹에 추가
 4. IAM 어드민 유저로 로그인
  - 사용자 추가 후에 csv 파일을 받으면 login link가 생기는데 이 링크로 항상 로그인 해서 계정에 접근하면 된다.

 Admin을 만들어서 사용하는 이유? 이 계정이 노출되어 있을 때 root account를 이용해 admin 유저를 제어할 수 있기 때문이다.
  1. IAM 개발자 id 추가
 1. developer 그룹 생성 및 권한 부여
  - 그룹 이름 설정 후 'PowerUserAccess' 정책 추가 
    (admin 계정 보다는 권한이 작아야 하므로, resource는 사용할 수 있지만 계정 정보 관련에는 대부분 접근할 수 없음)하여 그룹 생성
 2. 개발자 사용자 생성
  - 사용자 이름 임의 지정, AWS Management Console 액세스 체크, 비밀번호 재설정 해제
 3. IAM 개발자 계정으로 로그인
  - 어드민 계정과 동일하게 로그인 가능하지만, IAM 서비스엔 접근이 불가능하다.
  1. 로그인 URL 변경
IAM 대시보드에서 변경 가능하다.
계정의 별칭을 지정함으로써 회원 번호 부분이 별칭으로 바뀌는데, 
이 별칭을 사용해서 바로 로그인이 가능하다.
  1. IAM policy
AWS Identity and Access Management
 : AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스. 
   사용자가 리소스를 사용하려고 할 때 권하능ㄹ 세부적으로 조정하는 서비스
 
 - Resource? 자원. AWS에서는 컴퓨팅, 스토리지, 네트워크 등
 - Access : 리소스를 조작 및 제어하는 것
Authentication(인증) -> Authorization(권한 부여) -> resource(자원)

AWS에서 인증을 담당하는 주체는? User (id, key방식 두 가지 존재)
       권한 부여를 담당하는 주체는? Policy
IAM Group
 - 공통의 권한을 가지는 사용자의 집합
 - 그룹을 생성 후 IAM Policy 연결
 - 그룹에 사용자 추가
 - 그룹 내 사용자는 그룹과 연결된 Policy의 권한을 부여받음.
 
IAM User
 - 그룹의 IAM Policy에 따라 권한을 부여받음.
   (사용자에게 직접 Policy를 추가할 수도 있음.)
 - IAM User의 인증방식과 사용 용도
   1) ID/PASSWORD 방식 : 관리 콘솔에서 사용
   2) AcessKey ID / Secret Access Key : CLI, SDK, Web API에서 사용
 - Long term credential이라고도 함(영구적인 권한이므로)
  1. IAM Policy의 종류
 - AWS 관리 정책
   AWS가 미리 만들어 놓은 정책, 사용자는 편집 불가능
 - 사용자 관리 정책
   사용자가 직접 생성한 정책
   기존 정책으로부터 생성 및 수정 또는 직접 생성 가능
   GUI 편집기 / JSON 편집기 모두 사용 가능(GUI 편집기가 조금 더 쉽다)
   Effect : 허용, 거부
   Action : api(행동) ex)"Action" : "s3:*" - s3만 사용가능
   Resource : aws resource(ec2, s3와 같은)
 - Inline 정책
   1회성 정책. 재사용이 안됨
  1. IAM Role
- 특정 개체에게 리소스의 접근 권한을 부여하기 위해 사용
  (IAM 사용자, AWS 서비스, 다른 계정, AWS 관리계정)
- Short term credential(임시 자격 증명) - 사용할 때만 잠깐 권한 부여
- 주로 AWS 서비스들이 직접 다른 AWS 서비스를 제어하기 위해 사용함. 
  사용자나 응용 프로그램에서 일시적으로 AWS 리소스에 접근 권한을 얻을 때도 사용
  1. IAM Role의 주요 구성요소
- Role ARN : 역할을 호출하기 위해 필요. role을 식별하기 위한 식별자. role의 주소(url)
- IAM policy : 이 역할이 어떤 권한을 부여할 수 있는가
- 신뢰 관계 : 어떤 개체가 IAM Role을 호출할 수 있는가
- 그 외 유지시간, 이름 등도 필요

임시 자격증명이기 때문에 보안상 유리하다.
  1. IAM Role 사용예
- EC2 role : ec2 인스턴스에게 aws 서비스 접근 권한을 부여
- Lambda Execution Role: 람다에서 s3로부터 파일을 읽고 싶을 때 role에 권한 지정
- 다른 계정의 사용자에게 내 계정의 DynamoDB에 임시 접근 권한 부여
- 안드로이드 앱이 S3로 직접 동영상을 업로드 할 때 사용
ARN(Amazon Resource Name)
  아마존에서 리소스를 유일하게 식별할 수 있는 구분자
  
  형태 : arn:partition:service:region:account-id:resource-id
  ex) arn:aws:iam::123456789:user/honux
      arn:aws:s3:::mybucket/folder/file1  
  1. Switch Role
 역할 변경을 위해서는 먼저 admin 사용자로 로그인 후
 1. 역할 만들기
    다른 AWS 계정(보통 AWS서비스를 많이 쓴다)
    -> 정책 선택 (IAM 권한을 주려면 IAMFullAccess) 
 2. 신뢰관계 편집 
    Principal 부분의 url 뒷 부분의 'root' 부분을 권한을 주고 싶은 사용자의 이름으로 바꾼다.
 3. 역할 변경
    권한을 받은 객체의 아이디로 로그인 해서 역할 전환(이름부분 클릭을 통해 접속가능)
    계정, 생성한 역할 이름, 표시이름 및 색상 지정하면 역할 전환됨. 
  1. CLI 사용법
CLI : AWS Command Line Interface
1. 사용자에게 access key를 만든다.
2. aws configure 명령으로 기본 설정
   access key 로그인
   region name : ap-northeast-2 (알파벳 생략)
   output format : none
3. 이후 aws s3 ls 와 같은 명령어를 사용 가능하다.

설정 내용은 aws 폴더에서 credential, config에서 확인 가능하다.

0개의 댓글