使用后是否会擦除 EBS 卷?

ste*_*iss 7 linux filesystems amazon-ebs amazon-web-services

我试图从我不小心运行的 ebs 卷中恢复一些数据wipefs

我使用了 PhotoRec ( http://www.cgsecurity.org/wiki/PhotoRec ) ......它恢复了我的文件,但还有大量不属于我的其他文件。

它有图像、文本文件、代码等……它们都是有效数据,并非来自我的帐户。

这让我要问......当我删除一个 EBS 卷时,我猜我的数据显然可以被其他人使用?

Tim*_*Tim 14

来自AWS 文档

已删除的 EBS 卷使用的物理块存储在分配给另一个帐户之前会被零覆盖。

来自他们论坛上的 AWS 代表。

我可以确认,当任何客户卷被终止(无论是 EBS 还是实例存储卷)时,它都会在可供其他客户使用之前被完全擦除。

如果这是真实的并且您确实拥有其他人的数据,则您需要与 AWS 取得联系。非凡的主张需要非凡的证据。

TLDR;我做了两组测试,但无法重现@stevelandiss 产生的结果。

更新 - 测试一

我自己试过了。这是我所做的和我的结果。

TLDR;无法繁殖。

0) 我分配了一个 m3.medium 现货实例,带有 gp2 和 io1(预配置的 IOPS)卷,每个 10GB。我使用了标准的 Ubuntu 16.04 AMI (ami-b7a114d7)。请注意,我无法像 OP 建议的那样挂载为 /dev/xvdb,AWS 强迫我使用更长的名称,例如 /dev/xvdba,这让我有点怀疑。

1) 我安装了 photorec/testdisk

apt-get install testdisk
Run Code Online (Sandbox Code Playgroud)

2)我使用 lsblk 查看可用的卷

lsblk
NAME    MAJ:MIN   RM SIZE RO TYPE MOUNTPOINT
xvda    202:0      0   8G  0 disk
??xvda1 202:1      0   8G  0 part /
xvdba   202:13312  0  10G  0 disk
xvdbb   202:13568  0  10G  0 disk
xvdca   202:19968  0   4G  0 disk
Run Code Online (Sandbox Code Playgroud)
  1. 我试图挂载磁盘只是为了检查,但当然它们没有文件系统所以它失败了

    mount /dev/xvdba /gp2/ mount: 错误的 fs 类型、错误的选项、/dev/xvdba 上的超级块错误、缺少代码页或帮助程序或其他错误

    在某些情况下,可以在 syslog 中找到有用的信息 - 尝试 dmesg | 尾巴左右。

3)我在每个设备上制作了文件系统

mkfs -t ext4 /dev/xvdba
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: e32b2ed1-a0f8-49df-895d-c56b9802a009
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

root@ip-11-0-2-184:/home/ubuntu# mkfs -t ext4 /dev/xvdbb
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 4f1f7c75-bbce-4887-aac7-02e197a36c89
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Run Code Online (Sandbox Code Playgroud)

4)我安装了磁盘

mount /dev/xvdba /gp2/
mount /dev/xvdbb /pio/
Run Code Online (Sandbox Code Playgroud)

5)我在每个卷上运行 photorec

photorec /dev/xvdba
Run Code Online (Sandbox Code Playgroud)

GP2

新 AWS GP2 卷上的 Photorec 结果

IO1 预配 IOPS

新 AWS IO1volume 上的 Photorec 结果

如您所见,未找到任何文件。如果@stevelandiss 可以指出他的不同之处,我可以再次尝试重现。例如,他没有提到任何挂载,而是使用了不同的设备名称。我会在几分钟内重试,但我想保存此更新以免丢失。

更新 - 测试二

这次我做了很多相同的事情,但我没有创建文件系统或挂载磁盘。这与@stevelandiss 所做的更接近。这没有任何区别,没有恢复任何文件。

GP2

新 AWS 卷上的 GP2 Photorec

IO1 预配 IOPS

新 AWS 卷上的 IO1 Photorec

  • @stevelandiss 我只是尝试创建一个新卷并对其进行十六进制转储,我得到的只是零。 (4认同)
  • 如果没有其他人尝试,我会在接下来的几天内试一试。如果您可以编辑您的问题以提供清晰明确的重现步骤,我将不胜感激。 (4认同)
  • 无意冒犯,但是,我打赌 100 欧元,这是一个第 8 层问题。 (3认同)
  • repro 的步骤 (1) 启动一个 Linux 实例 (我用的是 Ubuntu)... (2) 将任何 PIOPS EBS 卷分配给该实例...称之为 `/dev/xvdb` (3) 安装 photorec... `sudo apt-get install testdisk` (4) 运行 `photorec /dev/xvdb`。 (2认同)
  • @lauc.exon.nod 也可能是 PEBKAC 问题 (2认同)

小智 5

来自wipefs手册页:

wipefs 不会擦除文件系统本身或设备中的任何其他数据

  • @stevelandiss 您需要就您的发现联系 AWS 支持。 (9认同)
  • 哎哟,把“wipefs”作为有史以来第一个不正确命名的命令。:-) (5认同)

Jas*_*tin 1

https://d0.awsstatic.com/whitepapers/aws-security-whitepaper.pdf描述了 Amazon 已发布的处理 EBS 的流程。两句话似乎相关:

Amazon EBS 卷以原始未格式化块设备的形式呈现给您,这些设备在可用之前已被擦除

但是也

EBS 快照是整个 EBS 卷的块级视图。请注意,通过卷上的文件系统不可见的数据(例如已删除的文件)可能会出现在 EBS 快照中。

最可能的情况是您正在从已删除数据的快照创建卷。

我尝试使用新的 PIOPS、gp2 和磁性卷在 us-east-1 中重现您的场景,但无法恢复任何数据。

也就是说,您可以通过使用 KMS 加密卷进一步保护您的 EBS 数据。