|
| 1 | +--- |
| 2 | +title: "Secretlint v10.0.0リリース: デフォルトでシークレットをマスク表示するように変更、Node.js 20+のサポート" |
| 3 | +author: azu |
| 4 | +layout: post |
| 5 | +date : 2025-06-15T12:00 |
| 6 | +category: secretlint |
| 7 | +tags: |
| 8 | + - secretlint |
| 9 | + - security |
| 10 | + - nodejs |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +機密情報をLintできるSecretlintのv10.0.0をリリースしました! |
| 15 | + |
| 16 | +- [Release v10.0.0 · secretlint/secretlint](https://github.com/secretlint/secretlint/releases/tag/v10.0.0) |
| 17 | + |
| 18 | +このバージョンでは、デフォルトでLintの結果のシークレットをマスクして表示するように変更されました。 |
| 19 | + |
| 20 | +## Secretlint v10.0.0の変更点 |
| 21 | + |
| 22 | +主要な変更点は次の通りです。詳細はリリースノートを参照してください。 |
| 23 | + |
| 24 | +- [Release v10.0.0 · secretlint/secretlint](https://github.com/secretlint/secretlint/releases/tag/v10.0.0) |
| 25 | + |
| 26 | +### 🛡️ シークレットのマスク表示がデフォルトに |
| 27 | + |
| 28 | +最も大きな変更は、見つけたシークレットをデフォルトでマスクして表示するようになったことです。 |
| 29 | + |
| 30 | +**変更前:** |
| 31 | + |
| 32 | +<!-- secretlint-disable --> |
| 33 | +``` |
| 34 | +✖ found credential: github_token |
| 35 | + GITHUB_TOKEN=ghp_1234567890abcdef1234567890abcdef12345678 |
| 36 | +``` |
| 37 | + |
| 38 | +**変更後(v10.0.0):** |
| 39 | +``` |
| 40 | +✖ found credential: github_token |
| 41 | + GITHUB_TOKEN=******************************************* |
| 42 | +``` |
| 43 | + |
| 44 | +#### 実際のシークレット値を確認したい場合 |
| 45 | + |
| 46 | +デバッグなどで実際のシークレット値を確認したい場合は、`--no-maskSecrets` オプションを使用できます。 |
| 47 | + |
| 48 | +```bash |
| 49 | +# デフォルト(マスク表示) |
| 50 | +$ secretlint "**/*" |
| 51 | + |
| 52 | +~/secretlint/secretlint/examples/cli/credential |
| 53 | + 1:0 error [AWSSecretAccessKey] found AWS Secret Access Key: **************************************** @secretlint/secretlint-rule-preset-recommend > @secretlint/secretlint-rule-aws |
| 54 | + |
| 55 | +✖ 1 problems (1 errors, 0 warnings) |
| 56 | + |
| 57 | +# 実際のシークレット値を表示 |
| 58 | +$ secretlint --no-maskSecrets "**/*" |
| 59 | + |
| 60 | +~/secretlint/secretlint/examples/cli/credential |
| 61 | + 1:0 error [AWSSecretAccessKey] found AWS Secret Access Key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYSECRETSKEY @secretlint/secretlint-rule-preset-recommend > @secretlint/secretlint-rule-aws |
| 62 | + |
| 63 | +✖ 1 problems (1 errors, 0 warnings) |
| 64 | +``` |
| 65 | + |
| 66 | +<!-- secretlint-enable --> |
| 67 | + |
| 68 | +### 🚨 Node.js 20+サポートへの変更 |
| 69 | + |
| 70 | +Node.js 18のサポートを終了し、Node.js 20以上が必要になりました。 |
| 71 | + |
| 72 | +## 移行ガイド |
| 73 | + |
| 74 | +### Node.jsバージョンの更新 |
| 75 | + |
| 76 | +Secretlint v10.0.0を使用するには、Node.js 20.0.0以上が必要です。 |
| 77 | + |
| 78 | +```bash |
| 79 | +# Node.jsバージョンの確認 |
| 80 | +node --version # v20.0.0以上である必要があります |
| 81 | + |
| 82 | +# 必要に応じてNode.jsをアップデート |
| 83 | +``` |
| 84 | + |
| 85 | +### CI/CDでの設定更新 |
| 86 | + |
| 87 | +GitHub ActionsなどのCI/CDでSecretlintを使用している場合は、Node.jsバージョンを更新してください。 |
| 88 | + |
| 89 | +```yaml |
| 90 | +- uses: actions/setup-node@v4 |
| 91 | + with: |
| 92 | + node-version: 22 |
| 93 | +``` |
| 94 | +
|
| 95 | +### マスク表示への対応 |
| 96 | +
|
| 97 | +新しいデフォルトのマスク表示では、次の情報は引き続き表示されます。 |
| 98 | +
|
| 99 | +- ファイルパスと行番号 |
| 100 | +- ルール名 |
| 101 | +- エラーメッセージ |
| 102 | +
|
| 103 | +実際のシークレット値のみがマスクされるため、デバッグに必要な情報は保持されています。 |
| 104 | +
|
| 105 | +実際の値を確認する必要がある場合は、`--no-maskSecrets`オプションを使用してください。 |
| 106 | + |
| 107 | +## なぜデフォルトでマスクするように変更したかについて |
| 108 | + |
| 109 | +最近の開発環境では、次のような状況が増えています。 |
| 110 | + |
| 111 | +- AIツール: GitHub Copilot、Cursor、Claude CodeなどのAIツールがターミナル出力を解析する |
| 112 | + - シークレットの場所は出るので本質的には変わらないが、標準出力を読み取るツールが増えている |
| 113 | +- クラウドCI/CD: CI/CDに外部サービスを利用するのが一般的なので、意図せずに長期間シークレットがログに残る |
| 114 | +- 画面共有: デモや会議でターミナルを共有する機会が増え、意図せずシークレットが表示される |
| 115 | + |
| 116 | +見つかったシークレットはローテーションする必要があるので、本質的な問題は特に変わりません。 |
| 117 | +しかし、シークレットが外部に渡るケースが増えているので、デフォルトの動作を変更しました。 |
| 118 | + |
| 119 | +Secretlint v10.0.0では、この問題を解決するためにデフォルトでマスク表示を行うようにして、デフォルトを安全に倒しました。 |
| 120 | + |
| 121 | +## まとめ |
| 122 | + |
| 123 | +Secretlint v10.0.0は、デフォルトで結果をマスク表示するように変更しました。 |
| 124 | +ツールの使われ方の変化しているので、デフォルトを安全に倒すようにしました。 |
| 125 | + |
| 126 | +フィードバックがありましたら、GitHubのIssueでお知らせください。 |
| 127 | + |
| 128 | +- [Issues · secretlint/secretlint](https://github.com/secretlint/secretlint/issues) |
0 commit comments