0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AzureユーザーマネージドIDを使ったVM→Blobへのアップロード

Posted at

以前、AzureシステムマネージドIDを使ったVM→Blobへのアップロード を書きましたが、それだと複数ストレージアカウントに対応できませんでした。
ユーザーマネージドIDを使って、1つの仮想マシンで複数のBLOBストレージにアップロードしてみます。

ユーザー割り当てマネージドID作成

  • Azure Portalより[マネージドID]を選択します。
    image.png

  • [作成]を選択します。
    image.png

  • [リージョン]、[名称]を入力し作成します。
    image.png

  • 作成できたらマネージドIDの概要ページにいき、[クライアントID]をメモしておきます。
    image.png

VMにユーザー割り当てマネージドIDを追加する

  • アクセス元となるAzure VMで、[ID]を選択します。
    image.png

  • [ユーザー割り当て済み]→[追加]の順に選択します。
    image.png

  • 先ほど作成したユーザー割り当てマネージドIDが出てくるはずなので、選択して追加します。
    image.png

StorageAccountへのロール割り当て

  • アップロード先のStorageAccountのIAMを選択、[追加]→[ロールの割り当ての追加]の順に選択します。
    image.png

  • [ストレージBLOBデータ共同作成者]を選択します。
    image.png

  • アクセスの割り当て先を[マネージドID]に変更し、[メンバーを選択する]を選択します。
    image.png

  • [ユーザー割り当てマネージドID]を選択します。
    image.png

  • 先ほど作成したユーザーマネージドIDを選択します。
    image.png

  • [条件]は特に設定不要なので、この状態で権限追加します。
    image.png

  • ロールの割り当て欄がこのような形になればOKです。
    image.png

  • アップロード先StorageAccountが複数ある場合はそちらも同じようにロール割り当てします。

Azure PowerShell インストール

ここからはWindows Serverでの操作になります。

Blobアップロード

  • ユーザーマネージドIDを使ってログインします。
Connect-AzAccount -Identity -AccountId [事前にコピーしたクライアントID]
  • ストレージコンテキストを取得します。
$ctx = New-AzStorageContext -StorageAccountName "ストレージアカウント名" -UseConnectedAccount
  • ファイルアップロードします。
Set-AzStorageBlobContent -File "ソースファイル" -Container "ストレージBLOBのコンテナー名" -Context $ctx
  • ストレージコンテキスト取得部分でストレージアカウント名を切り替えることで複数ストレージアカウントにアップロード可能です。

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?