CLIの認証情報を表示せずに渡す

dosyaのAPIキーを標準入力またはシークレットの環境変数から渡し、ファイルを非公開に保ちながら、認証情報をログに記録せずに失効させます。

最終確認日

スクリーンショットは英語版の画面です。

dosyaのAPIキーはdos_で始まります。シークレットをリテラルの引数として渡すと、プロセス一覧やシェルの履歴に公開されるおそれがあるため避けてください。キーをコマンドラインで直接渡すと、CLIに警告が表示されます。

4つのパネルで、キーを非公開で読み込む手順、argv以外での受け渡し、一時的なシークレットの消去、ローカルのサインアウトまたはサーバーでの失効の選択を示しています。
この図は、キーを非公開で読み込む手順、argv以外での受け渡し、一時的なシークレットの消去、ローカルのサインアウトまたはサーバーでの失効の選択を示しています。スクリーンショットを原寸大で開く。

始める前に

  • 実行時に承認済みのシークレットマネージャーからキーを取得してください。
  • 保存時は非公開のXDG_CONFIG_HOMEを使ってください。設定フォルダーは0700、ファイルは0600に保ちます。
  • config getはキーを伏せ字にします。キーを読み戻そうとするワークフローを作成しないでください。

手順

  1. シークレットを表示せずに一時的な環境変数に読み込んでください。取得時とCLIの呼び出し時はコマンドのトレースを無効にしてください。
  2. 1つのコマンドで使う場合は、そのプロセスにだけDOSYA_API_KEYをエクスポートしてください。認証情報を保存する場合は、--key -を使い、サポートされている標準入力からキーを受け取る形式にシークレットをパイプしてください。
  3. dosya whoami --jsonを実行し、目的の識別情報であることを確認してください。環境を表示せずに標準出力と標準エラー出力を取得してください。
  4. プロセスの終了直後にシェル変数を解除してください。ジョブログ、クラッシュレポート、デバッグ用ラッパーが環境を出力しないことを確認してください。
  5. そのマシンに保存された認証情報だけを削除する場合はローカルのサインアウトを使ってください。サーバーのキーも無効にする場合はlogout --revokeを使ってください。
  6. 失効の結果を確認してください。サーバーでの失効ができなかった場合は再試行できるようローカルのキーが残ります。一方、401の場合は既に使えないローカルの認証情報が消去されます。設定の出力でキーが伏せ字のままであることを確認してください。
dosya CLIの概要ページに、認証情報を表示せずに渡すためのインストール方法とコマンドのリファレンスが表示されています。
CLIの概要には「CLIの認証情報を表示せずに渡す」で使うインストール方法とコマンドのリファレンスがあります。スクリーンショットを原寸大で開く。

実行後の状態

キーをargvやログに残さずにCLIが認証され、保存されたファイルは非公開のままです。サインアウトの動作は、ローカルのみの削除かサーバーでの失効かという選択に一致します。

トラブルシューティング

CLIにリテラルのキーについて警告が表示される場合 公開された認証情報をローテーションし、標準入力または環境変数へのシークレットの注入に切り替えてください。

ネットワークエラーで失効できない場合 サーバーでの操作を再試行できるようローカルのキーは残ります。それまで設定ファイルを保護してください。

CIログに環境が出力されている場合 環境を出力する手順を削除し、キーをローテーションしてください。config getの伏せ字処理では、他のログツールの出力を無害化できません。

関連ガイド

この記事は役に立ちましたか?

評価の結果を読み込んでいます…

投票すると、回答を変更できるように、必要な投票用Cookieが最長180日間保存されます。

質問と回答

このガイドの手順について質問できます。質問は確認後に公開されます。

公開の質問には、アカウントの詳細、認証情報、非公開ファイルを含めないでください。これらについては 非公開サポート をご利用ください。

質問を読み込んでいます…

    dosyaアカウントにサインインすると、質問を投稿できます。

    やり直す前に結果を確認

    操作をもう一度確認する必要があるときは、次の共通の確認事項をご利用ください。