问题描述
刚开始使用 cloudformation,并且无法弄清楚将密钥导入到实例创建中的语法。抱歉,如果此帖子的格式已关闭。假设我有一个名为 MyKey.pem 的密钥保存在我的桌面上。我将如何导入密钥并将其应用到我在模板中创建的实例?此外,如果有人也可以告诉我在模板中实际生成新密钥的过程并应用它,我也将不胜感激。这是我用来创建实例的代码。
Ec2Instance1:
Type: AWS::EC2::Instance
Properties:
InstanceType: t2.micro
ImageId: ami-07dcc3822b6f2bdbe
KeyName: MyKey.pem
解决方法
遗憾的是,CloudFormation (CFN) 没有没有直接的方法可以做到这一点。最简单的方法是使用 AWS 控制台或 CLI 导入密钥,然后在模板中按名称引用它。
但如果您真的想通过 (CFN) 来实现,则必须使用 custom resource。该资源将采用 lambda 函数的形式,该函数将使用 AWS SDK 来创建密钥。私钥可能来自 SSM 参数存储,例如您将在其中上传您的密钥或 AWS::SecretsManager::Secret。
更新
例如,如果您的密钥对名为 MyKeyPair
,那么在 CFN 中您将使用:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: "ami-79fd7eee"
KeyName: MyKeyPair