ブックマーク / zenn.dev/mizutani (4)

  • OPA/Regoによる汎用的なGo言語の静的解析

    TL; DR Go言語は様々な静的解析ツールがあるが、独自ルールのチェックなどをするには都度ツールを自作する必要がある 1つのツールでより汎用的なチェックができるように、汎用ポリシー言語のRegoGo言語のAST(抽象構文木)を検査できるようにした 「第一引数に必ずcontext.Contextをとる」というルールをCIでチェックした様子 背景 Go言語では様々な静的解析ツールが提供されており、一般的なベストプラクティスが正しく記述されているか?については既存の静的解析ツールを利用することで概ね必要なチェックをすることができます。例えばセキュアなGoのコーディングをするためのツールとして gosec などがあり、自分も愛用させてもらっています。しかし、ソフトウェア開発におけるコーディング上のルールはベストプラクティスによるものだけでなく、そのソフトウェアやチームに依存したルールというのも

    OPA/Regoによる汎用的なGo言語の静的解析
    toshikish
    toshikish 2022/09/13
  • 手元の環境変数をいい感じに管理するzenv

    というのを作りました。 モチベーション The Twelve Factor App の設定でも推奨されている通り、昨今のCommand Line Interface (CLI) で利用するアプリケーションやCLIでの開発では環境変数を多用します。これによって多くの環境変数を扱ったり、環境変数に秘匿値を扱ったり、文字数の多い環境変数を扱ったり、という機会も増えました。 環境変数を使うためにはシェルに設定したり、昔ながらの env コマンドを使ったり、dotenvを使ったり、秘匿値を扱うenvchainなどといった便利なツールが用意されています。しかし、 それぞれを個別に使えるよりは統合的に環境変数を管理したい さらに高度な環境変数の設定機能を使いたい という2つの観点から新しいツールを実装しました。 基的な使い方 zenvの機能は大きく分けると、 CLI上で環境変数を設定 .env ファイ

    手元の環境変数をいい感じに管理するzenv
    toshikish
    toshikish 2022/03/28
  • OPA/Rego入門

    情報セキュリティの分野で注目されている汎用的なポリシーエンジンOPAと、OPAで利用するポリシー記述言語Regoについて解説します

    OPA/Rego入門
    toshikish
    toshikish 2022/01/02
  • Goでセキュアにロギングするzlog

    TL; DR Goで秘匿値をログに出力しないようにする zlog というロガーを作りました。 以下、経緯や使い方の説明です。 背景:サーバーサイドにおけるロギングと秘匿値の問題 Webサービスを含む多くのサーバーサイドのサービスでは、サービスの挙動に関するログを出力・記録しておくのが一般的です。継続的にログを出力しておくことで、トラブルシューティングやデバッグ、セキュリティインシデントの対応や監査、性能改善の手がかりなどに活用することができます。ログに含まれる情報が多いほど問題を解決するための手がかりが増えるため、(限度はあるものの)なるべく多くの情報を掲載する、あるいは設定によって情報量を増やせるようにしておくと便利です。 しかし一方で、サーバーサイドで出力するのは望ましくない情報もあります。 認証に利用される情報:パスワード、APIトークン、セッショントークンなど、それを使うことで別の

    Goでセキュアにロギングするzlog
    toshikish
    toshikish 2021/11/01
  • 1