Kubernetes Secretのデコード
Kubernetes Secret Decoder
Secretマニフェストの中のBase64値をすべて復号し、書き換えたものを適用できる形に符号化し直します。
KubernetesのSecretのマニフェストを開き、Base64の値をすべて復号して読めるようにし、どれでも編集でき、値を符号化し直したマニフェストを組み立て直します。すべてタブの中で動きます。Secretこそ、復号のためにサーバーへ送ってはいけないものです。
Secret マニフェスト
secret.yaml を置く
このタブの中で読みます。アップロードしません。
すべてこのタブの中で動きます。どこにも送らず、保存もしません。
値 4個
usernameYWRtaW4=
passwordc3VwZXItc2VjcmV0LXBhc3N3b3Jk
DATABASE_URLcG9zdGdyZXM6Ly9hZG1pbjpzdXBlci1zZWNyZXQtcGFzc3dvcmRAZGI6NTQzMi9hcHA=
NOT_ENCODEDstringData — Base64 ではありませんdGhpcyBvbmUgaXMgcGxhaW4gdGV4dA==
符号化し直したマニフェスト
上で値を直すとここが変わります。`stringData` の項目は Base64 にして `data` にまとめます。`kubectl apply` も結局そうします。
使い方
マニフェストを貼り付けます
`kubectl get secret 名前 -o yaml`の出力でも、リポジトリの中のファイルでも構いません。`data`と`stringData`のどちらも読みます。
値を読みます
キーごとに復号された値が出て、その下にBase64が並びます。`stringData`の項目には印が付きます。そもそも符号化されたことのない値だからです。
編集して、組み立て直されたマニフェストを持っていきます
値を変えると、下のマニフェストが更新されます。`stringData`の項目はBase64になって`data`にまとめられます。`kubectl apply`も、通すときにまさにそうします。
よくある質問
KubernetesのSecretは何かを暗号化していますか
それ自体は何も暗号化していません。Base64は符号化なので、マニフェストを読める人は値も読めます。Secretを守っているのは、クラスタのRBACとetcdでの保存時の暗号化で、どちらもYAMLには見えません。
ある値がエラーとして出るのはなぜですか
正しいBase64ではないからです。たいていはマニフェストを手で書き換えたか、その値が`stringData`に置かれるべき場合です。Kubernetesもこのマニフェストを拒否します。
本番のSecretをここに貼り付けても大丈夫ですか
どこへも送りませんし、保存もしません。復号はブラウザの中で行われます。ただし値が画面に出るので、画面共有やブラウザの履歴についての普段どおりの注意は、そのまま当てはまります。
ここから渡せます
YAMLフォーマッター・検証
YAML Formatter & Validator
YAMLのインデントを揃えて検証し、パーサを壊すタブやアンカーの誤りに印を付けます。
cron式の組み立て
Cron Builder
cron式を、許容範囲が添えられた入力欄にフィールドごとに打ち込んで組み立て、変えるたびに出来上がるスケジュールを見せます。
docker runをComposeに
docker run to Compose
docker runのコマンドラインをcomposeのサービス定義に直し、逆方向の変換もできます。
.envの解析・変換
.env Parser & Converter
.envファイルを解析して、JSON・YAML・シェルのexport・Docker・Kubernetesの形式に変換します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
.envの解析・変換
.env Parser & Converter
.envファイルを解析して、JSON・YAML・シェルのexport・Docker・Kubernetesの形式に変換します。
シークレット混入スキャン
Secret Scanner
貼り付けたコード・ログ・設定から、APIキー・トークン・秘密鍵をエントロピーの目安で洗い出します。
YAMLフォーマッター・検証
YAML Formatter & Validator
YAMLのインデントを揃えて検証し、パーサを壊すタブやアンカーの誤りに印を付けます。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。
文字列のハッシュ
Text Hash
文字列のMD5・SHA-1・SHA-256・SHA-384・SHA-512・CRC-32を計算し、大文字表記とBase64での出力も選べます。