对流层云信息dns验证证书资源
troposphere-dns-certificate的Python项目详细描述
Cloudformation DNS验证的证书资源
cloudformation aws::certificatemanager::证书资源只能创建经过电子邮件验证的证书。
这是一个cloudformation自定义资源,它还可以为使用 以53号公路为主体的区域。它还可以在堆栈区域以外的区域创建证书。
用法
要使用此自定义资源,请复制customacmcertificatelambda和customacmcertificatelambdaexecutionrole资源
进入你的模板。然后可以创建类型为:custom::dnscertificate的证书资源
此资源也可用作对流层扩展,位于对流层dns证书包中
请记住将servicetoken属性添加到引用customacmcertificatelambda arn的资源中。 颁发证书可能需要30分钟,但通常需要3分钟。证书资源保持为 在颁发证书之前,正在创建证书。
与AWS::CertificateManager::Certificate的区别
它的行为应该类似于aws::certificatemanager::certificate, 除了这里描述的不同之处。
当使用'dns'作为validationmethod
时,需要domainvalidation
属性,并且domainvalidationoption
需要hostedzoneid
而不是validationdomain
。hostedzoneid应该是创建dns验证的区域
中的记录。您还可以指定一个route53rolearn
,这是在创建DNS验证记录之前要承担的角色。
可以使用附加的region
属性设置要在中创建证书的区域。
证书资源
语法
Type:Custom::DNSCertificateProperties:DomainName:StringDomainValidationOptions:-DomainValidationOptionSubjectAlternativeNames:-StringTags:-Resource TagValidationMethod:StringRegion:StringServiceToken:!GetAtt'CustomAcmCertificateLambda.Arn'
属性
域名
要为其颁发证书的完全限定域名(fqdn)。使用星号作为通配符。
- 必需:是
- 类型:字符串
- 更新需要:使用cfn updateing stacks update behaviors.html"update replacement" rel="nofollow">替换
域验证选项
用于验证域所有权的信息。对于域名和所有 SubjectAlternativeNames。父域的domainvalidationoption可用于具有相同hostedzoneid的名称。
- 必需:是
- 类型:域验证选项列表
- 更新需要:使用cfn updateing stacks update behaviors.html"update replacement" rel="nofollow">替换
subjectalternativenames
要包含在证书的使用者替代名称中的fqdns。
- 必需:否
- 类型:字符串值列表
- 更新需要:使用cfn updateing stacks update behaviors.html"update replacement" rel="nofollow">替换
标签
此证书的标记
- 必需:否
- 类型:资源标记
- 更新需要:使用cfn updateing stacks update behaviors.html;update no interrupt" rel="nofollow">不中断
验证方法
用于验证域所有权的方法。这应该是
dns
- 必需:否
- 默认值:
电子邮件
- 类型:字符串
- 更新需要:使用cfn updateing stacks update behaviors.html"update replacement" rel="nofollow">替换
地区
要在其中创建证书的区域。
- 必需:否
- 默认:堆栈的区域
- 类型:字符串
- 更新需要:使用cfn updateing stacks update behaviors.html"update replacement" rel="nofollow">替换
返回值
REF
当 函数用于返回证书ARN的证书资源的逻辑ID。
域验证选项
语法
DomainName:StringHostedZoneId:StringRoute53RoleArn:String
属性
域名
验证请求的完全限定域名。
- 必需:是
- 类型:字符串
hostedzoneid
要在中创建验证记录的路由53托管区域。
- 必需:是
- 类型:字符串
route53rolearn
创建DNS验证记录时要承担的IAM角色的ARN。这可用于创建 另一个AWS帐户中的托管区域。
- 必需:否
- 类型:字符串
对流层
如果您使用的是对流层,则可以使用pip:
$ pip install troposphere_dns_certificate
然后,您可以从对流层证书导入证书资源。证书管理器而不是对流层证书管理器。
cloudformation.py是使用对流层创建带有证书资源的模板的示例。
如果不使用对流层,只需复制customacmcertificatelambda和customacmcertificatelambdaexecutionrole cloudformation.json或cloudformation.yaml文件中的资源。
示例
证书资源如下所示:
ExampleCertificate:Properties:DomainName:test.example.comValidationMethod:DNSDomainValidationOptions:-DomainName:test.example.comHostedZoneId:Z2KZ5YTUFZNC7HTags:-Key:NameValue:Example CertificateServiceToken:!GetAtt'CustomAcmCertificateLambda.Arn'Type:Custom::DNSCertificate
与aws::certificatemanager::certificate向ref函数提供资源的逻辑id一样,返回证书arn。
例如(在yaml中):!参考"示例证书"
subjectalternativenames
可以使用SubjectAlternativeNames属性将其他名称添加到证书中。
ExampleCertificate:Properties:DomainName:example.comSubjectAlternativeNames:-additional.example.com-another.example.comValidationMethod:DNSDomainValidationOptions:-DomainName:example.comHostedZoneId:Z2KZ5YTUFZNC7HTags:-Key:NameValue:Example CertificateServiceToken:!GetAtt'CustomAcmCertificateLambda.Arn'Type:Custom::DNSCertificate
多个托管区域
通过为每个托管区域添加domainvalidationoptions,可以使用多个托管区域的名称。 例如:
ExampleCertificate:Properties:DomainName:example.comSubjectAlternativeNames:-additional.example.orgValidationMethod:DNSDomainValidationOptions:-DomainName:example.comHostedZoneId:Z2KZ5YTUFZNC7H-DomainName:example.orgHostedZoneId:ZEJZ9DIN47IQNTags:-Key:NameValue:Example CertificateServiceToken:!GetAtt'CustomAcmCertificateLambda.Arn'Type:Custom::DNSCertificate
通配符
通配符可以正常使用。一个名称和所有子域的证书,例如:
ExampleCertificate:Properties:DomainName:example.comSubjectAlternativeNames:-*.example.comValidationMethod:DNSDomainValidationOptions:-DomainName:example.comHostedZoneId:Z2KZ5YTUFZNC7HTags:-Key:NameValue:Example CertificateServiceToken:!GetAtt'CustomAcmCertificateLambda.Arn'Type:Custom::DNSCertificate
指定区域
本例使用region属性在us-east-1中创建证书,以便与cloudfront一起使用:
ExampleCertificate:Properties:DomainName:example.comValidationMethod:DNSDomainValidationOptions:-DomainName:example.comHostedZoneId:Z2KZ5YTUFZNC7HRegion:us-east-1Tags:-Key:NameValue:Example CertificateServiceToken:!GetAtt'CustomAcmCertificateLambda.Arn'Type:Custom::DNSCertificate
承担创建路由53记录的角色
在某些情况下,拥有托管区域的帐户可能与在其中生成证书的帐户不同。
为了支持这一点,您可以指定域验证选项属性route53rolearn
和角色arn
在创建证书验证所需的记录之前假设。
如果指定了顶级route53rolearn属性,则在验证不包含 route53rolearn域验证选项属性。
ExampleCertificate:Properties:DomainName:test.example.comValidationMethod:DNSDomainValidationOptions:-DomainName:test.example.comHostedZoneId:Z2KZ5YTUFZNC7HRoute53RoleArn:arn:aws:iam::TRUSTING-ACCOUNT-ID:role/ACMRecordCreationRoleTags:-Key:NameValue:Example CertificateServiceToken:!GetAtt'CustomAcmCertificateLambda.Arn'Type:Custom::DNSCertificate
此外,您还必须通过将此语句添加到customacmcertificatelambdaexecutionrole中来允许承担此角色:
Type:Custom::DNSCertificateProperties:DomainName:StringDomainValidationOptions:-DomainValidationOptionSubjectAlternativeNames:-StringTags:-Resource TagValidationMethod:StringRegion:StringServiceToken:!GetAtt'CustomAcmCertificateLambda.Arn'0
如果使用对流层扩展,则会自动添加此语句。全CUStomacm证书lambdaeExecutionRole 对于本例,如下所示:
Type:Custom::DNSCertificateProperties:DomainName:StringDomainValidationOptions:-DomainValidationOptionSubjectAlternativeNames:-StringTags:-Resource TagValidationMethod:StringRegion:StringServiceToken:!GetAtt'CustomAcmCertificateLambda.Arn'1
托管区域帐户中的iam角色将类似于:
Type:Custom::DNSCertificateProperties:DomainName:StringDomainValidationOptions:-DomainValidationOptionSubjectAlternativeNames:-StringTags:-Resource TagValidationMethod:StringRegion:StringServiceToken:!GetAtt'CustomAcmCertificateLambda.Arn'2