OpenID Connect CIBAフローを実装してみた感想

最近OpenID ConnectのCIBAフローを実装する機会があったので、その感想をメモっときます。 そもそもCIBAフローって何? authleteの川崎さんのqiitaがマジ詳しいです。 qiita.com 認可コードフローなどの通常のフローはリダイレクトでトークンのやりとりを行…

SSRF対応のgolangライブラリをつくった

SSRFそのものの解説は、最近公開されたはせがわようすけさんのスライドが詳しいので、そちらを見ていただくとして、、、 speakerdeck.com 最近では実際の攻撃事例もでてきている、ということで、ついカッとなってgolangのライブラリを作ってみました。 githu…

Security Engineering Casual Talksで喋ってきた

本日Security Engineering Casual Talks #1というイベントがあったんですが、そこでKMSの利用について喋ってきました。 内容的にはenv-injectorの利用につながるアレコレだったりするんで、個人的には目新しい内容というわけではなかったんですが、これで世…

golangの名前解決について

okzk.hatenablog.com こちらのgolangのstatic link化に関する2年前の記事なのですが、先月こんなコメントをいただきました。 golangで書いたアプリケーションのstatic link化 - okzkメモそのtagを指定するとどう動く、ってのがイマイチわかりにくい。netパッ…

env-injectorをSecrets Managerに対応させました。

AWS Secrets Managerリリースされましたね。 そんなわけでenv-injectorをSecrets Managerに対応させました。 ダウンロードはgithubのリリースページからどうぞ。 使い方は、こんなカンジでSecretが登録されている状態で $ aws secretsmanager get-secret-val…

golang 1.9.4とCGO_CFLAGS_ALLOW環境変数

golangで1.9.4のセキュリティアップデートでてます。 github.com cve.mitre.org ところがアップデートすると、cgoのCFLAG等で制限されたフラグを使ってるライブラリで以下のようなメッセージを吐いてビルドがこけるようになるケースがある模様。(´;ω;`)ブ…

MackerelでのECSのタスクのメトリクスの2018年版

id:kakku22 兄やんから「Mackerel Meetupで発表することになったぜ」と連絡をもらったのですが、そのハナシの流れで、 「コンテナのメトリクスを取るイケてるやり方をブログにしてちょ」といわれてしまったので PoCレベルで恐縮ですがエントリにまとめます。…

env-injectorを階層化パラメータに対応させた

引き続きコレの件。 github.com 最初に 前のエントリの追記で、 ENV_INJECTOR_MODE に対応とか書いてたけど、どうも git push を忘れていた模様。orz… 今回の修正で大体ユースケースカバーできそうなので、もうこのままなかったことにします(ぉ 階層化パラメ…

env-injector作るときに考えてたこと

medium.com env-injectorが「問題がある」って言われてもうた。ツライ…… というわけで言い訳エントリです。見苦しいですね。 env-injectorの作成時、空の環境変数を作らずに「DescribeParameterでパラメータ一覧ぶっこ抜いてprefixにマッチするものをinject…

AWS上で動かすアプリケーションとクレデンシャル情報

AWSで動かすアプリケーションのクレデンシャル情報ってどう管理してますか? chefやansibleでプロビジョニングしたりするにしても、平文でgit管理するのもアレだし、暗号化してコミットするのも結局扱いにくいし……と悩ましいですよね? そんな中、こちらのク…

nohupなncでのtarなファイル転送

TB級のデータ転送のように、scpがかったるくてやってられない場合にncでファイル転送をしようというケースありますよね? そんなケースでは当然相当時間がかかるんで、途中で死なないようにnohupをつけたい、と思うわけで。 んで、そのままnohupつけると動か…

MackerelとECSのダイナミックポートマッピング

当方、現在の担当業務的にMackerelを両手で数えられるくらいのサーバにしか導入しておらず、しかも初期に設定をしたあとは絶賛放置中という超ライトユーザなのですが、先日なんの因果か他部署の方から「ECRのダイナミックポートマッピングしているときのコン…

Symantecの証明書問題私的まとめ

Symantecの証明書でアレコレざわついているので、自分用にまとめます。 経緯等 以下にまとまっていまるので省略。 notchained.hatenablog.com 何がおこるか? https://github.com/sleevi/explainer/blob/master/README.md ざっくりまとめると以下の2点 該当…

docker swarmのオーバーレイネットワークの安定性について

半年くらい前にこんな記事を書いたのですが、まあうまく行きませんでした。 okzk.hatenablog.com 頂いたブコメも試してみたんですけど、結果は芳しくなく。。。 Re: Dockerに載せたサービスをホットデプロイする - okzkメモ--stop-grace-periodの設定とDocke…

ubuntu 16.04でcloud-initでapt-get upgradeできない件

最近ubuntu 16.04を使い始めたんですけど、簡易プロビジョニングということで、 cloud-initのuser_dataのスクリプトで以下のようにパッケージの更新をしかけていました。 apt-get update apt-get upgrade -y # 他、アレコレと…… ところが先週くらいから、コ…

続、workerパターンをcontext化してみたら……

みなさん「みんなのGo言語」は予約ポチりましたか? 私はポチりました! そんな「みんなのGo言語」の著者の一人であるid:lestrrat さんからの前エントリに対してマサカリが飛んできてます。 workerパターンをcontext化してみたら…… - okzkメモ[golang] conte…

workerパターンをcontext化してみたら……

はい、というわけで、前記事のworkerパターンをcontextつかったらどーなるか、についてです。 前の記事や、その元記事のソースを読んでいる前提ですので、未読の方はそちらの確認からお願いします。 さて、ざっくりとした変更の方針ですけど、以下の2点です…

Re: golang の channel を使って Dispatcher-Worker を作り goroutine 爆発させないようにする

こちらを読みました。 blog.kaneshin.co channel自体にdispatch機構があるからもっとシンプルに書けるのでは?と思って書き直したのがこちら。 コードだけぶん投げてもアレなので、あとで解説書きます。 ついでに「go1.7で標準化されたcontext使ったらどうな…

Re: Dockerに載せたサービスをホットデプロイする

こちらを拝見したところ、やりたいコトはdocker1.12のswarmモードで解決するんじゃないかなー、と思ってみたので試してみたテスト。 h3poteto.hatenablog.com とりあえず、最新版のdocker(1.12)をインストールです。 手元の環境はCentOS7なので、インストー…

golangのGCとかgoroutineの状況を確認するライブラリ

golangで作った長時間動かすアプリで「goroutineリークやメモリリークがないか知りたい」とか「GCの影響がどの程度か知りたい」とかないですか?ありますよね? そのためのログをダラダラ出力するためのライブラリを公開しました。 # 元々はクローズドなトコ…

marisa-trieのgo bindingを書いた

id:s-yataさんが公開してくださっているmarisa-trieをgolangで使えるようなバインディングを公開しました。 github.com marisa-trieは非常に省メモリなtrie実装です。 特徴等は公式ドキュメントを参照してください。 インストールも普通にgo getするだけでOK…

golangで書いたアプリケーションをどう動かすか?

まとまりなく、何パターンか列挙します。 アプリケーションコンテナで動かす 通常ステートレスなアプリに限られると思いますけど、dockerで動かすというやり方です。 # 個人的にはdocker 1.12で組み込まれたswarmモードがすごくお手軽でよいと最近思ってます…

golangで書いたアプリケーションのstatic link化

「goで書いたアプリケーションは実行ファイルひとつコピーするだけでいいのでインスコ超ラクチン」なんて思ってたんですが、 go1.4からnetパッケージを使っているアプリケーションは、フツーにビルドするとdynamic linkになるようになってました。 $ cd /pat…

Goでスケールする実装を書く、を読んで

コチラの記事の感想というかなんというか、です。 Goでスケールする実装を書く - GolangRdyJp なんつーか、概ね伝えたいコトは同意できるんですけど、用語の誤用っぽいモノがあってスッとアタマに入ってこないのです。 # ワタシの解説がアヤシイ場合は是非コ…

golangのチャンネルでセマフォ的なナニカ

mattnさんのエントリに触発されて、某所で使用したちょっと変わったgolangのチャンネルの使い方をご紹介します。 mattn.kaoriya.net 特定の処理の並列度をある程度までに抑えたい、みたいなコトありますよね? 例えばCPUヘビーな処理の並列数をたかだかコア…

某記事のフォロー

会社でかいた記事のはてブのツッコミのフォローをゆるゆる書いてみるテスト 記事中取り消し線多くてゴメンナサイ。 理解が乏しく恐縮なのですがこれは、CSSスプライトみたいなことをアーカイブファイルとインデックスファイルで実現した、という理解でよろし…

golangのよくあるtickerのサンプルがイケてない件

golangでのtickerのサンプルで以下のようにgoroutine内でrangeを使ってforループを回すのをよく見かけます。 package main import "time" import "fmt" func main() { ticker := time.NewTicker(10 * time.Millisecond) go func() { for t := range ticker.C…

MySQLのコールドバックアップから別slave作ってハマった件

以下の手順でハマった。対象のバージョンは5.6.27 あるslaveでMySQLを停止してコールドバックアップをとって起動 バックアップをコピって別サーバでslaveを構築 MySQL起動したら、 元サーバ のio_runningが停止。 原因はauto.cnfを消してなかったのでserver_…

MySQLのTransportable Tablespacesのおはなし

今更感あるけど、以下の補足。 kakerukaeru.hatenablog.com なお、対象のMySQLのバージョンは5.6.26と5.6.27です。 といってもオペレーション自体は特記することもなくて、以下のページをよく読んでそのままやればダイジョウブです。カンタンカンタン。 http…

Rubyから(ry → はやい

qiita.com mattn.kaoriya.net primenumber.hatenadiary.jp 2年以上放置していたけど、なんかフィボナッチ数の計算を高速化するのが流行ってると聞いて(違 フィボナッチ数が64bitで表現できる場合に限ると、以下がO(1)でほぼ最速だと思う。 FIB = [0, 1, 1, 2…