설명
EBS 암호화는 볼륨과 관련 스냅샷의 저장 데이터를 보호합니다. 새 볼륨의 실제 암호화는 Encrypted 설정뿐 아니라 해당 리전의 기본 암호화와 원본 스냅샷에도 영향을 받습니다. Encrypted가 없거나 false라는 이유만으로 실제 볼륨이 비암호화 상태라고 단정해서는 안 됩니다.
필요한 암호화를 명시하고 실제 생성된 볼륨을 확인하세요. 저장 암호화는 인스턴스 내부의 과도한 권한이나 애플리케이션의 데이터 노출을 막는 접근 제어를 대신하지 않습니다.
잠재적 영향
- 실제로 암호화되지 않은 볼륨과 스냅샷은 저장 데이터 보호 요구를 충족하지 못할 수 있습니다.
- 키 권한 오류나 예상하지 않은 인스턴스 교체는 데이터 접근과 서비스 가용성에 영향을 줄 수 있습니다.
해결 방법
- 암호화가 필요한 새 EBS 볼륨에
Encrypted: true를 설정하고, 원본 이미지·스냅샷과 기본 암호화 및 KMS 권한을 확인하세요. - 기존 비암호화 볼륨은 암호화된 사본과 새 볼륨으로 이전해야 합니다. 실행 중인
AWS::EC2::Instance의 이 속성을 변경하면 인스턴스가 교체되므로 변경 세트와 데이터 보존을 먼저 검토하세요. - 신규 Auto Scaling 구성에는 시작 템플릿을 사용하고, 적용 후 모든 실제 EBS 볼륨과 관련 스냅샷을 확인하세요.
예시
현재 리전에서 사용할 수 있고 인스턴스 유형과 호환되는 AMI를 ImageId로 제공하세요. 아래는 새 데이터 볼륨의 예시이며 /dev/sdf가 AMI의 기존 매핑과 충돌하지 않아야 합니다. 루트 볼륨과 네트워크 설정은 별도로 검토하세요.
암호화를 명시적으로 요청하지 않는 볼륨
json
{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"ImageId": {
"Type": "AWS::EC2::Image::Id"
}
},
"Resources": {
"MyEC2Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId": {
"Ref": "ImageId"
},
"InstanceType": "t2.micro",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sdf",
"Ebs": {
"VolumeSize": 8,
"VolumeType": "gp3",
"Encrypted": false
}
}
]
}
}
}
}
기본 암호화가 비활성화되어 있다면 이 새 빈 볼륨은 암호화되지 않습니다. 기본 암호화가 켜져 있으면 실제 결과는 달라집니다.
암호화를 요청하는 볼륨
json
{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"ImageId": {
"Type": "AWS::EC2::Image::Id"
}
},
"Resources": {
"MyEC2Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId": {
"Ref": "ImageId"
},
"InstanceType": "t2.micro",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sdf",
"Ebs": {
"VolumeSize": 8,
"VolumeType": "gp3",
"Encrypted": true
}
}
]
}
}
}
}
새 데이터 볼륨에 암호화를 요청합니다. 이 설정이 기존 볼륨을 직접 암호화하거나 다른 모든 볼륨의 설정을 바꾸지는 않습니다.