LoginSignup
1
2

GCPの監査ログの出力設定をTerraformでおこなう【GCP/Audit Logs/Terraform】

Posted at

やりたいこと

GCPの監査ログの出力設定をTerraformでおこなう

GCPの4種の監査ログのうち、自分であれこれ設定できる「データアクセス監査ログ」について、Terraformで有効化したい。

やりかた

  • google_project_iam_audit_configを使用する。
    • audit_log_configには、有効化したいデータアクセス監査ログの種別を設定する。

全部のサービスをいっきに有効化したい場合

resource "google_project_iam_audit_config" "sample" {
  project = "sample_project"

  service = "allServices"

  # 有効化したい監査ログの種別を列挙する
  audit_log_config {
    log_type = "ADMIN_READ"
  }
  audit_log_config {
    log_type = "DATA_READ"
  }
  audit_log_config {
    log_type = "DATA_WRITE"
  }
}

特定のサービスだけ有効化したい場合は以下。

resource "google_project_iam_audit_config" "sample" {
  project = "sample_project"

  # 有効化したいサービスを列挙する
  for_each = toset([
    "run.googleapis.com",
    "storage.googleapis.com",
  ])

  service = each.value

  # 有効化したい監査ログの種別を列挙する
  audit_log_config {
    log_type = "ADMIN_READ"
  }
  audit_log_config {
    log_type = "DATA_READ"
  }
  audit_log_config {
    log_type = "DATA_WRITE"
  }
}

つまづいたことメモ

サービス名を指定するところで、いつものサービス名(API名)(ここではsqladmin.googleapis.com)を指定したところ、
「そんなサービスはないか、サービス単位の監査ログの対象じゃない」とエラーになり焦っていた。
いつものサービス名と、Loggingの文脈でのサービス名は、違うっぽい・・?

Error 400: 
Service sqladmin.googleapis.com does not exist or does not support service level configuration of Google Cloud audit logging., 
badRequest

参考URL

Terraform公式ドキュメント - google_project_iam_audit_config

CloudLogging公式ドキュメント - Mapping services to Logging resource types

1
2
1

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
1
2