CloudflareのAPIトークンにおいて複数ゾーンリソースを管理する

TerraformにてCloudflareのゾーンリソースを管理したい。 特に単一のゾーンではなく複数のゾーンを扱いたい。

Terraformのcloudflare providerには cloudflare_zoneリソースがあるのでこれを利用すればよい。 Cloudflareとの認証にはAPI_TOKENを利用すればよい。

developers.cloudflare.com

単一のゾーンを扱うときは上記操作で問題なかったが、2つ目のゾーンを追加したところ認証エラーが発生するようになった。

$ terraform plan
...
╷
│ Error: error finding Zone "xxxxxxxxxxxxxxxxxxxxxxx": Unauthorized to access requested resource (9109)
│ 
│ 
╵
Operation failed: failed running terraform plan (exit 1)

原因はAPIトークンの有効範囲として1つ目のゾーンに制限していたこと。 これはデフォルトの設定でこのようになっているのか自分が制限したのかは定かではないが、APIトークンの対象ゾーンリソースとして特定のゾーンのみが選択されていた。

このリソースの範囲をすべてのゾーンに変更すると正常にterraformがAPI経由でリソースにアクセスできるようになった。