RDS - Encryption

Jihun Kim·2022년 3월 7일
0

aws solutions architect

목록 보기
18/57
post-thumbnail

암호 종류

고정 암호

  • AWS KMS(AES-256 암호화)를 사용해 마스터와 읽기 복제본을 암호화 할 수 있다.
  • 인스턴스 시작시 암호를 정의한다.
  • 만약 마스터가 암호화 되지 않았다면 읽기 복제본도 암호화 될 수 없다.
  • 오라클과 SQL 서버를 위한 Transparent Data Encryption(TDE)을 사용할 수도 있다.

In-flight 암호

  • RDS로 데이터가 들어올 때 SSL인증서로 데이터를 암호화 한다.
    - In-flight는 데이터가 클라로부터 DB로 전송되는 것을 뜻한다.
  • 고정 암호랑 함께 사용 한다.
  • 데이터베이스에 연결할 때 신뢰할 수 있는 증명서와 함께 SSL 옵션을 제공해야 한다.
  • 모든 데이터베이스가 SSL을 사용하도록 만들기 위한 설정:
    - PostgreSQL: 파라미터 그룹 설정 -> 콘솔에서 rds.force_ssl = 1로 설정
    - MySQL: SQL 명령문 사용 -> GRANT USAGE ON *.* TO 'mysqluser'@'%' REQUIRE_SSL
      


RDS 암호화 기능

  • RDS 백업 암호화
    - 암호화 되지 않은 RDS의 스냅샷은 암호화 되지 않는다.
    - 반대로 암호화 된 경우 스냅샷 역시 암호화 된다.
  • 암호화 되지 않은 스냅샷을 암호화된 스냅샷으로 복사할 수 있다.
    - 먼저, 암호화 되지 않은 스냅샷을 생성한다.
    - 스냅샷을 복사하고 해당 스냅샷을 암호화 한다.
    - 암호화된 스냅샷으로 데이터베이스를 저장한다.
    - 애플리케이션을 새로운 데이터베이스로(암호화된) 옮기고 이전 데이터베이스를 삭제한다.


네트워크 보안과 IAM

네트워크 보안

  • RDS 데이터베이스는 보통 프라이빗 서브넷에 배치된다.
  • RDS 보안은 보안 그룹을 활용하면 된다.

접근 관리

  • RDS를 관리하기 위해 IAM 정책을 사용할 수 있다.
  • 전통적인 username과 password로 데이터베이스에 로그인 할 수 있다.
  • MySQL과 PostgreSQL에서만 IAM 자격 증명을 이용해 로그인 할 수 있다.

IAM 자격 증명

  • MySQL과 PostgreSQL에서만 사용 가능하다.
  • IAM role을 이용해 RDS service를 호출해 auth token을 가져오면 이를 SSL encryption이 RDS 보안 그룹에 넘겨 자격을 확인한다.
    - auth token의 수명은 15분이다.

이점

  • 안팎의 네트워크가 SSL을 통해 반드시 암호화 된다.
  • IAM이 중심적인 매니저 사용자로 사용된다.
    - 이는 훨씬 중심에 집중된 자격 증명이다.
  • IAM role과 EC2 instance profile을 이용해 쉽게 통합이 가능하다.


RDS는 관리형 서비스이기 때문에 백엔드에서 사용되는 instance에는 사용자가 직접 접속할 수 없다. 즉, SSH 접속은 불가능하다!

profile
쿄쿄

0개의 댓글