お疲れ様です。おれちゃんでござる!
最近構築した案件の中にACM「Amazon証明書」の部分を構築する必要がありました。もともと手作業で行われていることなんですけれども、折角Terraformを使いますのでこの部分も自動化をしました。どうやってコードにしたのをこれから紹介したいと思います。
証明書とRoute53
証明書をACMで発行するにあたってRoute53も使わないといけないです。ACMを上手く発行するにはDNS確認が必要なのでRoute53のTerraformリソースを使う必要があります。
ACMのコードは以下になります:
domain_nameとsubject_alternative_namesまたはEnvironmentであるtagsを変数にすることで変数を記入することだけでコードの中身をいじらずに使えます。
証明書はこのように発行したらPendingの状態になります。証明書に値するDNSの確認が必要です。Route53のコードは以下のようになります:
domain変数に記入された値のRoute53ホストゾーンが作成される共にAレコードも作成される。
Route53とACMは作成されているのでvalidationというリソースで証明書確認できます。
証明書の確認は以下のコードのように行われます。
ACM証明書に含まれてる各レコードをDNSに確認します。そうするためにループを使っています。
一番目のaws_route53_recordに各domainとsubject_alternate_domainの確認CNAMEレコードを作成します。
二番目のaws_acm_certificate_validationは以上の確認レコードに証明書に紐づけします。
このコード使ったらPending状態からValidatedになるはずです。
最後に
これからどんどんTerraformを使うことになるのでまたこういうの構築の部分を提供したいと思っといます。
また次のTipsお楽しみにしてね ^^💦