開発者ツール · Docker run から Docker compose コンバーター
Compose ファイルには秘密が含まれます: パスワードを環境ブロックに入れないでください
· なぜそれが重要なのか
ドッカー 作成 の秘密
-e DB_PASSWORD=... を指定した docker run コマンドは、プレーン テキストで同じパスワードを持つ YAML ファイルになります。この投稿では、なぜそれが重要なのか、シークレットを外部に移動する方法、および変換自体がマシンから離れるべきではない理由について説明します。
パスワードは差分にあります - 変換された Compose ファイルは、そのままコピーされた -e 値でプッシュされようとしています
パスワードは diff にあります。変換された Compose ファイルは、そのままコピーされた -e 値でプッシュされようとしています。証拠: リテラルの -e パスワードは、環境出力にそのまま表示されます。使い捨てリテラルを使用してシークレットの配置を再現します。各ソースのオカレンスをリテラル変数およびブラウザ処理と組み合わせます。宛先レビュー用に認証情報のストレージとファイルを予約します。
機密インシデントは、この変換ライブラリ自体がローカルの文字列処理のみを実行するという別の機密インシデントの境界も明らかにしています。証拠: この変換ライブラリ自体はローカル文字列処理のみを実行します。このシークレット配置制約は停止点です。製造動作を行わずにリテラル変数とブラウザ処理を検査し、資格情報ストレージとファイルのホスト チェックを文書化します。
Compose ファイルに含まれる内容 — パスワード、トークン、内部ホスト名、インフラストラクチャを記述するパス
Compose ファイルに含まれる内容 - パスワード、トークン、内部ホスト名、インフラストラクチャを記述するパス。証拠: マウントされたホスト名ネットワークとイメージ参照によりインフラストラクチャが開示される可能性があります。シークレット配置トークンをリテラル変数とブラウザー処理にトレースします。順序付けされた値を最終値フィールドから分離します。認証情報のストレージとファイルはコレクションの外にあります。
関連するシークレット メカニズムの境界は、別のシークレット文法境界は、env_file 参照は発行されますが、発行されないことです。証拠: env_file 参照は出力されますが、出力されません。このシークレット配置ファクトを使用して、リテラル変数およびブラウザー処理の 1 つのメンバーまたはスカラーを予測します。認証情報のストレージとファイルについて決定を下す前に、警告を確認してください。
リモート コンバータは、貼り付けられた値を公開する可能性があります。このリポジトリは、独自のローカル変換パスのみを証明します
オンライン コンバーターがリスクである理由 — サーバーに投稿するフォームに Docker run を貼り付けると、その中のすべてのシークレットがサードパーティに送信されます。証拠: コマンド テキストをリモートから送信すると、含まれるすべての値が公開されてしまいます。リモートコンバータは貼り付けられた値を公開する可能性があります。このリポジトリは、独自のローカル変換パスのみを証明します。秘密配置シリアル化をそのモデルから判断します。リテラル変数での引用符とブラウザー処理は型を保護しますが、資格情報のストレージとファイルの動作証明は提供しません。
2 番目のシークレット シリアル化の監視は、このシークレット セクションに対して保持されます。このシークレット セクションの元のコマンドと、このシークレット セクションの横にある警告が表示されます。シークレットのシリアル化結果が、このシークレット セクションのコンフィギュレーションで表されるものと、このシークレット セクションの欠如したコンテキストから分離される候補ファイルです。イメージ メタデータは、シークレットのシリアル化変換の範囲外です。証拠: リポジトリは、より広範な実行時または歴史的な証拠を提供しません。このシークレット配置出力は、設定を使用できないコンテキストから分離します。リテラル変数とブラウザ処理をレビュー可能な状態に保ち、資格情報のストレージとファイルを個別にチェックします。
ToolAcre の変換ライブラリはリクエストを実行しませんが、周囲のページは公開されているサイト リソースを読み込むことができます。
ToolAcre のコンバーターの動作 — 変換はブラウザーで実行され、何もアップロードされず、ネットワーク パネルに表示されます。証拠: この変換ライブラリ自体はローカル文字列処理のみを実行します。 ToolAcre の変換ライブラリはリクエストを実行しませんが、周囲のページは公開されているサイト リソースを読み込むことができます。推測するのではなく、シークレットの配置の例外で停止してください。リテラル変数やブラウザ処理に近い追加には、資格情報のストレージとファイルに関連付けられた展開固有の理由が必要です。
もう 1 つのシークレット例外制約は、このシークレット セクションについては、このシークレット セクションのコマンドと警告のオリジナルをこの候補ファイルの横に保持することです。元のシークレット配置コマンドは警告の横に保管してください。この比較により、リテラル変数とブラウザ処理にどのようなものが含まれるか、またどの資格情報ストレージとファイルの決定が手動のままであるかがわかります。
ファイルからシークレットを移動する — git で無視された .env、env_file、およびファイルベースのシークレットからの ${VAR} 補間: それらをサポートするイメージの場合
シークレットをファイルから移動する - git 無視の .env、env_file、およびファイルベースのシークレットからの ${VAR} 補間: それらをサポートするイメージの場合。合成名からシークレット配置の例を構築します。本番認証情報のストレージやファイルの詳細を公開することなく、すべてのリテラル変数とブラウザ処理項目を追跡可能にします。
同じシークレットの例のサンプルは、別のシークレットの例の境界は、ローカル変換によって平文が安全になることなく 1 つの転送パスを削除することを示しています。証拠: ローカル変換では、平文を安全にすることなく 1 つの転送パスが削除されます。ペアになったシークレット配置ファクトは、リテラル変数とブラウザー処理で表示される必要があります。その行を記録し、資格情報のストレージとファイルに関する思い込みを避けます。
作業例: MariaDB コマンドの変換 — シークレットを含む生の YAML と、.env および .gitignore を含むクリーンなバージョン
動作した例: MariaDB コマンドの変換 — シークレットを含む生の YAML と、.env および .gitignore を含むクリーンなバージョン。証拠: 教育パスワードは保存する前に手動で置き換える必要があります。シークレットの配置の結果を 1 つの観察可能なリテラル変数とブラウザーの処理の違いに変換します。 Docker は、後の認証情報ストレージとファイルの判定を所有します。
シークレットの結果の実装では、別のシークレットの効果境界として、リテラルの -e パスワードが環境出力にそのまま表示されることも示されています。シークレットの配置責任を分割します。変換はリテラル変数とブラウザー処理を書き込み、リポジトリはシークレットを削除し、オペレーターは資格情報のストレージとファイルを検証します。
これでカバーされないもの — シークレット マネージャー、暗号化されたリポジトリ、ランタイム インジェクション (プラットフォームによって異なります)
これでカバーされないもの — シークレット マネージャー、暗号化されたリポジトリ、ランタイム インジェクションはプラットフォームによって異なります。証拠: シークレット マネージャーと暗号化配信はプラットフォームによって異なります。シークレットの配置範囲を、ここに示すリテラル変数とブラウザー処理ブランチに制限します。隣接するフォームとデフォルトは、資格情報のストレージとファイルの質問に答えることができません。
もう 1 つのシークレット スコープ制限は、別のシークレット制限境界に続き、マウントされたホスト名ネットワークとイメージ参照によってインフラストラクチャが公開される可能性があります。このシークレット配置境界を除外として扱います。認証情報のストレージとファイルに関する推測よりも、正確なリテラル変数とブラウザー処理を優先します。
要点: ローカルで変換してからシークレットを外部化する — コンバーターは公開されることなく YAML を提供します
要点: ローカルで変換してから秘密を外部化します。コンバーターは公開されることなく YAML を提供します。ソース オプション、モデル フィールド、リテラル変数、ブラウザーの処理行および警告としてのシークレットの配置を監査します。資格情報のストレージとファイルを確認する前に、シークレットを削除してください。
最後に、秘密の情報源は、コマンド テキストをリモートで送信すると、含まれるすべての値が公開されることになることを秘密の決定境界として確認しています。証拠: コマンド テキストをリモートから送信すると、含まれるすべての値が公開されてしまいます。シークレットの配置を狭くする: リテラル変数とブラウザー処理が候補です。資格情報のストレージ、ファイル、およびシェルの同等性は保証されません。