AWS CloudFormation:编写Lambda函数以验证ACM证书的域所有权

时间:2017-10-25 19:29:30

标签: amazon-web-services ssl automation aws-lambda aws-certificate-manager

我正在CloudFormation中创建ACM Cert。基于此documentation,AWS会向WHOIS中注册的地址发送电子邮件。

CloudFormation的文档说:

  

重要

     

使用AWS :: CertificateManager :: Certificate时   在AWS CloudFormation堆栈中的资源,堆栈将保留在   CREATE_IN_PROGRESS状态和任何进一步的堆栈操作   延迟到您按照证书中的说明行事   验证电子邮件。

通常对于类似的事情,比如创建和接受VPC peering connection in multiple accounts,或启用在CFN中创建的SNS Topic subscriptions,我会将lambda函数编写为自定义资源来处理这一点。

验证域名所有权所需的API调用是什么?这甚至可以在Lambda函数中完成吗?

有可能会将电子邮件发送给IT经理,但将其自动化会很好。

2 个答案:

答案 0 :(得分:1)

没有API调用来验证域名所有权,因为这需要在您的whois记录中通过电子邮件进行验证。

您也可以通过这种方式实现自动化。将whois记录的技术联系电子邮件地址更改为ses域电子邮件地址。

SES电子邮件 - > S3铲斗(触发器) - > Lambda(通过电子邮件内容中的链接确认)。

您需要将您的电子邮件地址还原回收件箱,并且需要为与您的域或子域相关的技术联系人提供任何电子邮件。

有关域名验证的文档:

http://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate.html

Thx!

答案 1 :(得分:0)

此存储库 aws-cfn-acm 包含一个 CloudFormation 模板,其中包含一个以与您的要求类似的方式工作的 Lambda 函数。

Lambda 函数通过 DNS 方法自动验证证书,而不是您使用的 EMAIL 方法。它要求与证书相关的域名必须托管在 name.com 中。 name.com 提供了 Lambda 函数可以利用的 API 服务。应该很容易扩展以支持其他 DNS 服务提供商。

模板使用了内联的Lambda函数,代码不好读,这里是Lambda函数的well-formatted version