- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2020-09-10T03:54:52+00:00","","")
#author("2020-09-10T08:27:07+00:00","","")
#mynavi(Azureメモ)
#setlinebreak(on);
* 概要 [#gb9ab00c]
#html(<div class="pl10">)
Azure のサービスプリンシパルを作成後、それを使用してログインする手順を記載する。
#html(</div>)
* 目次 [#kc48b057]
#contents
- 関連
-- [[Azureメモ]]
-- [[Azure CLI の操作]]
* パスワードベースのサービスプリンシパルの作成 [#m92c293d]
* パスワードベースのサービスプリンシパルの作成 [#m92c293d]
#html(<div class="pl10">)
サービスプリンシパル作成
#myterm2(){{
az ad sp create-for-rbac --name サービスプリンシパル名
{
"appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"displayName": "サービスプリンシパル名",
"name": "http://サービスプリンシパル名",
"password": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}}
ログイン確認
#myterm2(){{
az login --service-principal -u 表示されたname -p 表示されたpassword --tenant 表示されたtenant
}}
#html(</div>)
* 証明書ベースのサービスプリンシパル作成 [#fe799b1e]
#html(<div class="pl10">)
証明書の作成(パスワードなしで作成)
#myterm2(){{
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout my_cert.key \
-x509 -days 365 -out my_cert.crt
}}
# 秘密キーと証明書を1ファイルに纏める
#myterm2(){{
cat my_cert.key >my_cert.pem
cat my_cert.crt >>my_cert.pem
rm -rf my_cert.key && rm -rf my_cert.crt
}}
サービスプリンシパル作成
#myterm2(){{
az ad sp create-for-rbac --name サービスプリンシパル名 --cert @`pwd`/my_cert.pem
{
"appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"displayName": "サービスプリンシパル名",
"name": "http://サービスプリンシパル名",
"password": null,
"tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}}
ログイン確認
#myterm2(){{
az login --service-principal -u 表示されたname -p ./my_cert.pem --tenant 表示されたtenant
}}
#html(</div>)
* ロールの管理 [#daefe4fd]
#html(<div class="pl10">)
サービス プリンシパルの既定のロールは共同作成者になっているので、必要なロールのみを割り当て直しておく必要がある。
参考
- [[サービス プリンシパル ロールを管理する>https://docs.microsoft.com/ja-jp/cli/azure/create-an-azure-service-principal-azure-cli?view=azure-cli-latest#manage-service-principal-roles]]
- [[Azure 組み込みロール>https://docs.microsoft.com/ja-jp/azure/role-based-access-control/built-in-roles]]
例) 閲覧者ロールを追加し、共同作成者ロールを削除
#myterm2(){{
az role assignment create --assignee APP_ID --role Reader
az role assignment delete --assignee APP_ID --role Contributor
}}
// az role assignment create --assignee APP_ID --role "AcrPush"
// az role assignment create --assignee APP_ID --role "Website Contributor"
#html(</div>)