AWS에서 Best Practice로 강조하는 Encryption at Rest를 지키기 위해서는 EBS (Elastic Block Store) 볼륨을 기본적으로 암호화하는 것이 좋습니다. 암호화 키는 KMS (Key Management Service)에서 제공되는 고객 관리형 키와 AWS 관리형 키, 두 가지가 있습니다. 이처럼 EBS 볼륨을 암호화하는 것은 보안을 향상시키는 좋은 방법이지만 EBS의 스냅샷을 공유하기 위해서는 추가적인 과정을 요구하게 됩니다.

이번 글에서는 이러한 EBS 스냅샷의 공유 방법에 대해서 알아보도록 하겠습니다. 물론, 인스턴스의 AMI (Amazon Machine Image)를 생성하고 공유하는 것이 일반적이기는 합니다. 그러나, 이러한 AMI도 스냅샷의 공유를 통해서 이루어지는 것이므로 AMI를 공유하는 방법과 EBS 스냅샷을 공유하는 방법은 동일하다고 보시면 됩니다. 다만, AMI는 EC2의 모든 구성과 볼륨에 대한 스냅샷이므로 암호화된 볼륨이 여러 개가 포함된다면 공유 절차는 조금 더 복잡해질 수 있습니다.

암호화되지 않은 EBS

EBS가 암호화되지 않았다면, 해당 EBS의 스냅샷에 대한 공유는 매우 간단합니다. 공유하고자 하는 스냅샷을 찾아서 우클릭 후에 권한 수정을 진행하면 됩니다. 원하는 계정의 12자리 아이디를 입력하여 프라이빗하게 공유할 수 있습니다.

암호화되지 않아서 KMS 정보가 없습니다.

그 이후에 공유받는 계정에서 스냅샷 목록을 보면 공유가 된 것을 알 수 있습니다.

내 소유가 아닌 프라이빗 스냅샷을 선택해야 나타납니다.

고객 관리형 키로 암호화된 EBS

이번에는 KMS의 고객 관리형 키 (CMK)를 이용해서 암호화된 EBS 볼륨에 대한 스냅샷입니다. 기본적으로 공유하는 방법은 이전과 동일합니다.

암호화 정보가 나타납니다.

그런데, 권한 수정의 문구가 달라졌습니다. 암호화된 스냅샷을 공유하려면 해당 암호화 키도 공유를 해야한다는 뜻입니다. 키를 공유하지 않아도 일단 스냅샷은 공유가 되었으나, 볼륨을 생성하는 것이 불가능합니다.

KMS의 고객 관리형 키도 다른 계정으로 공유가 가능합니다.

고객 관리형 키로 암호화된 스냅샷을 정상적으로 이용하려면 해당 키도 함께 공유받으면 됩니다. 이후에 스냅샷을 복사하거나 인스턴스를 생성하면서 공유받은 계정의 암호화 키로 다시 암호화를 진행할 수 있습니다.

AWS 관리형 키로 암호화된 EBS

이번에는 고객 관리형 키가 아닌 AWS 관리형 키로 암호화된 EBS의 스냅샷에 대해서 살펴보겠습니다. AWS 관리형 키는 기본적으로 공유 자체가 불가능하기 때문에 앞서 고객 관리형 키처럼 키 공유를 진행할 수가 없습니다. 그래서 스냅샷을 만들고 공유하려고 보면, 아예 권한 수정 메뉴가 비활성화되어 있습니다. AMI를 공유하는 경우에는 권한 수정이 활성화는 되어 있지만, 다른 계정을 입력하고 저장을 누를 때, 에러가 발생하게 됩니다.

스냅샷의 공유 자체가 불가능합니다.

이 때는 공유하려는 계정에서 암호화 방식을 고객 관리형 키로 변경해야 합니다. 해당 스냅샷으로부터 볼륨 생성을 눌러 진행하면 암호화 키를 새롭게 설정할 수 있습니다.

스냅샷으로부터 신규 볼륨을 생성합니다.

새롭게 고객 관리형 키로 암호화된 볼륨이 생성되면 앞서 설명드린 과정과 동일하게, 해당 볼륨의 스냅샷과 고객 관리형 키를 공유하면 됩니다. AMI의 공유 절차도 기본적으로 동일합니다만, 이 때는 볼륨을 생성하는 것이 아니라 인스턴스를 생성하면서 키를 교체해야 할 것입니다.


지금까지 암호화되지 않았거나 고객 관리형 키 또는 AWS 관리형 키로 암호화된 EBS의 스냅샷을 공유하는 방법에 대해서 알아보았습니다. 보안을 강화하기 위한 암호화가 스냅샷의 공유에는 약간의 불편함을 제공하고 있습니다. 보안과 사용성은 항상 이렇게 양립하는 것 같습니다. 그러나, 공유하는 방법이 마냥 어렵지만은 않으므로 이제는 좀 더 보안을 강화해보시는 것은 어떨까요? 🤔