Skip to content

Commit 94911ea

Browse files
committed
feat(secretlint): Secretlint v10.0.0リリース - デフォルトでシークレットをマスク表示、Node.js 20+サポート
1 parent 593d317 commit 94911ea

1 file changed

Lines changed: 128 additions & 0 deletions

File tree

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
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

Comments
 (0)