AnsibleVaultを使用して機密性の高いPlaybookデータを保護する方法
序章
Ansible Vaultは、ユーザーがAnsibleプロジェクト内の値とデータ構造を暗号化できるようにする機能です。 これにより、Ansibleプレイを正常に実行するために必要であるが、パスワードや秘密鍵などの公開されるべきではない機密データを保護する機能が提供されます。 Ansibleは、キーが提供されると、実行時にボールトで暗号化されたコンテンツを自動的に復号化します。
このガイドでは、Ansible Vaultの使用方法を示し、その使用を簡素化するためのいくつかの推奨プラクティスを探ります。 AnsibleコントロールマシンにはUbuntu20.04サーバーを使用します。 リモートホストは必要ありません。
前提条件
従うには、sudo
権限を持つ非rootユーザーのUbuntu20.04サーバーが必要です。 Ubuntu 20.04初期サーバーセットアップガイドに従って、適切な権限を持つユーザーを作成できます。
サーバー上で、Ansibleをインストールして構成する必要があります。 Ubuntu 20.04 へのAnsibleのインストールに関するチュートリアルに従って、適切なパッケージをインストールできます。
サーバーが上記の要件で構成されている場合は、このガイドを続けてください。
Ansible Vaultとは何ですか?
Ansible Vaultは、暗号化されたコンテンツをAnsibleワークフローに透過的に組み込むことができるメカニズムです。 ansible-vault
と呼ばれるユーティリティは、ディスク上で暗号化することにより、secretsと呼ばれる機密データを保護します。 これらのシークレットを通常のAnsibleデータと統合するために、アドホックタスクと構造化プレイブックをそれぞれ実行するためのansible
コマンドとansible-playbook
コマンドの両方で、実行時にボールト暗号化コンテンツを復号化することがサポートされています。
Vaultはファイルレベルの粒度で実装されます。つまり、個々のファイルは暗号化されているか、暗号化されていないかのどちらかです。 AES256
アルゴリズムを使用して、ユーザーが指定したパスワードに合わせた対称暗号化を提供します。 これは、コンテンツの暗号化と復号化に同じパスワードが使用されることを意味します。これは、使いやすさの観点から役立ちます。 Ansibleは、プレイブックまたはタスクの実行中に見つかったボールト暗号化ファイルを識別して復号化できます。
Vaultとは何かについて少し理解できたので、Ansibleが提供するツールと既存のワークフローでVaultを使用する方法について説明します。
AnsibleVaultエディターの設定
ansible-vault
コマンドを使用する前に、お好みのテキストエディタを指定することをお勧めします。 Vaultのコマンドのいくつかは、暗号化されたファイルの内容を操作するためにエディタを開くことを含みます。 Ansibleは、EDITOR
環境変数を調べて、好みのエディターを見つけます。 これが設定されていない場合、デフォルトでvi
になります。
vi
エディターで編集したくない場合は、ご使用の環境でEDITOR
変数を設定する必要があります。
注:誤ってvi
セッションに参加した場合は、 Esc キーを押し、:q!
と入力して、[ X159X]Enter