AzureシステムマネージドIDを使って、Storage AccountのキーやSASを使わずに、PowerShellでファイルアップロードする手順を試したので残しておきます。
VMのシステムマネージドID有効化
StorageAccountへのロール割り当て
Azure PowerShell インストール
ここからはWindows Serverでの操作になります。
- Azure PowerShellがインストールされていない場合は、 Azure PowerShell をインストールする を参考にインストールします。
Blobアップロード
- AzureシステムマネージドIDでログインします。
Connect-AzAccount -Identity
- ストレージコンテキストを取得します。
$ctx = New-AzStorageContext -StorageAccountName "ストレージアカウント名" -UseConnectedAccount
- ファイルアップロードします。
Set-AzStorageBlobContent -File "ソースファイル" -Container "ストレージBLOBのコンテナー名" -Context $ctx
注意点
- システム割り当てマネージドIDは1つのリソースにつき1つに限定されています。今回のような1つの仮想マシンに対して、1つのストレージアカウントというケースではこれでよいです。
- 1つの仮想マシンで複数のストレージアカウントへのアップロードが必要というようなケースでは、ユーザー割り当てマネージドIDを使う必要が出てきます。
以上