AWS / EC2上的Windows服务器场

我们将在AWS / EC2 VPC上部署我们的应用程序基础架构(主要是Windows和一些Linux组件)。 我们将使用厨师来处理供应和pipe理。

但是,与Linux机器不同的是,Windows机器没有内置的SSH,并且被迫使用其他的身份validation方法来获得pipe理员权限。

自动授予我们的Chef服务器访问Windows的最佳方式是什么? 我发现的一些方法:

  1. 在实例的用户数据脚本中包含默认密码
    • 这似乎不安全,然后再次,这些计算机在VPC的私有子网内
  2. 设置一个域控制器服务器来pipe理所有的计算机
    • 研究应该认为,pipe理EC2上的Windows域可能会令人头疼,因为可能会随机丢失EC2机器。 这对于pipe理将经常添加/移除的机器的凭证来说似乎也是不必要的开销。

如果您准备好进行脚本编写,收集/提供Windows凭据的最佳方法是使用AWS API( http://docs.aws.amazon.com/AWSSDKforPHP/latest/index.html#m=AmazonEC2/get_password_data )将信息“转发”给您的同事,以创build任何新创build的Windows实例。

否则,可以通过作为使用pipe理服务的AWS IAM服务将一些读取权限委托给您的同事,以允许您希望通过客户aws凭证访问某些实例/组/function的人员。 有关IAM概念的一些有用信息: http : //docs.aws.amazon.com/IAM/latest/UserGuide/IAM_Concepts.html#ConceptsAWSEntities

推荐和本地的方式来控制Windows节点与厨师是使用WinRM例如

knife bootstrap windows winrm ... 

这个问题有一些细节: 刀引导窗口winrm / ssh超时

准备Windows节点的tl; dr详细信息: https : //github.com/opscode/knife-windows#nodes

总结:对于Linux节点,使用ssh; 对于Windows节点,使用WinRM