S3 暗号化が SSE-S3 のみで SSE-KMS 未使用だと、何が『できていない』のか
監査ドキュメントに「S3 は SSE-S3 で at-rest 暗号化されています」と書く。それは事実として正しいが、「SSE-KMS は未使用」という事実が同時に意味する できていないこと を説明できないと、報告書として不十分だ。 「暗号化済み」と「鍵管理が統制されている」は別物。ここを言語化しておく。 前提:S3 の at-rest 暗号化方式 方式 ...
監査ドキュメントに「S3 は SSE-S3 で at-rest 暗号化されています」と書く。それは事実として正しいが、「SSE-KMS は未使用」という事実が同時に意味する できていないこと を説明できないと、報告書として不十分だ。 「暗号化済み」と「鍵管理が統制されている」は別物。ここを言語化しておく。 前提:S3 の at-rest 暗号化方式 方式 ...
監査ドキュメントで「暗号化されている」と書く前に、何が暗号化されていて、何が守れているのかを正確に説明できるか。曖昧なまま書くとあとで読み返したときに自分で意味を取り直せなくなる。整理しておく。 at-rest と in-transit 区分 何の暗号化か 守れるシナリオ at-rest ...
「早さは信頼」とは 参考: 早さは信頼 返信・対応の速さは、言葉より強力な信頼構築の手段になる。これは感覚的に知っていても、意識的に実践している人が少ないテーマだ。 速く返すことは、それ自体が非言語メッセージとして機能する。「あなたのことを優先している」という意思表示になる。逆に、遅いことは「あなたの問題は私の優先度が低い」というシグナルになってしまう。 返信が遅い ≠ 丁寧...
Rubyコードが実行されるまでの流れと、CRubyを構成するコンポーネントを整理する。 実行フロー全体像 Rubyコード ↓ Lrama(パーサー) AST(抽象構文木) ↓ コンパイラ バイトコード ↓ YARV(VM) CPU命令 ※ GCはYARV実行中に並走してメモリを管理 ruby hoge.rb を叩いた瞬間に上から順番に走る。 各コンポーネン...
Web アプリの認証方式として代表的な「セッション認証」と「JWT 認証」の違いをまとめる。 セッション認証(従来方式) クライアント: cookie に session_id を保持 サーバー: session_id → DB/Redis で検索 → ユーザー情報取得 サーバーが状態を持つ(ステートフル) session_id は意味のないランダム文字列。本体はサ...
カケハシのテックブログ「誰かがやるだろう」をやめた1年間の記録を読んで、取り組みの中身よりその取り組みが成立した前提環境が気になったので整理する。 記事の取り組みサマリー 記事では以下の改善が紹介されている。 取り組み 成果 レポート機能テンプレート化 実装工数 半日 → 1時間 ...
AWS WAF の scope-down statement で Content-Type: multipart/form-data をマッチさせる際、text_transformation に LOWERCASE を使うべきか NONE のままでよいかを調査した。 結論 ブラウザからのファイルアップロードが対象であれば NONE(大文字小文字を区別する)で問題ない。 さらに、WAF の...
ESP8266 で CO2 モニターを作っていたが、I2C 通信が不安定で悩んでいた。調べたことをまとめておく。 ESP8266 の I2C が不安定になる原因 しばらく動いていると CO2 センサーや BMP280 からエラーが返ってくる症状。考えられる原因は以下。 原因 説明 プルアップ抵抗の問題...
Ubuntu の apt でインストールした gh は古いバージョン(例: 2.45.0)のままになりがちで、gh pr edit が Projects Classic の deprecation エラーで失敗することがある。GitHub CLI 公式リポジトリを追加することで最新版に更新できる。 手順 # 1. GPG キーを追加 curl -fsSL https://cli.gith...
現象 ユーザーが PDF ファイルをアップロードすると「問題が発生しました」エラーが表示される。別のファイルは正常にアップロードでき、時間をおいても解消しない。サポート担当が同じファイルをアップロードすると成功する場合もある。 調査 S3 に保存されている WAF ログを確認すると、該当リクエストが BLOCK されていた。 { "action": "BLOCK", "ter...
Rails 8でデフォルトのジョブバックエンドがSolid Queueになった。長年Sidekiqがデファクトスタンダードだったが、今後の新規プロジェクトではSolid Queueが標準になりつつある。 Sidekiq → Solid Queue の最大の動機: Redis不要 バックエンド 依存 特徴 ...
AWSアカウント分離でstaging環境を別アカウントに移す際、サブドメイン(例: stg.example.com)のDNS管理をどう扱うかで設計の複雑さが大きく変わる。 問題: 親ゾーンが本番アカウントにある example.com のRoute53ホステッドゾーンが本番アカウントに存在する場合、staging用のDNSレコードを追加するたびに本番アカウントを操作することになる。 N...
TL;DR Homebrew で個別にインストールした pyenv, rbenv, nodenv, goenv, tfenv を anyenv に統合する。シェル設定がスッキリし、brew upgrade による依存関係破壊(expat 問題など)も回避できる。 背景: なぜ anyenv に移行するのか Homebrew の brew upgrade で Python が壊れた。原因...
現象 CloudWatch Logs のログ配信チェックで、nginx の access.log が数日間 0 bytes のままだった。実際にはアクセスがあるのにログが記録されていない状態。 調査 lsof で nginx のファイルディスクリプタを確認すると、access.log ではなくローテート済みの access.log.1 を掴んでいた。 $ sudo lsof -p $...
「エンジニアみんなでスカウトメール打ちましょう」をやって、成果ゼロだった経験がある。なぜ失敗したのか、構造的に整理する。 スカウトを打っても返信が来ない理由 候補者の行動を考えると明確になる。 スカウトが届く 「どんな会社だろう」と調べる テックブログもない、エンジニアの発信もない、中が見えない 「よく分からないから返信しない」 スカウトの数を増やしても、着地先(...