만약 어떤 회사에서 고객의 기밀 데이터를 보호하기 위해 authentication token을 통해 EC2 인스턴스에 대해 특정한 프로필 자격 증명(credentials)을 사용해서만 RDS 데이터베이스에 액세스할 수 있도록 하도록 설정해야 한다고 하자. 만약 이 회사가 사용하는 RDS가 MySQL 또는 PostgreSQL이라면 어떤 방법을 이용해 기밀 정보를 보호할 수 있을까?
IAM DB Authentication
DB 인스턴스에 대한 접속 인증을 위해 IAM을 사용할 수 있다.
- IAM 인증은 MySQL과 PostgreSQL에 대해서만 사용할 수 있다.
- 이 인증 방법을 이용하면 DB 인스턴스에 접속하기 위해 인증 토큰을 이용하기 때문에 비밀번호를 사용하지 않아도 된다.
이 방법 말고도 전형적인 인증 방법인 public IP에 대해 password를 이용해 접속하는 것 역시 가능하긴 하다.
인증 토큰은 RDS 접속에 대한 요청이 있을 때만 생성이 되며 'unique string of characters'로 이루어져 있다.
- 이 토큰은 15분 동안 유효하며 DB에 자격 증명(credentials)을 저장하지 않아도 된다. 왜냐하면 인증은 외부적으로 IAM을 통해 이루어지기 때문이다.
IAM DB Authentication 사용시 이점
RDS로부터 오는/ RDS로 향하는 네트워크 트래픽이 암호화 된다.
- 이 때 Secure Sockets Layer(SSL)을 이용하게 된다.
IAM을 이용하면 DB 인스턴스에 대한 접속 관리를 개별적으로 하지 않고 중앙에서 IAM을 이용해 할 수 있기 때문에 편리하다.
만약 예를 들어 EC2와 같은 서비스를 통해 애플리케이션을 제공할 경우 EC2 인스턴스
가령 EC2에서 실행되는 애플리케이션의 경우 EC2 인스턴스와 관련된 프로필 자격 증명을 사용할 경우 데이터베이스에 접근하기 위해 암호 대신 보안이 더 강화된 방법으로 접근할 수 있게 된다.