単一の変数をインラインで暗号化する
平文の変数と Secret 変数を組み合わせます。
「単一の変数をインラインで暗号化する」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
すべてがシークレットとは限らない
ファイル内の1つの値だけが機密で、残りは無害な場合があります。ファイル全体を暗号化するのは大げさに感じられます。🤔
1つの変数だけを暗号化する
Vaultでは1つの値だけを暗号化し、YAMLの残りの部分を読み取り可能なままにできます。これにより差分が見やすくなり、設定も確認しやすくなります。
encrypt_stringコマンド
ansible-vault encrypt_stringを使うと、1つの平文の値を暗号化されたデータに変換し、任意のvarsファイルに貼り付けられます。
ansible-vault encrypt_string 's3cr3t' --name 'db_password'出力内容
このコマンドは、値に!vaultタグを使い、その後にインデントされた暗号文ブロックを置いたYAMLキーを出力します。
db_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
39653764...varsに貼り付ける
そのブロックをgroup_varsやプレイのvarsにそのまま貼り付け、通常の平文変数のすぐ隣に配置できます。
vars:
app_user: deploy
db_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
39653764...!vaultタグ
!vaultタグはAnsibleへの合図です。この1つの値が暗号化されており、使用前に復号する必要があることを示します。
通常の変数と同じように使う
実行時には値が自動的に復号されます。平文の変数とまったく同じように、通常の{{ }}構文で参照できます。
- name: Set DB password
debug:
msg: "{{ db_password }}"コマンドラインに平文を置かない
シェルの履歴にシークレットを残すのは危険です。--stdin-nameを追加し、対話的に値を入力してください。
ansible-vault encrypt_string --stdin-name 'db_password'インライン暗号化とファイル全体の暗号化
インライン暗号化は、公開設定の中に少数のシークレットがある場合に適しています。すべてがシークレットのファイルでは、ファイル全体を暗号化する方が簡単です。
どちらも同じパスワードを使う
インライン値には、ファイル全体の暗号化と同じVaultパスワードを使うため、1回の実行につき1つのパスフレーズで両方を復号できます。
差分をレビュー可能な状態に保つ
大きな利点は、シークレットの行だけが暗号文になることです。そのため、コードレビューやgit diffで、シークレット以外の変更をすべて明確に確認できます。
クイックチェック
varsファイルの残りを読み取り可能なまま、1つの値だけを暗号化したいとします。
まとめ
encrypt_stringを使うと、1つの値を!vaultブロックに暗号化し、シークレットと平文を同じ読み取り可能なファイルに混在させられます。✨
よくある質問
「単一の変数をインラインで暗号化する」レッスンは無料ですか?
はい。「単一の変数をインラインで暗号化する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「単一の変数をインラインで暗号化する」で何を学びますか?
平文の変数と Secret 変数を組み合わせます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「単一の変数をインラインで暗号化する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。