amazon-web-services - 如何将 key 从桌面导入到 cloudformation 模板?

标签 amazon-web-services amazon-ec2 yaml aws-cloudformation key-pair

对于使用 cloudformation 非常陌生,我无法弄清楚将 key 导入到实例创建中的语法。抱歉,如果这篇文章的格式已关闭。假设我的桌面上保存了一个名为 MyKey.pem 的 key 。我将如何导入 key 并将其应用到我在模板中创建的实例?另外,如果有人还可以告诉我在模板中实际生成新 key 并应用该 key 的过程,我也将不胜感激。这是我用来创建实例的代码。

Ec2Instance1:

Type: AWS::EC2::Instance

Properties:

  InstanceType: t2.micro

  ImageId: ami-07dcc3822b6f2bdbe

  KeyName: MyKey.pem

最佳答案

遗憾的是,CloudFormation (CFN) 中没有直接的方法可以做到这一点。最简单的方法是使用 AWS 控制台或 CLI 导入 key ,然后在模板中按名称引用它。

但是如果你真的想通过(CFN)来做到这一点,你就必须使用 custom resource 。该资源将采用 lambda 函数的形式,该函数将使用 AWS SDK 创建 key 。私钥可以来自 SSM 参数存储,例如您可以在其中上传 key 或 AWS::SecretsManager::Secret .

更新 例如,如果您的 key 对名为 MyKeyPair,那么在 CFN 中您将使用:

  MyEC2Instance: 
    Type: AWS::EC2::Instance
    Properties: 
      ImageId: "ami-79fd7eee"
      KeyName: MyKeyPair

关于amazon-web-services - 如何将 key 从桌面导入到 cloudformation 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66249466/

相关文章:

java - 按计划在 AWS EC2 实例上重启 Tomcat 服务

ruby - 每当我输入 `missing postgres.yml` 时,Rails 都不会加载默认项目模板,显示 `rails new` 文件

macos - YAML异常: unacceptable character '' (0x0)

MySQL 'Error Code: 1045' 尝试在 Amazon RDS 实例中加载数据 INFILE

amazon-web-services - Kinesis Streams 和 Kinesis Firehose 有什么区别?

ruby - rbenv 无法安装 rubinius

amazon-web-services - 将数据从 AWS SQS 传输到 S3 的最佳方式是什么?

amazon-web-services - 如何将docker ip地址映射到域名

ruby - 无法将菜谱从 Knife 上传到 Chef 服务器

amazon-web-services - 具有资源属性 CloudFormation 的 UserData 脚本