写点什么

如何通过未加密的 AMI 快速启动由 EBS 支持的加密 EC2 实例

  • 2019-09-26
  • 本文字数:1752 字

    阅读完需:约 6 分钟

如何通过未加密的 AMI 快速启动由 EBS 支持的加密 EC2 实例

Amazon 系统映像 (AMI) 可提供在 AWS 环境中启动实例(虚拟服务器)所需的信息。AWS Marketplace 提供了许多 AMI(例如 Amazon Linux、Red Hat 或 Ubuntu),您可以使用这些 AMI 启动 Amazon Elastic Compute Cloud (Amazon EC2) 实例。通过这些 AMI 启动实例时,所生成的卷未加密。但是,出于监管目的或内部合规性原因,您可能需要通过加密根卷启动实例。以前,您需要按照多步骤流程进行操作,在这一流程中,您需要在账户中维护 AMI 的单独加密副本,才能通过加密卷启动实例。现在,您不再需要维护多个 AMI 副本以进行加密。要通过未加密的 AMI 启动由 Amazon Elastic Block Store (Amazon EBS) 支持的加密实例,您可以直接在现有工作流程中指定加密属性(例如使用 RunInstances API 或启动实例向导)。这简化了使用加密卷启动实例的流程,并降低了相关的 AMI 存储成本。


在本文中,我们将演示如何从未加密的 AMI 开始,进而启动由 EBS 支持的加密 Amazon EC2 实例。我们将向您展示如何通过 AWS 管理控制台,以及通过带有 AWS 命令行界面 (AWS CLI) 的 RunInstances API 做到这一点。

通过 AWS 管理控制台启动实例

1.登录 AWS 管理控制台并打开 EC2 控制台。


2.选择启动实例,然后按照启动实例向导的提示操作:


a.在向导的第 1 步中,选择您要使用的 Amazon 系统映像 (AMI)。


b.在向导的第 2 步中,选择实例类型。


c.在第 3 步中,提供其他配置详细信息。有关配置实例的详细信息,请参阅启动实例。


d.在第 4 步中,指定 EBS 卷。卷的加密属性继承自您所选的 AMI。如果您使用的是未加密的 AMI,它将显示为“未加密”。 然后,您可以从下拉列表中选择一个用于加密卷的客户主密钥 (CMK)。您可以为要创建的每个卷选择相同的 CMK,也可以为每个卷使用不同的 CMK。



图 1:指定 EBS 卷


  1. 选择查看,然后选择启动。您的实例将通过加密的 Amazon EBS 卷启动,该卷使用的是您所选的 CMK。要了解有关启动向导的更多信息,请参阅使用启动实例向导启动实例。

通过 RunInstances API 启动实例

通过 RunInstances API/CLI,您可以通过在 BlockDeviceMapping (BDM) 对象中指定加密来提供 kmsKeyID,以加密那些要通过 AMI 创建的卷。如果您未在 BDM 中指定 kmsKeyID,而是将加密标志设置为“true”,那么 AWS 托管的 CMK 将用于加密卷。


例如,要通过附带 100 GB 的空数据卷 (/dev/sdb) 的 Amazon Linux AMI 启动加密的实例,API 调用如下:



$> aws ec2 run-instances --image-id ami-009d6802948d06e52 --count 1 --instance-ype m4.large --region us-east-1 --subnet-id subnet-aec2fc86 --key-name 2016KeyPair --security-group-ids sg-f7dbc78e subnet-id subnet-aec2fc86 --block-device-mappings file://mapping.json
复制代码


其中 mapping.json 包含以下内容:



[ { "DeviceName": "/dev/xvda", "Ebs": { "Encrypted": true, "KmsKeyId": "arn:aws:kms:<us-east-1:012345678910>:key/<Example_Key_ID_12345>" } },
{ "DeviceName": "/dev/sdb", "Ebs": { "DeleteOnTermination": true, "VolumeSize": 100, "VolumeType": "gp2", "Encrypted": true, "KmsKeyId": "arn:aws:kms:<us-east-1:012345678910>:key/<Example_Key_ID_12345>" } }]
复制代码


您可以为不同的卷指定不同的密钥。提供没有加密标志的 kmsKeyID 会导致 API 错误。

小结

在这篇博文中,我们演示了如何只需几步即可通过未加密的 AMI 快速启动由 EBS 支持的加密实例。您还可以使用同一流程通过未加密的快照启动由 EBS 支持的加密卷。这简化了使用加密卷启动实例的流程,并降低了 AMI 存储成本。


在所有 AWS 商业区域(中国除外),您均可通过 AWS 管理控制台、AWS CLI 或 AWS SDK 免费获得此功能。如果您对此博文有反馈,请在下面的评论部分中提交评论。如果您对此博文有疑问,请在 Amazon EC2 论坛上发表新帖子,或联系 AWS Support。


作者介绍:


Nishit Nagar


Nishit 是 AWS 高级产品经理。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/how-to-quickly-launch-encrypted-ebs-backed-ec2-instances-from-unencrypted-amis/


2019-09-26 18:45817
用户头像

发布了 1955 篇内容, 共 165.7 次阅读, 收获喜欢 82 次。

关注

评论

发布
暂无评论
发现更多内容

k8s TLS bootstrap解析-k8s TLS bootstrap流程分析

良凯尔

容器 云原生 kubeadm #Kubernetes#

极客星球 | 数据智能公司K8S生产环境落地之监控篇

MobTech袤博科技

K8s 多集群管理

在线计算两个时间相差多少秒,分钟,天

入门小站

工具

微信朋友圈的高性能复杂度分析

Geek_bc9c8d

训练营作业-Module2:朋友圈高性能复杂度分析

Jadedev

架构训练营

架构实战营【模块二】作业

michael

架构实战营 「架构实战营」

架构实战营 - 第 6 期 模块二课后作业

乐邦

「架构实战营」

微信朋友圈高性能复杂度

鱼恨水

架构训练营模块 2 作业

小马

「架构实战营」

RabbitMQ 补偿机制、消息幂等性解决方案

Ayue、

RabbitMQ 4月月更

linux之type命令

入门小站

Linux

元宇宙大热,是风口还是虎口

CECBC

云原生训练营 -Week08

jjn0703

jackson学习之五:JsonInclude注解

程序员欣宸

4月月更

在线SQL压缩工具

入门小站

工具

微信朋友圈架构复杂度分析

Trent

模块二作业 -- 图片字小,可以放大网页观看

库尔斯

一文简述:企业应用架构演进史

穿过生命散发芬芳

4月月更

微信朋友圈的高性能复杂度

唐诗宋词

分布式session之RedisSession的探索

Rubble

redis 4月日更 4月月更

分析微信朋友圈的高性能复杂度

Kevin

「架构实战营」

带你了解元宇宙

CECBC

有没有一件你认为是成功的,能让自己骄傲的事情?

石云升

职场经验 4月月更

内容管理系统简史

张泽豪

CMS

模块二

Geek_5hnu3d

基于HiKariCP组件,分析连接池原理

HikariCP 连接池 数据库连接池

PiFlow 发布企业级分布式关系型数据库 OceanBase 组件

OceanBase 数据库

oceanbase OceanBase 开源

朋友圈架构设计

踩着太阳看日出

架构训练营

不断挖掘“区块链”更大潜能

CECBC

尤达 DDD 领域驱动设计思想 第五章作业(使用微服务框架对 SmartRM 系统重新进行微服务化重构)

代廉洁

尤达DDD领域驱动设计思想

如何通过未加密的 AMI 快速启动由 EBS 支持的加密 EC2 实例_文化 & 方法_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章