AWS KMS key 관리 - Amazon Relational Database Service

AWS KMS key 관리

Amazon RDSAWS 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 콘솔, AWS CLI 또는 AWS KMS API에서 AWS Key Management Service(AWS KMS)를 사용합니다. AWS 관리형 또는 고객 관리형 키로 수행한 모든 작업의 감사 로그를 보려면 AWS CloudTrail을 사용합니다. 키 교체에 대한 자세한 내용은 AWS KMS 키 교체를 참조하세요.

고객 관리형 키의 사용 권한 부여

RDS가 암호화 작업에 고객 관리형 키를 사용하는 경우 RDS 리소스를 생성하거나 변경하는 사용자를 대신해 작업합니다.

고객 관리형 키를 사용하여 RDS 리소스를 생성하려면 고객 관리형 키에서 다음 작업을 호출할 수 있는 권한이 사용자에게 있어야 합니다.

  • kms:CreateGrant

  • kms:DescribeKey

키 정책에서 허용하는 경우 키 정책 또는 IAM 정책에서 이러한 필수 권한을 지정할 수 있습니다.

작은 정보

최소 권한의 원칙을 따르려면 kms:CreateGrant에 대한 전체 액세스 권한을 허용하지 마세요. 대신에 kms:ViaService 조건 키를 사용하여 AWS 서비스에서 사용자를 대신하여 권한이 부여되는 경우에만 사용자가 KMS 키에 대한 권한을 부여할 수 있도록 허용합니다.

다양한 방법으로 IAM 정책을 더 엄격하게 설정할 수 있습니다. 예를 들어 RDS에서 생성된 요청에 대해서만 고객 관리형 키를 사용할 수 있도록 허용하고 싶다면 rds.<region>.amazonaws.com 값을 통해 kms:ViaService 조건 키를 사용할 수 있습니다. 또한 암호화 작업에 대한 고객 관리형 키 사용 조건으로 Amazon RDS 암호화 컨텍스트의 키 또는 값을 사용할 수도 있습니다.

자세한 내용을 알아보려면 AWS Key Management Service 개발자 안내서의 다른 계정의 사용자가 KMS 키를 사용하도록 허용AWS KMS의 키 정책을 참조하세요.

Amazon RDS 암호화 컨텍스트

RDS가 사용자의 KMS 키를 사용하거나 Amazon EBS가 RDS를 대신하여 KMS 키를 사용하는 경우, 서비스가 암호화 컨텍스트를 지정합니다. 암호화 컨텍스트는 AWS KMS가 데이터 무결성을 보장하기 위해 사용하는 추가 인증 데이터(AAD)입니다. 암호화 작업에 대해 암호화 컨텍스트가 지정되면 서비스가 암호화 해제 작업에 대해 동일한 암호화 컨텍스트를 지정해야 합니다. 그렇지 않으면 암호화 해제가 실패합니다. 암호화 컨텍스트는 AWS CloudTrail 로그에도 기록되어, 해당 KMS 키가 사용된 이유를 이해하는 데 도움을 줍니다. CloudTrail 로그에 CMK 사용을 설명하는 여러 항목이 포함될 수 있지만, 각 로그 항목의 암호화 컨텍스트는 특히 해당 KMS 키를 사용한 이유를 파악하는 데 도움이 될 수 있습니다.

최소한, 다음 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" }