現象
terraformでdatadogプロバイダーを使ってdatadogリソースを管理しようとしていたのですが、apiキーもappキーも正しいものを使ってるはずなのに、403が出てこまりました。
Planning failed. Terraform encountered an error while generating this plan. ╷ │ Error: 403 Forbidden │ │ with module.datadog.provider["registry.terraform.io/datadog/datadog"], │ on modules/datadog/provider.tf line 19, in provider "datadog": │ 19: provider "datadog" { │ ╵
原因
当初こんな感じに設定していました。api_urlの指定をしてませんでした。
provider "datadog" { api_key = var.datadog_api_key app_key = var.datadog_app_key }
providerのソースコードを読んでもデフォルト値が分からないのですが、おそらく https://app.datadoghq.com
の値がセットされてしまってるのかなと推定しています。
今回東京リージョン(AP1)を使っています。東京リージョンのURLは https://ap1.datadoghq.com
なのでこの値api_urlを明示的にセットしてあげることで、planが通るようになりました。
variable "datadog_api_url" { type = string default = "https://ap1.datadoghq.com" } provider "datadog" { api_key = var.datadog_api_key app_key = var.datadog_app_key api_url = var.datadog_api_url }