Terraform

Terraform経由でBigQueryのデータセットを管理する際に必要なメタデータが入力されていることをConftestで担保する

背景 ConftestによるTerraformのポリシーテスト 例: ConftestでBigQueryのデータセットのlabelにownerが設定されていることをテストする 実際の業務への取り込み方 背景 権限管理を含め、BigQueryのデータセットの管理をTerraformで行なっている人は多いと思…

terraform-provider-googleにgoogle_bigquery_datasetのバグ報告して、修正コードを取り込んでもらった話

仕事でGoogle Cloudのリソース管理にTerraformを使っていて、コードは一切変更していないのにterraform planで意図していない差分が出たり、terraform applyが通らなくなって手動でリソースの修正が必要になって困ったケースがありました。本家のterraform-p…

BigQueryの列レベルのアクセス制御とポリシータグの調査メモ

なぜ列レベルのアクセス制御とポリシータグが必要か Terraformでポリシータグの作成および権限付与 ポリシータグの付与の仕方 dbt経由の場合 bq loadを使う場合 運用上の注意点 まとめ なぜ列レベルのアクセス制御とポリシータグが必要か 「テーブルの全ての…

Terraform経由でBigQuery Editionsの設定を行なう

背景: BigQuery Editionsの登場およびOnDemandの価格変更 注意(Disclaimer) BigQuery Editionsの設定を行なう providerのバージョンを上げる Reservationの作成およびAssignmentの設定 脱線: BigQuery Editionsを選択して、OnDemandよりコストが上がってしま…

データエンジニア / Analytics Engineer向けの権限管理のためのTerraform紹介

これは何? 背景: 権限管理とTerraform 権限管理の対象 誰に権限を付与するのか どのスコープで権限を付与するのか どの強さで権限を付与するのか Terraformについて Terraformの概要: 権限管理でTerraformを使うと何がうれしいのか 例: roles/bigquery.jobUs…

スケジュールクエリでも最高のメタデータを付与したい人生だった

この記事は、BigQuery Advent Calendar 2021の8日目(シリーズ2)の記事です。カレンダーが人気ですでに枠が埋まっていましたが、書きたかったので勝手にシリーズ2を作りました。ちなみに12/23も書くらしいです。 みんな大好きメタデータ 皆さん、データ好きで…

Terraformのapplyでtargetを指定しているにも関わらず、それ以外のリソースが差分として出てくる場合

タイトルのようなことがあって困ったので、忘れないようにメモ。 Terraformのtargetオプション Terraformを使っていると「このresourceに関するところだけ差分を見たい」「あのモジュールに関するところだけapplyしたい」ということが時々ある。いつもあって…

集合の組合せに対してTerraformで設定する(setproductとfor_eachを使う)

「このメンバーの一覧に対して、このリストの一覧の権限の付与したい」ってケース、結構あると思います。「このメンバー一覧に対して、この権限だけを付与したい」という場合はTerraformだとfor_eachで割と簡単に書くことができますが(一重ループ)、タイトル…

どのrevisionでterraform applyされたものか分かるようにtfstateに情報を埋め込む

背景 Terraformでリソースをコード管理をしている場合、大抵gitでバージョン管理している terraform applyしたものがまずかった場合、どの差分によるものか、いつから発生していたものなのか、誰の実行によるものかといった情報が欲しくなる backendをgcsな…

TerraformのModuleでデータマネジメントしやすくする

背景: Terraformを使いつつ、データマネジメントの観点から統制を取りたい Terraform Moduleを定義する 例: データセット まとめ 背景: Terraformを使いつつ、データマネジメントの観点から統制を取りたい GCPでデータ基盤を管理する場合、Terraformはよい選…

最近の砂場活動その19: Workload Identityを利用してGKEクラスタの権限管理を行なう

前回の続編です。GKEクラスタの設定をterraformで行なうように準備ができたので、肝心のWorkload Idenfityの設定をしていきます。 なぜ Workload Identityの実基盤への導入に丁寧に書いてありますが、素朴なやり方では以下のような問題があるからです。 権限…

最近の砂場活動その18: GKEの設定をTerraformで行なう

前提 機械学習を使った情報推薦をGKE上で行なっている 最近の砂場活動その14: GoogleAnalytis For Firebaseのデータを使ってImplicit-feedbackな推薦システムを構築する - yasuhisa's blog えいやっで作ったので、GKEはgcloudコマンドで作った 当時どんなコ…