Azure devops:AzureキーVaultによるterraform変数


私たちは変更することができますし、再利用できるように私たちのコードを適応できるように地形形式のファイルを作成するときに変数を使用します.変数を設定するとき、私にとって最も良い方法は、敏感である(秘密)と非敏感(リソース名など)のために一つの場所を選ぶことでした情報は、1つの場所で変数を管理することができます.この投稿では、変数の使用方法、AzureキーVaultの変数の格納方法、およびAzure Devopsの展開方法の一部を使用する方法を説明します.

最初に、あなたが書いているterraformコードの変数を宣言する必要があります.例えば、

私は通常、私のすべての変数を別々のファイルに置きますが、同じディレクトリに置いておきます.
一度設定すると、変数に入力する文字列を置換することで、コード内の変数を使用できます.

Azure devopsのリポジトリにコードをコミットしてください.

あなたが既にそうしなかったならば、非常に単純な、あなたのAzureキーVaultを作成してください.キーVaultリソース内からは、サイドメニューから秘密を選択して秘密を作成する必要があります.

今すぐ生成/インポートを選択します.

ここでは、変数の秘密の名前とコードに必要な値を作成します.Azure Key Vaultは、カーテンの文字をサポートしていません.例えば、アンダースコアのように、変数の外部ソースを使用するときに必要なアンダースコアです.詳細については、クリックしてください.

我々は、現在我々のazure devopsをazure key vaultに結びつける必要があります.Azure devops内でプロジェクトを開き、サイドメニューからパイプラインを選択してライブラリを選択します.ここで変数グループを選択します.

変数グループに名前を付け、変数のトグルとしてAzureキーVaultからリンクの秘密を有効にします.ここでは、AzureサブスクリプションとキーVaultを選択したい場合は、(あなたのAzureサブスクリプションをAzure Devopsにリンクしていない場合は、サービスのプリンシパルを作成するための管理リンクを使用してください)であなたのTerformフォームの変数を作成します.

あなたがキーVaultへのアクセスを承認するように求められるかもしれませんが、これが完了したら、あなたはあなたの変数ライブラリに秘密を加えるためにAddオプションを選ぶことができます.

「保存」をクリックしてライブラリの作成を完了します.

最後に、既存のパイプラインを編集するか、新しいものを作成する必要があります.キーVaultに接続されている変数ライブラリを含める必要があります.変数タブを選択し、変数グループを選択する必要があります.

ここでリンク変数グループを選択し、新しく作成された変数グループを選択します.
ここで、AzureキーVault変数がサポートされている形式であるように、再マップコマンドを実行するためにbashスクリプトタスクを追加する必要があります.Terraformは外部ソースからフォーマットを期待します.(フォーマットはAfureキーVaultでサポートされていません.以下は、bashスクリプトタスクに追加する必要があるコマンドの例です.

これを実行すると、terraformタスクをインストールし、初期化し、計画/配備することができます.パイプラインが実行されると、スクリプトはazure key vault変数をterraformで識別できる新しい名前にマップします.