Amazon RDS MySQL 보안 - Amazon Relational Database Service

Amazon RDS MySQL 보안

MySQL DB 인스턴스용 보안은 세 가지 수준에서 관리됩니다.

  • AWS Identity and Access Management는 DB 인스턴스에서 Amazon RDS 관리 작업을 수행할 수 있는 사용자를 제어합니다. IAM 자격 증명을 사용하여 AWS에 연결할 때, IAM 계정은 Amazon RDS 관리 작업을 수행하는 데 필요한 권한을 부여하는 IAM 정책을 보유하고 있어야 합니다. 자세한 내용은 Amazon RDS의 자격 증명 및 액세스 관리 단원을 참조하십시오.

  • DB 인스턴스를 생성할 때 VPC 보안 그룹을 사용하여 어떤 디바이스와 Amazon EC2 인스턴스가 DB 인스턴스의 엔드포인트 및 포트에 대한 연결을 열 수 있는지를 제어하게 됩니다. 보안 소켓 계층(SSL) 및 전송 계층 보안(TLS)을 사용하여 이러한 연결을 구성할 수 있습니다. 또한 회사의 방화벽 규칙을 통해 회사에서 실행하는 디바이스가 DB 인스턴스에 대한 연결을 열 수 있는지를 제어할 수 있습니다.

  • MySQL DB 인스턴스에 대한 로그인 및 권한을 인증하기 위해서는 다음 접근 방식 중 하나를 따르거나 두 방식을 조합할 수 있습니다.

    독립형 MySQL 인스턴스와 동일한 접근법을 사용할 수 있습니다. CREATE USER, RENAME USER, GRANT, REVOKESET PASSWORD 등의 명령은 온프레미스 데이터베이스에서 작동하는 것과 마찬가지로 작동하며, 데이터베이스 스키마 테이블을 직접 수정할 때도 동일합니다. 하지만 데이터베이스 스키마 테이블을 직접 수정하는 것은 모범 사례가 아니며 RDS for MySQL 버전 8.0.36부터는 지원되지 않습니다. 자세한 내용은 MySQL 설명서의 Access Control and Account Management를 참조하십시오.

    또한 IAM 데이터베이스 인증을 사용할 수도 있습니다. IAM 데이터베이스 인증의 경우, IAM 사용자 또는 IAM 역할 및 인증 토큰을 이용해 DB 인스턴스에 인증합니다. 인증 토큰은 서명 버전 4 서명 프로세스를 통해 생성하는 고유 값입니다. IAM 데이터베이스 인증을 사용하면 동일한 자격 증명을 사용해 AWS 리소스 및 데이터베이스에 대한 액세스를 제어할 수 있습니다. 자세한 내용은 MariaDB, MySQL 및 PostgreSQL IAM 데이터베이스 인증 단원을 참조하십시오.

    지원되는 또 다른 옵션은 RDS for MySQL용 Kerberos 인증입니다. DB 인스턴스는 AWS Directory Service for Microsoft Active Directory(AWS Managed Microsoft AD)와 함께 작동하여 Kerberos 인증을 활성화합니다. 사용자가 트러스팅 도메인에 가입된 MySQL DB 인스턴스로 인증하면 인증 요청이 전달됩니다. 전달된 요청은 AWS Directory Service에서 생성한 도메인 디렉터리로 이동합니다. 자세한 내용은 MySQL에 Kerberos 인증 사용 단원을 참조하십시오.

Amazon RDS DB 인스턴스를 생성할 때 마스터 사용자는 다음과 같은 기본 권한을 갖습니다.

엔진 버전 시스템 권한 데이터베이스 역할

RDS for MySQL 버전 8.0.36 이상

SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE ROLE, DROP ROLE, APPLICATION_PASSWORD_ADMIN, ROLE_ADMIN, SET_USER_ID, XA_RECOVER_ADMIN

rds_superuser_role

rds_superuser_role에 대한 자세한 정보는 역할 기반 권한 모델 섹션을 참조하십시오.

RDS for MySQL 버전 8.0.36 미만

SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, REPLICATION SLAVE

참고

DB 인스턴스에서 마스터 사용자를 삭제할 수 있지만, 권장하지는 않습니다. 마스터 사용자를 다시 생성하려면 ModifyDBInstance RDS API 작업 또는 modify-db-instance AWS CLI 명령을 사용하고 적절한 파라미터와 함께 새 마스터 사용자 암호를 지정합니다. 마스터 사용자가 인스턴스에 존재하지 않는 경우 마스터 사용자가 지정된 암호와 함께 생성됩니다.

각 DB 인스턴스에 관리 서비스를 제공하기 위해 DB 인스턴스가 생성될 때 rdsadmin 사용자가 만들어집니다. rdsadmin 계정에 대한 암호를 삭제하거나 이름 바꾸기를 하거나 변경하려고 시도하면 또는 권한을 변경하려고 시도하면 오류가 발생합니다.

DB 인스턴스의 관리를 허용하기 위해 표준 killkill_query 명령이 제한되었습니다. DB 인스턴스에서 사용자 세션 또는 쿼리를 종료할 수 있도록 Amazon RDS 명령 rds_killrds_kill_query가 제공됩니다.