以前、AzureシステムマネージドIDを使ったVM→Blobへのアップロード を書きましたが、それだと複数ストレージアカウントに対応できませんでした。
ユーザーマネージドIDを使って、1つの仮想マシンで複数のBLOBストレージにアップロードしてみます。
ユーザー割り当てマネージドID作成
VMにユーザー割り当てマネージドIDを追加する
StorageAccountへのロール割り当て
-
アップロード先StorageAccountが複数ある場合はそちらも同じようにロール割り当てします。
Azure PowerShell インストール
ここからはWindows Serverでの操作になります。
- Azure PowerShellがインストールされていない場合は、 Azure PowerShell をインストールする を参考にインストールします。
Blobアップロード
- ユーザーマネージドIDを使ってログインします。
Connect-AzAccount -Identity -AccountId [事前にコピーしたクライアントID]
- ストレージコンテキストを取得します。
$ctx = New-AzStorageContext -StorageAccountName "ストレージアカウント名" -UseConnectedAccount
- ファイルアップロードします。
Set-AzStorageBlobContent -File "ソースファイル" -Container "ストレージBLOBのコンテナー名" -Context $ctx
- ストレージコンテキスト取得部分でストレージアカウント名を切り替えることで複数ストレージアカウントにアップロード可能です。
以上