问题描述
一名审计员要求我们提供证据,证明我们在AWS EC2 VPC上的所有磁盘都已加密。我想要一种列出所有磁盘及其是否已加密的方式。我知道可以使用AWS API(或CLI)来构建报告,但我希望能够找到比那更简单的方法,最好是在控制台上操作。
解决方案
请注意以下操作可能因版本差异而有所不同,以及在执行操作前进行备份。
方案1
要获取未加密卷的数量,您可以运行以下命令:
aws ec2 describe-volumes --region <您的区域> --filter "Name=encrypted,Values=false" --query "length(Volumes[])"
在此命令中,length
函数将返回数组Volumes
的长度,通过选择操作符[]
展平(更多详细信息请参阅JMESPath文档)。由于我们对未加密卷进行过滤(--filter "Name=encrypted,Values=false"
),这将向审计员证明未加密卷的数量为0。
同样的过滤器也可以在控制台中使用,转到EC2页面下的“弹性块存储”=>“卷”,在“Encrypted”处选择“Not Encrypted”以仅查看未加密的卷。您还可以添加Attachment Status : Attached
以仅列出已附加的卷。
方案2
从文档中您可以运行类似以下的命令,根据您使用的区域进行调整,然后搜索JSON输出中的名为“encrypted”的字段。
aws ec2 describe-volumes --region us-east-1
在方案1中,我们使用AWS CLI运行describe-volumes
命令,并在--filter
参数中指定了Name=encrypted,Values=false
以获取未加密卷的数量。然后,通过查询操作length(Volumes[])
来获得未加密卷的数量。这将帮助您向审计员证明未加密卷的数量为0。
方案2中,我们展示了如何使用AWS CLI运行describe-volumes
命令,以获取有关卷的信息,然后您可以在输出的JSON中查找名为“encrypted”的字段,以判断卷是否已加密。
以上是在AWS上列出已加密和未加密的已附加磁盘的两种最简单的方法,您可以根据您的偏好和情况选择其中之一来满足您的审计需求。