Skip to content

Local Scan — 予定仕様

Local Scan は、いつもの Google Cloud 資格情報を使い、現在見える範囲を 1 コマンドで診断する送信なしの入口です。請求データの接続は不要で、構成情報と静的価格表から金額を概算します。

この機能はまだ利用できません。このページは、実装時に満たす予定仕様を記録しています。

1 行のインストールと、1 回の同意

sh
curl -fsSL https://ncost.sh | sh

インストールと初回診断の間には、必ず利用者の同意を挟みます。制御端末(TTY)がある場合は端末から同意を取得します。CI など端末がない環境ではインストールだけで終了し、次に実行するコマンドを表示します。明示的な同意なしにクラウド API を読み始めません。

認証と診断範囲

  • Application Default Credentials(ADC)があればそれを使い、なければ通常の gcloud ログイン資格情報を使う
  • どちらも見つからない場合は gcloud auth login を案内し、診断せず終了する
  • 既定は現在の gcloud プロジェクト一つ。--all-projects を指定した場合だけ、見える範囲へ広げる
  • 読み取り専用の list 系 API だけを使い、リソースを作成・変更・削除しない
  • 権限不足は、理由と必要な権限を表示する

出力とデータの扱い

  • 構成情報と同梱の静的価格表から概算する
  • 概算額には常に ~ を付け、請求データによる実測と混ぜない
  • 診断結果・請求データ・ソースコード・テレメトリを Ncost へ送信しない
  • 診断の最後に、データを送信していないことを表示する
text
❯ ncost scan
reading acme-prod with your gcloud permissions · read-only

✓ compute        41 resources
✓ disks          18 resources · 1 candidate
⚑ monitoring     権限不足 — roles/monitoring.viewer が必要

改善候補 · 根拠あり
▍ unattached disk  analytics-cache-2   no instance    ~$84/mo

potential savings (estimated, not your bill)          ~$84/mo

※ 出力は設計中の例示です。金額・リソース名は実在のデータではありません。

配布物を実行する前の検証

インストーラは固定パスで配布し、公開した checksum と取得内容を照合します。スクリプト全体を関数内で実行し、取得したバイナリの署名を検証してから配置します。検証に失敗した場合は実行せず終了します。

完了条件

Local Scan の提供開始には、少なくとも次を満たす必要があります。

  • 明示的な同意前には、クラウド API を読まない
  • 利用できる資格情報がなければ、ログイン手順を案内して診断せず終了する
  • 指定がなければ、一つのプロジェクトだけを診断する
  • クラウドリソースを書き換えない
  • 診断データとテレメトリを外部へ送信しない
  • checksum と署名の検証に成功した配布物だけを配置する

料金とデータの扱いは料金セキュリティを、提供時期はロードマップを参照してください。