저장 시 암호화: Amazon Keyspaces 작동 방식 - Amazon Keyspaces(Apache Cassandra용)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

저장 시 암호화: Amazon Keyspaces 작동 방식

Amazon Keyspaces(Apache Cassandra용) 저장 시 암호화는 256비트 고급 암호화 표준(AES-256)을 사용하여 데이터를 암호화합니다. 이는 기본 스토리지에 대한 무단 액세스로부터 데이터의 보안을 유지하는 데 도움을 줍니다. Amazon Keyspaces 테이블의 모든 고객 데이터는 기본적으로 저장 시 암호화되며 서버 측 암호화는 투명하므로 애플리케이션을 변경할 필요가 없습니다.

저장 시 암호화는 테이블을 암호화하는 데 사용되는 암호화 키를 관리하기 위해 AWS Key Management Service(AWS KMS)와(과) 통합됩니다. 새 테이블을 생성하거나 기존 테이블을 업데이트할 때 다음 AWS KMS 키 옵션 중 하나를 선택할 수 있습니다.

  • AWS 소유 키 - 기본 암호화 유형입니다. 키는 Amazon Keyspaces가 소유합니다(추가 비용 없음).

  • 고객 관리형 키 - 이 키는 사용자의 계정에 저장되며 사용자가 생성, 소유 및 관리합니다. 고객 관리형 키에 대해 사용자가 모든 것을 제어합니다(AWS KMS 비용 적용).

AWS KMS 키(KMS 키)

저장 시 암호화는 AWS KMS 키를 사용하여 모든 Amazon Keyspaces 데이터를 보호합니다. 기본적으로 Amazon Keyspaces는 Amazon Keyspaces 서비스 계정에서 생성 및 관리되는 다중 테넌트 암호화 키인 AWS 소유 키를 사용합니다.

하지만 AWS 계정에서 고객 관리형 키를 사용하여 Amazon Keyspaces 테이블을 암호화할 수 있습니다. 키스페이스의 각 테이블마다 다른 KMS 키를 선택할 수 있습니다. 테이블에 대해 선택한 KMS 키는 모든 메타데이터 및 복원 가능한 백업을 암호화하는 데에도 사용됩니다.

테이블을 생성 또는 업데이트할 때 테이블에 대해 KMS 키를 선택합니다. 언제든지 Amazon Keyspaces 콘솔에서 또는 ALTER TABLE 문을 사용하여 테이블에 대한 KMS 키를 변경할 수 있습니다. KMS 키 전환 프로세스는 원활하며 가동 중지 시간 또는 서비스 저하가 발생하지 않습니다.

키 계층 구조

Amazon Keyspaces는 키 계층 구조를 사용하여 데이터를 암호화합니다. 이 키 계층 구조에서 KMS 키는 루트 키입니다. Amazon Keyspaces 테이블 암호화 키를 암호화 및 해독하는 데 사용됩니다. 테이블 암호화 키는 Amazon Keyspaces가 읽기 및 쓰기 작업을 수행할 때 데이터를 암호화하고 해독하기 위해 내부적으로 사용하는 암호화 키를 암호화하는 데 사용됩니다.

암호화 키 계층 구조를 사용하면 데이터를 다시 암호화하거나 애플리케이션 및 진행 중인 데이터 작업에 영향을 주지 않고도 KMS 키를 변경할 수 있습니다.


            루트 키, 테이블 암호화 키, 저장 시 암호화에 사용되는 데이터 암호화 키를 보여 주는 키 계층 구조
테이블 키

Amazon Keyspaces 테이블 키는 키 암호화 키로 사용됩니다. Amazon Keyspaces는 테이블 키를 사용하여 테이블, 로그 파일 및 복원 가능한 백업에 저장된 데이터를 암호화하는 데 사용되는 내부 데이터 암호화 키를 보호합니다. Amazon Keyspaces는 테이블에 있는 각 기본 구조의 고유한 데이터 암호화 키를 생성합니다. 하지만 여러 테이블 행이 동일한 데이터 암호화 키로 보호될 수 있습니다.

KMS 키를 고객 관리형 키로 처음 설정하면 AWS KMS에서 데이터 키를 생성합니다. AWS KMS 데이터 키는 Amazon Keyspaces의 테이블 키를 가리킵니다.

암호화된 테이블에 액세스하면 Amazon Keyspaces가 KMS 키를 사용하여 테이블 키를 해독하도록 AWS KMS에 요청합니다. 그런 다음 일반 텍스트 테이블 키를 사용하여 Amazon Keyspaces 데이터 암호화 키를 해독하고, 일반 텍스트 데이터 암호화 키를 사용하여 테이블 데이터를 해독합니다.

Amazon Keyspaces는 AWS KMS 외부에서 테이블 키와 데이터 암호화 키를 사용하고 저장합니다. 고급 암호화 표준(AES) 암호화 및 256비트 암호화 키로 모든 키를 보호합니다. 그런 다음 필요에 따라 테이블 데이터를 해독할 때 사용할 수 있도록 암호화된 데이터로 암호화된 키를 저장합니다.

테이블 키 캐싱

각 Amazon Keyspaces 작업마다 AWS KMS를 호출하지 않도록 Amazon Keyspaces는 메모리에 있는 각 연결의 일반 텍스트 테이블 키를 캐싱합니다. 5분의 비활성 시간이 경과하여 Amazon Keyspaces가 캐싱된 테이블 키를 요청할 경우 테이블 키를 해독하라는 새로운 요청을 AWS KMS에 보냅니다. 이 호출은 마지막 테이블 키 해독 요청 이후 KMS 키의 액세스 정책에 적용된 모든 변경 사항을 AWS KMS 또는 AWS Identity and Access Management(IAM)에 캡처합니다.

봉투 암호화

테이블의 고객 관리형 키를 변경하면 Amazon Keyspaces가 새 테이블 키를 생성합니다. 그런 다음 새 테이블 키를 사용하여 데이터 암호화 키를 다시 암호화합니다. 또한 새 테이블 키를 사용하여 복원 가능한 백업을 보호하는 데 사용되는 이전 테이블 키를 암호화합니다. 이 프로세스를 봉투 암호화라고 합니다. 이렇게 하면 고객 관리형 키를 교체해도 복원 가능한 백업에 액세스할 수 있습니다. 봉투 암호화에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서에서 봉투 암호화를 참조하세요.

AWS 소유 키

AWS 소유 키는 AWS 계정에는 저장되지 않습니다. 이들은 AWS가 여러 AWS 계정 계정에서 사용하기 위해 소유 및 관리하는 KMS 키 모음의 일부입니다. AWS 서비스는 AWS 소유 키를 사용하여 데이터를 보호할 수 있습니다.

사용자는 AWS 소유 키를 확인, 관리 또는 사용하거나 사용을 감사할 수 없습니다. 하지만 사용자는 데이터를 암호화하는 키를 보호하기 위해 어떤 작업을 수행하거나 어떤 프로그램을 변경할 필요가 없습니다.

월별 요금 또는 AWS 소유 키의 사용량에 따른 요금이 부과되지 않으며 계정의 AWS KMS 할당량에 포함되지 않습니다.

고객 관리형 키

고객 관리형 키는 사용자가 생성, 소유 및 관리하는 AWS 계정의 키입니다. 이러한 KMS 키를 완전히 제어할 수 있습니다.

고객 관리형 키를 사용하여 다음과 같은 기능을 얻을 수 있습니다.

고객 관리형 키는 각 API 직접 호출에 대해 요금이 부과되며 이러한 KMS 키에 AWS KMS 할당량이 적용됩니다. 자세한 내용은 AWS KMS 리소스 또는 요청 할당량을 참조하세요.

고객 관리형 키를 테이블에 대한 루트 암호화 키로 지정하면 복원 가능한 백업은 백업이 생성될 때 테이블에 지정된 것과 동일한 암호화 키로 암호화됩니다. 테이블의 KMS 키를 교체하면 키 엔벨로핑을 통해 최신 KMS 키가 복원 가능한 모든 백업에 액세스할 수 있습니다.

Amazon Keyspaces는 테이블 데이터에 대한 액세스를 제공하려면 고객 관리형 키에 액세스할 수 있어야 합니다. 암호화 키 상태가 비활성화됨으로 설정되거나 삭제가 예정된 경우 Amazon Keyspaces는 데이터를 암호화하거나 해독할 수 없습니다. 따라서 테이블에서 읽기 및 쓰기 작업을 수행할 수 없습니다. 서비스에서 사용자의 암호화 키가 접근 불가 상태인 것을 탐지하면 바로 Amazon Keyspaces는 사용자에게 이를 알리기 위해 이메일 알림을 보냅니다.

7일 이내에 암호화 키에 대한 액세스를 복원해야 합니다. 그렇지 않으면 Amazon Keyspaces가 테이블을 자동으로 삭제합니다. 예방 차원에서 Amazon Keyspaces는 테이블을 삭제하기 전에 테이블 데이터의 복원 가능한 백업을 생성합니다. Amazon Keyspaces는 복원 가능한 백업을 35일 동안 유지합니다. 35일이 지나면 더 이상 테이블 데이터를 복원할 수 없습니다. 복원 가능한 백업에 대해서는 요금이 청구되지 않지만 표준 복원 요금이 적용됩니다.

이 복원 가능한 백업을 새로운 테이블에 데이터를 복원할 때 사용할 수 있습니다. 복원을 시작하려면 테이블에 대한 최종 고객 관리형 키가 활성화되어야 하며 Amazon Keyspaces는 이에 액세스할 수 있어야 합니다.

참고

액세스할 수 없거나 생성 프로세스가 완료되기 전에 삭제되도록 예약된 고객 관리형 키를 사용하여 암호화된 테이블을 생성할 때 오류가 발생합니다. 테이블 생성 작업이 실패하고 이메일 알림이 전송됩니다.

저장 시 암호화 사용 노트

Amazon Keyspaces에서 저장 시 암호화를 사용할 때 다음을 고려하세요.

  • 서버 측 저장 시 암호화는 모든 Amazon Keyspaces 테이블에서 활성화되며 비활성화할 수 없습니다. 전체 테이블은 저장 시 암호화되므로 암호화할 특정 열이나 행을 선택할 수 없습니다.

  • 기본적으로 Amazon Keyspaces는 단일 서비스 기본 키(AWS 소유 키)를 사용하여 모든 테이블을 암호화합니다. 이 키가 없는 경우 자동으로 생성됩니다. 서비스 기본 키는 비활성화할 수 없습니다.

  • 저장 시 암호화는 영구 스토리지 미디어에서 정적(유휴) 상태인 데이터만 암호화합니다. 전송 중인 데이터 또는 사용 중인 데이터에 대한 데이터 보안 문제가 있는 경우 추가 조치를 취해야 합니다.

    • 전송 중 데이터: Amazon Keyspaces의 모든 데이터는 전송 중에 암호화됩니다. 기본적으로 Amazon Keyspaces와 수신 통신은 Secure Sockets Layer(SSL) 및 전송 계층 보안(TLS) 암호화를 사용하여 보호됩니다.

    • 사용 중인 데이터: Amazon Keyspaces에 보내기 전에 클라이언트 측 암호화를 사용하여 데이터를 보호합니다.

    • 고객 관리형 키: 테이블의 저장 데이터는 고객 관리형 키를 사용하여 항상 암호화됩니다. 그러나 여러 행의 원자적 업데이트를 수행하는 작업은 처리 중에 AWS 소유 키를 사용하여 데이터를 임시로 암호화합니다. 여기에는 범위 삭제 작업과 정적 및 비정적 데이터에 동시에 액세스하는 작업이 포함됩니다.

  • 단일 고객 관리형 키에 최대 50,000건의 권한 부여를 받을 수 있습니다. 고객 관리형 키와 관련된 모든 Amazon Keyspaces 테이블은 2개의 권한 부여를 소비합니다. 테이블이 삭제되면 하나의 권한 부여가 릴리스됩니다. 두 번째 권한 부여는 Amazon Keyspaces에서 실수로 고객 관리형 키에 대한 액세스 권한을 잃은 경우 데이터 손실을 방지하기 위해 테이블의 자동 스냅샷을 생성하는 데 사용됩니다. 이 권한 부여는 테이블 삭제 후 42일 후에 릴리스됩니다.