0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Terraform × CloudWatch構成でつまずいた話と対処法

Last updated at Posted at 2025-05-17

# Terraform × CloudWatch構成でつまずいた話と対処法【AccessDeniedException】

TerraformでCloudWatch Log GroupをIaC化しようとした際に、  
**「AccessDeniedException」** に詰まったので、原因と対処法を記録としてまとめます。

初心者にも起こりがちなミスなので、構成の参考や学びの一助になれば嬉しいです。

---

## 🔥 発生したエラー

```bash
Error: setting CloudWatch Logs Log Group retention policy: 
AccessDeniedException: User is not authorized to perform: logs:PutRetentionPolicy

CloudWatch Log Groupにログの保持期間(retention)を設定しようとした際に出たエラーです。


🧠 原因

以下の2点が原因でした:

  1. IAMポリシーに logs:PutRetentionPolicy が含まれていなかった
  2. Terraformのリソース依存関係を制御する depends_on を設定していなかった

✅ 対応したこと

IAMポリシーにアクション追加

{
  "Effect": "Allow",
  "Action": [
    "logs:PutRetentionPolicy"
  ],
  "Resource": "*"
}

CloudWatchログの保持期間を設定するには、
このアクションが明示的に許可されていないとTerraformから操作できません。

Terraformに depends_on を追加

IAMロールが作成されてからCloudWatch Log Groupが適用されるように、以下のように追記:

resource "aws_cloudwatch_log_group" "main" {
  name              = "/aws/ec2/high_cpu_alarm"
  retention_in_days = 7

  depends_on = [aws_iam_role.cloudwatch_logs] # ロール名に応じて変更
}

これにより、IAMが未反映の状態でLog Groupが先に作られるといったタイミングバグを防げます。


✍️ 学び・気づき

  • PutRetentionPolicy はあまり目立たないが、明示的に許可しないと操作できない
  • Terraformでは「順序制御」が明示されない限り、並列実行になる点に注意
  • depends_on の活用は本番環境でも重要なIaC設計の要

💻 構成リポジトリ(GitHub公開中)

この構成のコード・設計図はすべてGitHubにて公開しています。
🔗 terraform-aws-portfolio


🙌 最後に

Terraform初心者だった自分でも、エラーにぶつかりながら学びを積み上げることで、
IaCとしての構成力を高めることができました。

同じような構成で悩んでいる方の参考になれば幸いです!

📦 Terraform構成テンプレ(解説付き)販売中!
👉 ココナラで購入する(1,000円)

📦 Terraformテンプレを販売しています!

本記事の構成をベースに、再利用可能な構成テンプレートをBoothで販売しています👇

👉 Terraform × AWS構成テンプレ(Booth)

  • 初学者向けでも使いやすい設計
  • モジュール分離済み、保守性・可搬性を意識
  • 初月は購入者特典で「コードレビュー」付き

※ぜひ導入・改善のベースにご活用ください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?