[DB] AWS basic & IAM ROLE, POLICY

20190829 - AWS

  • 첵 ‘모두의 네트워크’를 보자

AWS를 쓰는 가장 큰 이유

  • 탄력성
    • IDC 서버는 탄력성이 없다
  • 가격(잘 쓸 경우에…)

AWS 핵심 서비스 : basic

Route53 : DNS 서비스

  • aws에서 제공해주는 DNS 서버
  • 가동률 100%, 분산 시스템이라 절대로 장애가 날 일이 없다
  • DNS를 IP로 바꿔준다

VPC : 네트워크망

  • 가상 사설망
  • VPC 앞에는 인터넷 게이트 웨이가 있어 외부 인터넷과 연결이 가능하다
  • 서브넷으로 쪼개짐

EC2 : 서버

  • 실제 서버
  • 보통 EC2와 EBS를 붙여서 쓴다

RDS : DB

  • aws가 DB 관리를 대신해줌

S3 : object storage

  • 용량이 큰 동영상, 파일 저장

IAM : management

  • 계정 관리

cloud watch : resource monitoring

  • 모니터링
  • aws 리소스 모니터링

cloud trail

  • 계정 관리자를 management 및 모니터링

Queue

  • 비동기처리

  • pub, sub

SQS

SNS

  • 알림 서비스

AWS CLI 실습

  • S3 버킷 생성
  • 파일 업로드
  • CLI 설치
  • CLI로 파일 업로드 확인

  • Node.js SDK로 확인

IAM

  • aws의 서비스 API를 이용할 수 있는 권한을 식별하기 위해 인증, 권한 부여해주는 것
  • IAM 권한은 최소한으로.
  • authentification
    • 콘솔에서는 ID / PASSWORD
    • CLI나 sdk에서는 access id, secret key
  • authorization
    • 정책으로 결정
    • 정책을 사용하여 IAM 또는 AWS 리소스에 대한 제어 가능
  • 정책 허용 단계
    • 암묵적 금지, 허용, 명시적 금지
  • 뭔가가 삭제가 안되거나, 서비스에 접근이 안될 때 정책 상 ‘명시적인 금지’가 걸려있을 경우가 많다

정책의 종류

AWS Management Policy

  • aws가 만든 관리형 정책
  • 삭제 불가능

User Management Policy

  • 유저 커스텀 관리 정책

Inline

  • 특정 사용자에게만 특정 권한을 주고 싶을 때 설정

IAM ROLE

  • 사람, 또는 EC2 instance, service도 쓸 수 있다
    • 예를 들어 람다 서버가 S3 서버 접근 권한을 요청할 수도 있음
  • aws는 여러 서비스가 다른 서비스에 접근하는 경우가 굉장히 많기 때문에 중요

IAM ROLE 실습

아까 만든 S3 저장소의 파일 하나를 EC2에서 받아보자

bad case

  • aws configure에 직접 access id, serect code를 써서 권한을 획득한다
  • 키와 패스워드가 노출, 가장 좋지 않음

good case

  • 키페어 노출 대신 IAM ROLE을 부여한다
  • ‘역할 전환’으로 임시 권한을 부여한 후 작업을 진행하게 한다

APP에서 sdk로 api를 호출할 때는?

  • 보통 권한이 있는 유저의 키페어가 하드코딩되어 있는데, 정보 노출의 위험성이 있다
  • 안전한 방법으로는
    • 아무 권한도 없는 빈 계정을 만들고
    • Assume Role 하나만 허용해주고
    • role을 우선 획득하게 한 후 api를 호출
  • 별 차이 없는 것 같아도 이게 aws에서 권장하는 best practice
 Date: August 29, 2019
 Tags:  DB

Previous:
⏪ [JS] 함수형 프로그래밍 입문 #5

Next:
[ENVIRONMENT] HEROKU에서 clearDB로 MySQL 연동하기 ⏩