目的
仕事柄、 Azure xx への操作をするアプリケーション・サービスを触る機会があります。
最近は、構成管理ツールを使って、デモ環境をかんたんに作って、使用しないときには、クリーンにしたいと思い、以前利用していた Terraform で構築しようと思いつきました。
先駆者の情報を参考にアプリ登録をしていましたが、Azure CLI 2.0 (Preview) での情報がなかったので、自分メモ代わりにまとめることにしました。
環境
- Mac
- Microsoft Azure (以降、Azure)
準備
Azure CLI 2.0 をインストール ガイドを参考にインストールします。ここでは、割愛します。
サービス プリンシパル登録
ログイン
ターミナルを起動し、以下のコマンドを実行して Azure へログインします。
$ az login
To sign in, use a web browser to open the page https://aka.ms/devicelogin and enter the code XXXXXXXXX to authenticate.
そうすると、https://aka.ms/devicelogin
にアクセスして、コードXXXXXXXXX
を入力するよう、メッセージが出力されますので、指定された URL にアクセスします。
Azure へのログイン画面が表示されたら、ご自身が利用されている ID とパスワードを入力してログインしましょう。
ログイン完了したら、画面を閉じても大丈夫です。ターミナルでは、しばらくすると、サブスクリプション一覧が JSON で返ってきているはずです。
サービス プリンシパル登録
az ad sp create-for-rbac
コマンドを実行します。
$ az ad sp create-for-rbac -n "TEST1" --role Contributor
{
"appId": "0d2a0c30-e8fe-47fd-80d7-xxxxxxxxxxxx",
"displayName": "TEST1",
"name": "http://TEST1",
"password": "ac52783a-488c-45e6-8504-xxxxxxxxxxxx",
"tenant": "1686c04e-9f16-487f-bf89-xxxxxxxxxxxx"
}
Azure 管理ポータルで確認すると、アプリの登録も完了していました。
サービス プリンシパルでログインできるか、ターミナルで確認してみます。
$ az login --service-principal -u "http://TEST1" -p <password> --tenant <tenant>
[
{
"cloudName": "AzureCloud",
"id": "140b7311-XXXXXXX-43d7-a119-XXXXXXX",
"isDefault": true,
"name": "Microsoft Azure",
"state": "Enabled",
"tenantId": "1686c04e-XXXX-487f-bf89-XXXXXXXX",
"user": {
"name": "http://TEST1",
"type": "servicePrincipal"
}
}
]
という具合にログインできました。
参考
この記事を書くにあたり、参考にしたページをまとめました。