---
title: "TerraformでCloudflareにCAAが登録できた話 | C#もぐもぐ"
description: "C#をもぐもぐしているblog"
url: "https://blog.223n.tech/posts/105/"
---

# TerraformでCloudflareにCAAが登録できた話

2018年10月21日

[Cloudflare](https://blog.223n.tech/tags/Cloudflare/) [Terraform](https://blog.223n.tech/tags/Terraform/) [DNS](https://blog.223n.tech/tags/DNS/) [CAA](https://blog.223n.tech/tags/CAA/)

しばらく待っていましたが、ようやく登録できるようになりました！

と言っても、ずっとCAAが登録できることを知っていたのですが、
なぜか手元ではエラーになるため、原因か分かっていませんでした。

ようやくアップグレードの方法がわかり、書き方が誤っていたことも判明し、登録が完了しました。

![terraform applyで登録したCAAレコード](https://blog.223n.tech/images/2018/10/Screenshot-from-2018-10-21-22-07-48.webp)

つまずいた点としては、

1. アップグレード
2. CAAレコードのフォーマット

の2点でした。

## 1. アップグレード

アップグレードについては、以下のコマンドを実行すると\
アップグレードが可能になります。

```bash
terraform init -upgrade
```

投稿時点では、1.7がインストールされます。

![terraform init -upgradeの実行結果](https://blog.223n.tech/images/2018/10/Screenshot-from-2018-10-21-22-17-54.webp)

## 2. CAAレコードのフォーマット

CAAレコードは、dataの中にflags, tag, valueを設定することになります。\
tagには複数種類がありますが、自分の例を紹介します。

![CAAレコードの設定例（一部）](https://blog.223n.tech/images/2018/10/Screenshot-from-2018-10-21-22-20-31.webp)

```terraform
resource cloudflare_record "223n_tech_issue" {
  "domain" = "223n.tech"
  "type" = "CAA"
  "name" = "@"
  "data" = {
    "flags" = "0"
    "tag" = "issue"
    "value" = "letsencrypt.org"
  }
}

resource cloudflare_record "223n_tech_issuewild" {
  "domain" = "223n.tech"
  "type" = "CAA"
  "name" = "@"
  "data" = {
    "flags" = "0"
    "tag" = "issuewild"
    "value" = "letsencrypt.org"
  }
}

resource cloudflare_record "223n_tech_iodef" {
  "domain" = "223n.tech"
  "type" = "CAA"
  "name" = "@"
  "data" = {
    "flags" = "0"
    "tag" = "iodef"
    "value" = "223n@223n.tech"
  }
}
```

---

さて、これでterraformを使って自分の方で行いたいCloudflareの管理ができるようになったわけですが、\
設定例を見てみたい方は、GitHubのリポジトリを見ていただければと思います。

[223n/223ntech - GitHub](https://github.com/223n/223ntech)

[記事一覧に戻る](https://blog.223n.tech/posts/)
