AWS KMS key 관리
Amazon RDS는 AWS Key Management Service(AWS KMS)를 자동으로 통합하여 키 관리를 수행합니다. Amazon RDS는 봉투 암호화를 사용합니다. 봉투 암호화에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서에서 봉투 암호화를 참조하세요.
두 가지 유형의 AWS KMS 키를 사용하여 DB 인스턴스를 암호화할 수 있습니다.
KMS 키를 완전히 제어하기 위해서는 고객 관리형 키를 생성해야 합니다. 고객 관리형 키에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드의 고객 관리형 키를 참조하세요.
스냅샷을 공유한 AWS 계정의 AWS 관리형 키을(를) 사용하여 암호화된 스냅샷은 공유할 수 없습니다.
AWS 관리형 키는 AWS KMS와 통합된 AWS 서비스가 고객의 계정에서 고객 대신 생성, 관리 및 사용하는 KMS 키입니다. 기본적으로 RDS AWS 관리형 키(
aws/rds
)는 암호화에 사용됩니다. RDS AWS 관리형 키는 관리, 교체 또는 삭제할 수 없습니다. AWS 관리형 키에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드의 AWS 관리형 키를 참조하십시오.
Amazon RDS 암호화된 DB 인스턴스에 사용되는 KMS 키를 관리하려면 AWS KMS 콘솔
중요
RDS 데이터베이스에서 사용하는 KMS 키에 대한 사용 권한을 사용 중지하거나 취소할 경우 RDS는 KMS 키에 대한 액세스가 필요할 때 데이터베이스를 터미널 상태로 만듭니다. 이 변경은 KMS 키에 액세스해야 하는 사용 사례에 따라 즉시 적용되거나 지연될 수 있습니다. 이러한 상태에서는 DB 인스턴스를 더 이상 사용하지 못하기 때문에 데이터베이스의 현재 상태를 복구할 수 없습니다. DB 인스턴스를 복원하려면 RDS의 KMS 키에 대한 액세스 권한을 다시 사용 설정한 후 최근에 사용 가능한 백업 파일에서 DB 인스턴스를 복원해야 합니다.
고객 관리형 키의 사용 권한 부여
RDS가 암호화 작업에 고객 관리형 키를 사용하는 경우 RDS 리소스를 생성하거나 변경하는 사용자를 대신해 작업합니다.
고객 관리형 키를 사용하여 RDS 리소스를 생성하려면 고객 관리형 키에서 다음 작업을 호출할 수 있는 권한이 사용자에게 있어야 합니다.
-
kms:CreateGrant
-
kms:DescribeKey
키 정책에서 허용하는 경우 키 정책 또는 IAM 정책에서 이러한 필수 권한을 지정할 수 있습니다.
작은 정보
최소 권한의 원칙을 따르려면 kms:CreateGrant
에 대한 전체 액세스 권한을 허용하지 마세요. 대신에 kms:ViaService 조건 키를 사용하여 AWS 서비스에서 사용자를 대신하여 권한이 부여되는 경우에만 사용자가 KMS 키에 대한 권한을 부여할 수 있도록 허용합니다.
다양한 방법으로 IAM 정책을 더 엄격하게 설정할 수 있습니다. 예를 들어 RDS에서 생성된 요청에 대해서만 고객 관리형 키를 사용할 수 있도록 허용하고 싶다면 rds.
값을 통해 kms:ViaService 조건 키를 사용할 수 있습니다. 또한 암호화 작업에 대한 고객 관리형 키 사용 조건으로 Amazon RDS 암호화 컨텍스트의 키 또는 값을 사용할 수도 있습니다.<region>
.amazonaws.com
자세한 내용을 알아보려면 AWS Key Management Service 개발자 안내서의 다른 계정의 사용자가 KMS 키를 사용하도록 허용 및 AWS KMS의 키 정책을 참조하세요.
Amazon RDS 암호화 컨텍스트
RDS가 사용자의 KMS 키를 사용하거나 Amazon EBS가 RDS를 대신하여 KMS 키를 사용하는 경우, 서비스가 암호화 컨텍스트를 지정합니다. 암호화 컨텍스트는 AWS KMS가 데이터 무결성을 보장하기 위해 사용하는 추가 인증 데이터(AAD)입니다. 암호화 작업에 대해 암호화 컨텍스트가 지정되면 서비스가 암호화 해제 작업에 대해 동일한 암호화 컨텍스트를 지정해야 합니다. 그렇지 않으면 암호화 해제가 실패합니다. 암호화 컨텍스트는 AWS CloudTrail
최소한, 다음 JSON 형식 예에서 보듯이 Amazon RDS는 항상 암호화 컨텍스트에 DB 인스턴스 ID를 사용합니다.
{ "aws:rds:db-id": "db-CQYSMDPBRZ7BPMH7Y3RTDG5QY" }
이 암호화 컨텍스트는 KMS 키가 사용된 DB 인스턴스를 식별하는 데 도움이 될 수 있습니다.
KMS 키가 특정 DB 인스턴스와 특정 Amazon EBS 볼륨에 사용되는 경우, 다음 JSON 형식 예에서 보듯이 암호화 컨텍스트에 DB 인스턴스 ID와 Amazon EBS 볼륨 ID가 모두 사용됩니다.
{ "aws:rds:db-id": "db-BRG7VYS3SVIFQW7234EJQOM5RQ", "aws:ebs:id": "vol-ad8c6542" }