🔐
ブラウザ認証をスキップし、CLIでAzureにログインする方法
CLIでAzureにログインするとき、ブラウザでアカウントを選択する必要があります。
手動で作業しているときは特に問題ないのですが、Pipeline
やTerraform
のnull_resouceで実行するときには面倒のため、自動でログインできるようにしたいと思います。
ブラウザ認証をスキップしログインする方法として
- サービスプリンシパルを利用したログイン方法
- マネージドIDを利用したログイン方法
上記2種類の方法でログインすることができます。
今回はaz command
とAzModule
の両方でログインできる方法を紹介します。
az login
az login --service-principal --username <sp_id> --password <sp_secret> --tenant <tenant_id>
Connect-AzAccount
$ApplicationId = <sp_id>
$SecuredPassword = ConvertTo-SecureString <sp_secret> -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecuredPassword
$TenantId = <tenant_id>
Connect-AzAccount -ServicePrincipal -TenantId $TenantId -Credential $Credential
マネージドIDでログイン
VM(Automation, Functionsなど)に割り振られたマネージドIDでログインします。
az login --identity
Connect-AzAccount -Identity
注意: マネージドIDに適切なロールが割り振られていない場合、VM内での処理中に権限不足によるエラーが発生するためロールの割り当てをしっかりしてあげましょう。
Discussion