Azure ARMでTerraformを使うときの認証情報をGUIで取得する #azurejp #jazug

Azure ARMをTerraformで操作したいけど、Terraformで使うAzure認証に挫折した勢です。

TerraformでAzureを操作するにはAzure Providerの設定が必要になります。

# Configure the Microsoft Azure Provider
provider "azurerm" {
  subscription_id = "..."
  client_id       = "..."
  client_secret   = "..."
  tenant_id       = "..."
}

何を設定すればいいのかわかんない。。。(´д`)

状態だった私はこの記事に救われ、無事Azure認証難民から解放されました。謝謝。

TerraformをAzure ARMで使う時の認証 · re-imagine

Azure CLIでゴニョゴニョすればAzure Provider設定に必要な値は取得できます。 でも、認証情報ぐらいならGUIで・・・、これからTerraformをつかってコードでインフラ管理するのにGUIとか甘え( 

という声も聞こえそうですが、ゆるーくインフラ管理したいのでAzure Providerに必要な値をAzureポータル(GUI)から取得してみます。

Azureポータル

まずはAzureポータルにログインします。

Microsoft Azure

ログイン後、「Azure AD」を開きます。 f:id:hawa9:20170319141452p:plain

「アプリの登録」を開きます。 f:id:hawa9:20170319142524p:plain

「追加」を開き、必要な項目を設定して「OK」。 f:id:hawa9:20170319141950p:plain

項目
名前 登録するアプリの名前
アプリケーションの種類 Webアプリ/API
サインオンURL ユニークなURL(存在の有無は問いません)

追加できました。このアプリケーションIDが client_id になります。 f:id:hawa9:20170319143004p:plain

追加したアプリにアクセス許可の設定をします。 f:id:hawa9:20170320172319p:plain

許可するAPIWindows Azure Service Managerment API」を選択します。 f:id:hawa9:20170319144026p:plain

アクセス許可「Access Azure Service Management as organization users (preview)」を選択します。 f:id:hawa9:20170319144308p:plain

次にキーを取得します。名前と有効期間を入力します。 f:id:hawa9:20170320165938p:plain

保存するとキーを取得できます。この値が client_secret になります。 f:id:hawa9:20170320170046p:plain

次にAzure ADの「プロパティ」を開きます。このディレクトリIDが tenant_id になります。 f:id:hawa9:20170320171347p:plain

最後にサブスクリプションを開きます。このサブスクリプションIDが subscription_id になります。 f:id:hawa9:20170320171935p:plain

以上でAzure Providerの設定に必要な情報は揃いました。完了までもうひと踏ん張りです。

サブスクリプションの「アクセス制御(IAM)」を開きます。 f:id:hawa9:20170320172809p:plain

「追加」からサブスクリプションにユーザーを追加します。今回の役割は共同作成者を付与します。(権限設定は慎重に) f:id:hawa9:20170320173126p:plain

ユーザーには先ほどのアプリ登録で追加したアプリを選択します。 f:id:hawa9:20170320173651p:plain

追加できました。 f:id:hawa9:20170320173914p:plain

AzureポータルからAzure ARMでTerraformを使うときの設定が完了しました。やはりAzure CLIで取得する方法が楽ですね。

こちらからは以上です。