Auth0 の Deploy CLI Tool で Auth0 CLI の access token を利用する
Auth0 の Deploy CLI Tool では Create a dedicated Auth0 application で説明されているように Machine to Machine Application を作成し、その client ID/secret を使うのが一般的です。
CI/CD などに組み込む場合はその方法が良いでしょうが、開発者一人ひとりが Auth0 の設定をエクスポートしたい場合などに client ID/secret を利用するのは、開発者体験的にも secret の流出リスク的にも避けたいものです。
AWS ユーザに送る Azure 権限管理 (RBAC) 入門
AWS や Google Cloud にも言えることですが、初めて Azure を利用する際には情報が膨大過ぎてどこからキャッチアップを始めれば良いか戸惑うことでしょう。
自分自身もだいぶ苦労したことから、同じような境遇の方に向けて Azure の入門記事を書くには何が良いだろうかと考えたところ、権限管理についての入門記事を書けば Azure の用語やコンセプトなどの理解も深まるし、どのサービスを使うにしても活きてくるのではと思い立ちました。
というわけで、今回は Azure におけるリソースの権限管理について基本的な内容について説明します。
なお、Azure のリソースの権限管理と Entra ID(旧 Azure Active Directory)の権限管理は別物で、今回焦点を当てるのは前者のみです。読者としては Azure を使い始めて間もない人で、かつある程度 AWS の知識がある人を想定しています。
Kubernetes cluster と Grafana Cloud を Grafana Alloy で連携してみる(後編) 〜Getting Started Guide の先へ〜
前編では Grafana Cloud の Getting Started Guide に従って Grafana Alloy をインストールする方法や、Kubernetes Monitoring Helm chart の values の読み解き方や、secret を別で管理する方法について説明しました。
今回は設定の変更方法、デバッグ方法、OpenTelemetry との連携方法に焦点を当てます。
前回同様、Kubernetes Monitoring Helm chart で Alloy がインストールされていて、namespace は alloy、release name は grafana-k8s-monitoring であるものとします。
詳説 Grafana Alloy loki.process
とりあえず Grafana Alloy を使って Loki にログを送ってみるだけなら Use Grafana Alloy to send logs to Loki と Logs and relabeling basics in Grafana Alloy をやれば雰囲気を掴むことができるんですが、ログをフィルタリングしたり加工したりするには loki.process の理解が欠かせません。livedebugging を使えば loki.process の input と output の情報は確認できますが、loki.process 内の各 stage でどのような処理が行われたかは確認することができません。log level を debug にしても同様です。そのこともあって、ドキュメントを読みつつ設定を変更して試行錯誤しても自分には使い方がいまいち理解できず、ソースコードを読んだりしてようやく理解できたので、理解した内容についてまとめました。
Kubernetes cluster と Grafana Cloud を Grafana Alloy で連携してみる(前編) 〜Getting Started Guide の先へ〜
最近 Grafana Cloud を試したんですが、Getting Started Guide に従って Kuberneters cluster に Grafana Alloy をインストールするだけで様々なログやメトリクスが取れるようになるし、メトリクスの取得も高速でとても感動しました。
ただ、Grafana、Prometheus、OpenTelmetry Collector を浅く使ったことがあるだけの自分にとって、ブラックボックス過ぎてわからないことが多く、どこの設定をどう修正すれば好みの内容になるのかわかりづらかったので、備忘録がてら知見についてまとめます。
OpenTelemetry Collector の OTLP receiver で受け取ったデータに Kubernetes attributes processor で attribute を付与する
OpenTelemetry Collector の Kubernates attribute processor は、Kubernetes cluster 上で動いている Pod の情報を保持し、それらの Pod から telemetry data が送られてきたら Pod に関連する metadata を attribute として付与する processor です。
Terraform Provider for Azure Key Vault を作った 〜Azure の Key Vault secret を Terraform で安全に管理したい〜
Azure の Key Vault secret (AWS でいう paramete store) を Terraform で管理できると次のようなメリットがあります。
PagerDuty のシフト回数を数える pd-shift というツールを作成した 〜オンコール待機手当の計算を効率化する〜
24/365 で運用しているサービスであれば、オンコール体制を整備するために PagerDuty を利用しているサービスも多いことでしょう。また、業務時間外に待機することに対して、待機手当なるものが支給されることもあるでしょう。
待機手当が待機回数に応じて支給される場合、人手で待機回数を数えるのは地味に大変だったりします。そんなわけで、pd-shift というツールを作成しました。
現状はシフト回数を数える機能しかありませんが、将来的に pd よりも手軽に override を作成する機能も提供したいと思っていて、少し抽象的な名前になっています。
Kubernetes で sleep infinity しつつ SIGTERM を受け取ったらすぐ終了させたい
Introducing dumb-init, an init system for Docker containers で説明されているように、PID 1 のプロセスは特殊な扱いになるため、そのプロセスにシグナルハンドラーがなければ、シグナルは無視されます。
akv://<vault-name>/<secret-name> 形式の文字列を Azure Key Vault secrets で差し替えるツールを作った
akv というツールを作りました。次のように標準入力に含まれる akv://<vault-name>/<secret-name> 形式の文字列や、同形式の環境変数を Azure Key Vault secret(AWS だと parameter store に相当)の値で差し替えることができます。