この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
AWSチームのすずきです。
CloudFormationが、ACM(AWS Certificate Manager)のDNSレコードを利用したドメインの所有検証に対応し、 Amazon発行の無料サーバ証明書がより簡単に設置出来るようになりました。
早速試す機会がありましたので、紹介させていただきます。
CloudFormation
今回、以下のテンプレートを利用しました。
AWSTemplateFormatVersion: '2010-09-09'
Description: ACM DNS Validation template (20180828)
Parameters:
DomainName:
Description: FQDN of the certificate
Type: String
Default: 'acm.mesoko.jp'
ValidationDomain:
Description: The domain to which validation
Type: String
Default: 'mesoko.jp'
Resources:
ACMCertificate:
Type: AWS::CertificateManager::Certificate
Properties:
DomainName: !Sub '${DomainName}'
SubjectAlternativeNames:
- !Sub '*.${DomainName}'
DomainValidationOptions:
- DomainName: !Sub '${DomainName}'
ValidationDomain: !Ref 'ValidationDomain'
Tags:
- Key: Name
Value: !Sub '${DomainName}-20180828'
ValidationMethod: DNS
- 「ValidationMethod:」として「DNS」の指定が可能になりました。
- 「EMAIL」を指定した場合、従来通りのメールを利用したドメイン所有確認が行われます。
動作例
CloudFormationスタック作成
- ダウンロードしたYAMLファイルを利用して、新規CloudFormationスタックの作成を行います。
- 「DomainName」は、SSL証明書を発行するFQDN(CN:コモンネーム)を記述します。
- 「ValidationDomain」は、CNAMEレコードを設置するDNSゾーンを指定します。サブドメインの場合、親ゾーンを指定する事も可能です。
- イベントステータスとして「AWS::CertificateManager::Certificate」の作成がDNS検証待ちとなります。
‐ 以前に設置した検証用のCNAMEレコードが有効な場合、DNS検証が完了次第、作成完了となります。
ACM操作
- 「検証保留中」のドメインを開き、ドメインのDNS設定情報を確認します。
- 表示されたCNAMEレコード内容を、DNSサーバに登録します。
- 同一アカウントのRoute53のHostedZoneで管理されているドメインの場合、ACMのWebコンソールから必要なDNSレコード情報の追加が可能です。
- 設定後、数分〜30分程度でDNS検証が実施され、証明書の状態が「発行済み」となります。
まとめ
CloudFormationを利用してAmazon発行のSSL証明書を発行する事は可能でしたが、 これまでは証明書の発行の度にメール承認が求められるため、利用しにくい場合がありました。
今回、CloudFormationがACMのDNS検証に対応した事で、初回のみ検証用のCNAMEレコードの追加が必要ですが、2回目以降はSSL証明書の即時発行、有効化が可能になりました。
複数リージョン、マルチアカウントで展開されるシステムや、シングルドメイン証明書の利用などで 多数のSSL証明書の発行が求められる場合には、今回のアップデートをぜひお試しください。