我们目前正在使用“负载平衡模板”部署时基于 AWS Toolkit for Visual Studio 创建的模板设置 CloudFormation 堆栈。我们需要创建一个脚本来稍微定制 EC2 实例。更具体地说,我们想要: 1. 将两个证书安装到证书存储中。2. 配置 IIS 以使用其中一种证书。3. 在 IIS 上启用 TLS 1.2。
我们需要在 IIS 上而不是负载均衡器上安装这些证书,因为我们需要支持客户端证书身份验证。
我们希望在不必创建自定义 AMI 的情况下实现这一点,因为我们希望能够在新版本到来时轻松更新 AMI。我们正在使用以下内容:ami-f6803f9f(这是模板使用的默认值)。
因此,我们希望将这些自定义作为 CloudFormation 模板的一部分。我尝试使用模板的“AWS::CloudFormation::Init”部分创建一个简单的文件(只是为了确保脚本有效)。但是,当我启动堆栈时,文件永远不会被创建。应该创建文件的模板部分如下所示:
"Metadata" : {
"AWS::CloudFormation::Init" : {
"config" : {
"files" : {
"C:/ClientCA.pfx" : {
"content" : { "Fn::Join" : ["", [
"test1\n",
"test2\n"
]]}
}
}
}
}
}
因此,我的问题是: 1. 为什么没有创建文件?是因为模板有问题还是这个 AMI 不支持这些类型的初始化脚本?2. 我们计划使用“AWS::CloudFormation::Init”从 S3 下载证书,并使用我们添加到 UserData 的 PowerShell 脚本安装它们。这是一个好方法还是我们应该采取不同的做法?