Vercel、環境変数を Config / Secret の2種類に再編 Sensitive は自動移行
Vercel 公式チェンジログ公式発表
Vercelセキュリティ環境変数CLIデプロイ
Vercel が環境変数の「Sensitive」トグルを廃止し、Config と Secret の2つの型に置き換えた。Secret は保存後に値を閲覧できない一方、デプロイからは参照できる。既存の Sensitive 指定は自動的に Secret へ移行され、CLI には --visibility フラグが追加された。
何が発表されたか
Vercel が、環境変数の扱いを Config / Secret の2つの型に再編したと発表した。従来の「Sensitive」トグルを置き換えるものになる。
- Config: 保存後もアクセス権を持つメンバーが値を読める。公開されても差し支えないフレームワーク用の変数などを想定
- Secret: 値はデプロイからは参照でき、置き換えも可能だが、保存後にメンバーが閲覧・取得することはできない。パスワード、API キー、トークン向け
- ダッシュボードおよび CLI で変数を追加する際に、どちらの型かを選択する
既存の変数については、これまで Sensitive を指定していたものは自動的に Secret へ変換される。利用者側の作業は不要とされている。
ポリシーとCLIの変更
- 従来の「Enforce Sensitive Environment Variables」ポリシーは非推奨となった
- 代わりに Security 設定に 「Separate Production Secret Values」 が用意された。有効にすると、Production の Secret 値が Preview / Development / カスタム環境の値と異なることを強制する
- CLI では
vercel env add/vercel env updateに--visibility configまたは--visibility secretを指定できる。従来の--sensitive/--no-sensitiveフラグも引き続き動作する
開発者への影響
- 即時の対応は不要: 既存の Sensitive 変数は自動移行されるため、放置しても壊れない。ただし、これまで Sensitive を付けていなかった秘匿値がある場合、この機会に Secret へ寄せる棚卸しはしておきたい
- 保存後に読めなくなる前提での運用: Secret にした値はダッシュボードから確認できなくなる。チーム内で「Vercel の管理画面を見れば分かる」という運用をしていた場合、別の保管場所(パスワードマネージャ等)を用意する必要がある
- スクリプトは当面そのままでよい: 旧フラグが維持されているため、CI やセットアップスクリプトを急いで書き換える必要はない。ただし新規に書くなら
--visibilityを使うのが素直になる - 本番と非本番の値の分離: 「Separate Production Secret Values」は、Preview 環境の認証情報が本番と同じになっている、という典型的な事故を設定レベルで防げる
