Azure VMでマネージドIDを使用して、Azure PowerShellの認証を行う方法を調べたので、
備忘としてまとめます。
VMのマネージドID有効化方法
マネージドIDを使用した認証方法
調べたところ、認証方法には下記2種類がありました。
① アクセストークンを取得する
② "Connect-AzAccount -identity"コマンドを実行する
■ 方法①:アクセストークンを取得する
Microsoftのこちらのサイトに記載の方法です。
こちらは都度トークンを取得する形となるため、PowerShellターミナルを終了すると再認証が必要となります。
■ 方法②:"Connect-AzAccount -identity"コマンドを実行する
Microsoftのこちらのサイトに記載の方法です。
このコマンドを実行すると、PowerShellターミナルを閉じてもOS再起動しても、再認証は不要となるようです。
仕組みとして、コマンドを実行すると下記ファイルが作成され、認証済み情報が格納されます。
ファイルの中身はこんな感じで、マネージドIDを使用した認証済み情報が記述されます。
{
"DefaultContextKey": "サブスクリプション (<subscription id>) - <tenant id> - <managed id>",
"EnvironmentTable": {},
"Contexts": {
"サブスクリプション (<subscription id>) - <tenant id> - <managed id>": {
"Account": {
"Id": "<managed id>",
"Credential": null,
"Type": "ManagedService",
"TenantMap": {},
"ExtendedProperties": {
"Subscriptions": "<subscription id>",
"Tenants": "<tenant id>"
}
},
"Tenant": {
"Id": "<tenant id>",
・・・
Disconnect-AzAccount
コマンドを実行すれば、ファイル内の認証済み情報が削除されます。
ファイルをリネームしても認証不可(再認証必要)になります。
{
"DefaultContextKey": "Default",
"EnvironmentTable": {},
"Contexts": {},
"ExtendedProperties": {}
}
余談
Azureサポートによると、マネージドIDを有効化したVMに不正アクセスされる
リスクを考慮し、以下を徹底して下さいとのこと。
・第一に不正アクセスされないようデバイスを保護する
・不正アクセスされてしまった場合を考慮し、マネージド ID に付与するアクセス許可 (IAM) を最小限のロールにしておくこと
以上です。