안녕하세요! :)
오늘은 사용 중인 인스턴스의 EBS Volume을 암호화하는 실습을 진행하겠습니다.
사용 중인 인스턴스에 보안취약점으로 암호화되지 않은 Volume을 확인했습니다.
그래서 사용 중인 볼륨을 암호화하려고 합니다.
Volume 암호화 순서
1. 기존 볼륨 snapshot생성
2. snapshot으로 암호화된 볼륨 생성
3. 인스턴스를 중지하고, 기존에 연결된 볼륨을 해지 및 새로 생성한 암호화된 볼륨으로 교체
(기존에 사용 중인 볼륨은 암호화 설정이 불가합니다.)
Volume 암호화 특징
- 볼륨 내의 모든 데이터는 암호화가 됩니다.
- 볼륨과 인스턴스 간의 데이터 전송도 암호화되므로 데이터가 전송 중에 노출되는 것을 방지할 수 있습니다.
- 암호화된 볼륨의 스냅샷 또한 자동으로 암호화되므로, 데이터의 보안을 유지할 수 있습니다.
- KMS(Key Management Service)를 사용하여 암호화하며, 키 관리를 단순화, 자동화합니다.
Volume 암호화 특징
- 인스턴스 유형이 EBS 암호화를 지원하는 경우에만 암호화 설정이 가능합니다.
- 기존에 사용 중인 볼륨을 암호화된 볼륨으로 교체한 경유, 기존에 볼륨 안의 데이터들은 암호화된 형태로 저장됩니다.
- 암호화는 투명하게 작동하므로, 암호화가 잘 적용되었는지 확인하기는 어렵습니다.
다만 KMS키를 사용하여 암호화하기 때문에 어떤 키를 사용하여 암호화했는지는 확인할 수 있습니다.
Volume 암호화 설정
우선 인스턴스를 하나 생성해 줍니다. 해당 인스턴스에 접속을 한 후 스냅샷을 생성하기 전 안에 데이터를 생성하여 볼륨을 교체한 후에 데이터들이 잘 있나 확인하기 위해서 데이터들을 생성해 줍니다.
암호화할 볼륨을 생성하기 위해 기존 볼륨의 스냅샷을 생성합니다.
생성한 스냅샷을 사용하여 암호화된 새로운 볼륨을 생성합니다. 볼륨유형은 기존의 볼륨유형과 같은 유형으로 변경해 줍니다.
가용영역도 기존 인스턴스가 위치한 가용영역으로 선택해 줍니다. 그리고 "이 볼륨에 암호화"를 선택해서 기본값 aws/ebs 를 선택해서 자동으로 KMS키를 발급받습니다.
태그는 안해도 상관없지만 가독성을 위해 기존 볼륨뒤에 "-Encryption"을 붙여줍니다.
KMS키를 사용하여 암호화된 볼륨은 생성했습니다.
기존 볼륨인 "data"와 암호화하여 새로 생성한 볼륨 "data-Encryption"이 있습니다.
이제 암호화된 볼륨을 기존 볼륨이랑 교체해 주면 됩니다. 분리하기 전 인스턴스를 중지시켜 줍니다.
여기서 주의할점이 그냥 "data-Encryption"을 연결한 후 "data"를 해지하고 인스턴스를 시작하면 해당 오류가 발생합니다.
Invalid value 'i-064a74d58d8edd0ae' for instanceId. Instance does not have a volume attached at root (/dev/xvda)
해당 오류는 루트볼륨이 해당 경로에 없다는 오류 입니다. 오류문에 맨 마지막에 보면 root(/dev/xvda)라고 적혀있습니다. 이게 루트볼륨의 경로입니다.
루프볼륨을 해지한 후 새로운 볼륨을 연결한다고 해서 자동으로 루트볼륨의 경로로 지정되지 않습니다. 그래서 루트볼륨을 해지하기 전 꼭 루트볼륨의 경로를 확인해 주시고, 새로운 볼륨을 연결할 때 루트볼륨의 경로로 지정해줘야 합니다.
볼륨은 선택해 보면 맨 밑에 볼륨의 경로가 나왔습니다. 해당 볼륨은 루트볼륨이라 경로를 기억한 후 새로운 볼륨으로 교체할 때 꼭 /dev/xvda 경로로 지정해 줍니다.
분리한 루트볼륨은 볼륨상태가 "사용 가능"으로 바뀌었습니다.
이제 인스턴스에 접속을 해보겠습니다. 중지되어있는 인스턴스를 다시 가동시켜 줍니다.
안에 있는 데이터들이 잘 있는걸로 봐서는 볼륨이 잘 교체된 거 같습니다.
인스턴스의 스토리지에서도 확인해 보면 볼륨에 암호화설정이 잘되어 있습니다..
감사합니다. :)
'AWS > EBS' 카테고리의 다른 글
[ EBS ] EBS Volume 확장 (0) | 2023.09.05 |
---|---|
[EBS] EBS Volume 추가 (0) | 2023.08.30 |