LoginSignup
2
1

TerraformでGCPのAudit logを有効化する

Last updated at Posted at 2022-04-29

概要

前回は、GitHub ActionsとTerraformでGCP管理を始める でTerraformでGCPの管理を始めるのを紹介したが、今回は、AuditingをProject内で有効化する設定を書いておく。

GCPのAudit log

種類が大きく分けて4種類。そしてDataAccessAuditLogの中にまた4種類。

  1. Admin Activity audit logs: デフォルトで有効。無効化できない。

  2. Data Access audit logs: BigQuery データアクセス監査ログを除き、データアクセス監査ログはデフォルトで無効 詳細: データアクセス監査ログを構成する

    1. ADMIN_WRITE: デフォルトで有効。無効化できない。

      Admin Activity audit logs are enabled for all Google Cloud services and can't be configured.

    2. ADMIN_READ: 自由に設定可
    3. DATA_READ: 自由に設定可
    4. DATA_WRITE: 自由に設定可
  3. System Event audit logs: デフォルトで有効。無効化できない。

  4. Policy Denied audit logs: デフォルトで有効。無効化できない。

内容、詳細、料金に関してはGCPの監査ログを有効にしてますか?実はデフォルトで無効になってますよ!が超絶わかりやすいのでこちらをご覧ください。

やるべきこと

デフォルトで無効化されていて、自由に設定ができる以下のデータアクセス監査ログを有効にする:

  1. ADMIN_READ
  2. DATA_READ
  3. DATA_WRITE

設定方法 (Console)

デフォルトの値を設定

  1. audit logを開く
    注意:デフォルト設定は、Project、Folder、Organizationレベルで設定ができるので、現在どのレベルで設定しているかを左上の組織、フォルダ、プロジェクトを選択する部分から自分の設定したいものを選択してからAudit Logを開く!

  2. DEFAULT AUDIT CONFIGをクリック
    default audit log

  3. Default audit configurationを設定
    default audit log

各サービスごとの設定

サービスごとの設定も、設定したいレベルからのAudit logsをクリックして設定。

Projectの場合は、https://console.cloud.google.com/iam-admin/audit?project=your_project

Screen Shot 2022-04-29 at 15.34.22.png

設定方法 (Terraform)

設定するレベルによって使うリソースが異なる:

  1. プロジェクト: google_project_iam_audit_config
  2. フォルダ: google_folder_iam_audit_config
  3. 組織: google_organization_iam_audit_config

また、Terraformで管理している単位によって、対応するレベルを選ぶ必要がある。

例えば、Projectごとに管理しているのに、Organizationの設定をそのTerraformコードに入れるのはナンセンスなので、Organization用のService Accountを作成して分けるなど

ProjectごとにService Accountアカウントを発行しているケースが多いと思うので、今回は、 プロジェクト: google_project_iam_audit_configを例に取り上げる。

例. すべてのサービスのすべてのDataAccessAuditLogを有効化する

resource "google_project_iam_audit_config" "all-services" {
  project = "your project"
  service = "allServices"
  audit_log_config {
    log_type = "ADMIN_READ"
  }
  audit_log_config {
    log_type = "DATA_READ"
  }
  audit_log_config {
    log_type = "DATA_WRITE"
  }
}

serviceには、具体的なサービスを cloudsql.googleapis.com のように入れるか、allServicesという特別な文字列を入れて全てに適用するかになる。allServicesを入れるとDefaultを設定したのと同じ様になっていそう。(個別のサービスとデフォルトが異なるケースでどうなるのかは試していない)

Cost

  • 毎月50GBまで無料(超えると$0.50/GiB)
  • ストレージは 30 日間無料(デフォルトでは30日なのでデフォルトのまま使っていれば無料。超えると$0.01/GiB)

参考

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