使用 Amazon EBS 加密 - Amazon EBS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon EBS 加密

按照以下过程使用 Amazon EBS 加密。

选择 EBS 加密的 KMS 密钥

Amazon EBS 自动在您存储 AWS 资源的每个区域中创建唯一的 AWS 托管式密钥。此 KMS 密钥 具有别名 alias/aws/ebs。默认情况下,Amazon EBS 使用此 KMS 密钥 进行加密。您也可以指定一个您创建的对称客户管理加密密钥,以作为 EBS 加密的原定设置 KMS 密钥。使用您自己的 KMS 密钥 可以提高灵活性,包括提供创建、轮换和禁用 KMS 密钥 的能力。

重要

Amazon EBS 不支持非对称加密 KMS 密钥。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的使用对称和非对称加密 KMS 密钥

Amazon EC2 console
针对某个区域配置用于 EBS 加密的默认 KMS 密钥
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 从导航栏中选择区域。

  3. 从导航窗格中,选择 EC2 控制面板

  4. 在页面的右上角,选择账户属性,然后选择数据保护和安全

  5. 选择管理

  6. 对于 Default encryption key(原定设置加密密钥),选择对称客户管理加密密钥。

  7. 选择更新 EBS 加密

默认启用加密

您可以配置 AWS 账户对您创建的新 EBS 卷和快照副本进行加密。例如,Amazon EBS 加密当您启动实例时创建的 EBS 卷以及您从未加密的快照复制的快照。有关从未加密转换为加密 EBS 资源的示例,请参阅加密未加密的资源

默认情况下,加密对现有 EBS 卷或快照没有影响。

注意事项
  • 默认加密是区域特定的设置。如果您为某个区域启用了它,则无法为该区域中单独的卷或快照禁用。

  • Amazon EBS 加密默认支持所有当前一代上一代实例类型。

  • 如果将快照复制到新 KMS 密钥并将其加密,则会创建完整(非增量)副本。这会产生额外的存储成本。

  • 在使用 AWS Server Migration Service(SMS)迁移服务器时,默认情况下不会启用加密。如果默认情况下已启用加密,并且您遇到增量复制失败,请默认关闭加密。改为在创建复制作业时启用 AMI 加密。

Amazon EC2 console
默认为某个区域启用加密
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 从导航栏中选择区域。

  3. 从导航窗格中,选择 EC2 控制面板

  4. 在页面的右上角,选择账户属性,然后选择数据保护和安全

  5. 选择管理

  6. 选择启用。您可以将系统代表您创建的 AWS 托管式密钥(别名为 alias/aws/ebs)保留为默认加密密钥,或者选择对称客户管理加密密钥。

  7. 选择更新 EBS 加密

AWS CLI
查看默认设置的加密
  • 对于特定区域

    $ aws ec2 get-ebs-encryption-by-default --region region
  • 对于您账户中的所有区域

    $ for region in $(aws ec2 describe-regions --region us-east-1 --query "Regions[*].[RegionName]" --output text); do default=$(aws ec2 get-ebs-encryption-by-default --region $region --query "{Encryption_By_Default:EbsEncryptionByDefault}" --output text); kms_key=$(aws ec2 get-ebs-default-kms-key-id --region $region | jq '.KmsKeyId'); echo "$region --- $default --- $kms_key"; done
默认启用加密
  • 对于特定区域

    $ aws ec2 enable-ebs-encryption-by-default --region region
  • 对于您账户中的所有区域

    $ for region in $(aws ec2 describe-regions --region us-east-1 --query "Regions[*].[RegionName]" --output text); do default=$(aws ec2 enable-ebs-encryption-by-default --region $region --query "{Encryption_By_Default:EbsEncryptionByDefault}" --output text); kms_key=$(aws ec2 get-ebs-default-kms-key-id --region $region | jq '.KmsKeyId'); echo "$region --- $default --- $kms_key"; done
默认禁用加密
  • 对于特定区域

    $ aws ec2 disable-ebs-encryption-by-default --region region
  • 对于您账户中的所有区域

    $ for region in $(aws ec2 describe-regions --region us-east-1 --query "Regions[*].[RegionName]" --output text); do default=$(aws ec2 disable-ebs-encryption-by-default --region $region --query "{Encryption_By_Default:EbsEncryptionByDefault}" --output text); kms_key=$(aws ec2 get-ebs-default-kms-key-id --region $region | jq '.KmsKeyId'); echo "$region --- $default --- $kms_key"; done
PowerShell
查看默认设置的加密
  • 对于特定区域

    PS C:\> Get-EC2EbsEncryptionByDefault -Region region
  • 对于您账户中的所有区域

    PS C:\> (Get-EC2Region).RegionName | ForEach-Object { [PSCustomObject]@{ Region = $_; EC2EbsEncryptionByDefault = Get-EC2EbsEncryptionByDefault -Region $_; EC2EbsDefaultKmsKeyId = Get-EC2EbsDefaultKmsKeyId -Region $_ } } | Format-Table -AutoSize
默认启用加密
  • 对于特定区域

    PS C:\> Enable-EC2EbsEncryptionByDefault -Region region
  • 对于您账户中的所有区域

    PS C:\> (Get-EC2Region).RegionName | ForEach-Object { [PSCustomObject]@{ Region = $_; EC2EbsEncryptionByDefault = Enable-EC2EbsEncryptionByDefault -Region $_; EC2EbsDefaultKmsKeyId = Get-EC2EbsDefaultKmsKeyId -Region $_ } } | Format-Table -AutoSize
默认禁用加密
  • 对于特定区域

    PS C:\> Disable-EC2EbsEncryptionByDefault -Region region
  • 对于您账户中的所有区域

    PS C:\> (Get-EC2Region).RegionName | ForEach-Object { [PSCustomObject]@{ Region = $_; EC2EbsEncryptionByDefault = Disable-EC2EbsEncryptionByDefault -Region $_; EC2EbsDefaultKmsKeyId = Get-EC2EbsDefaultKmsKeyId -Region $_ } } | Format-Table -AutoSize

您无法更改与现有快照或加密卷关联的 KMS 密钥。但是,您可在快照复制操作期间关联另一个 KMS 密钥,从而使生成的已复制快照由新 KMS 密钥 进行加密。

默认使用 API 和 CLI 管理加密

您可以使用以下 API 操作和 CLI 命令默认管理加密和默认 KMS 密钥。

API 操作 CLI 命令 描述

DisableEbsEncryptionByDefault

disable-ebs-encryption-by-default

默认禁用加密。

EnableEbsEncryptionByDefault

enable-ebs-encryption-by-default

默认启用加密。

GetEbsDefaultKmsKeyId

get-ebs-default-kms-key-id

描述默认 KMS 密钥。

GetEbsEncryptionByDefault

get-ebs-encryption-by-default

指示是否默认启用了加密。

ModifyEbsDefaultKmsKeyId

modify-ebs-default-kms-key-id

更改用于加密 EBS 卷的默认 KMS 密钥。

ResetEbsDefaultKmsKeyId

reset-ebs-default-kms-key-id

将 AWS 托管式密钥 重置为用于加密 EBS 卷的默认 KMS 密钥。