現在、クラウドプロバイダのアクセスキーやIDなどの秘密情報を管理することは、Terraformプロジェクトでは未解決の問題です(github issue参照)。 terraform plan
またはterraform apply
を実行するたびに、これらの秘密はテラフォーム状態ファイルに平文で保存されます。 terrahelpのような第三者による編集や暗号化スクリプトが数多くあります。Vaultを使用して領事館に保存されたリモートTerraformの状態を暗号化
私の質問:領事館はリモートテラフォームの状態を保存するためのネイティブバックエンドです。 Vaultを使用して領事館に保存されている状態ファイルを暗号化することはできますか?私はTerraformのバックエンドのドキュメントを検索しようとしましたが、ConsulがVaultを使って状態ファイルを暗号化するための設定フラグを見つけることができませんでした。
Vaultに関する十分な経験がないため、Vaultの中継バックエンドを使用してVault経由でConsulに透過的に暗号化することはできますか? VaultはConsulをステートストアとして使用していますが、とにかく動作する可能性があるため、奇妙に聞こえますか? – ydaetskcoR
@ydaetskcoRこのアイデアは素晴らしいですが、問題は読み取り/保存手順にフックする正式な方法がないことです。そのため、ボールトの中継バックエンドを組み込むことは難しくなります。ステートファイルをローカルに保存し、ボールトで暗号化し、暗号化されたファイルをリモートバックエンドにプッシュすることができます。しかし、そのためには、テラフォームの周りにカスタムラッパーを使用する必要があります。 Terraform自体はそのようなアプローチをサポートしていません(まだ) – fishi
ああ、領事ホストを変更してボールトクラスタと中継バックエンドのパスを指すようになっているかもしれないと思っていましたが、それでも何とかボールトトークンを提供する必要があります。 https://github.com/hashicorp/terraform/で問題を提起する価値があるかもしれません(バックエンドは依然としてメインレポの一部です) – ydaetskcoR