Azure Storage

Azure Blob Storageのコンテナー内にファイルを格納するプログラムからアクセスキーを削除してみた

前回、Azure Blob Storageのコンテナー内にファイルを格納するプログラムを作成したが、Azure StorageにApp ServiceやAzure Functionsからのアクセス権限を付与することで、プログラムからアクセスキーを削除することができる。

今回は、Azure StorageにApp Serviceからアクセスできる権限を追加した上で、プログラムからアクセスキーを削除してみたので、共有する。

前提条件

下記記事の実装が完了していること。

Azure Blob Storageのコンテナー内にファイルを格納するプログラムを作成してみた以前、JavaでSpring Bootフレームワークを利用してファイルをアップロードするプログラムを作成したことがあったが、ファイルのア...

また、下記記事の「システムマネージドID割り当て(App Service)」が実施済であること。

Key VaultのシークレットをマネージドIDを利用して取得してみた以前、Key Vaultを作成しKey Vaultのシークレットを取得するサンプルプログラムについて記載したが、今回は、App Serv...

Azure Storageへのアクセス権限追加

Azure StorageにApp Serviceからアクセスできる権限を追加するのは、Azure Portal上で実施できる。その手順は、以下の通り。

1) Azure Portalにログイン後、作成したAzure Storageを表示し、「アクセス制御(IAM)」メニューを押下後、「ロールの割り当てを追加」を押下する。
AzureStorageのアクセス制御_1

2) 以下のように、ロールの割り当ての追加画面が表示されることが確認できる。
AzureStorageのアクセス制御_2

3) アクセスの割り当て先に「システム割り当てマネージドID」に表示される「App Service」を選択する。
AzureStorageのアクセス制御_3

4) 以下のように、システムマネージドIDが割り当て済のApp Serviceが表示されるので、表示された「azureAppDemoService」を選択する。
AzureStorageのアクセス制御_4

5) App ServiceからBlobストレージへの読み書きを行えるようにするため、役割に「ストレージ Blobデータ所有者」を選択する。
AzureStorageのアクセス制御_5

6) ロールの割り当て追加内容が下記のようになっていることを確認後、「保存」ボタンを押下する。
AzureStorageのアクセス制御_6

7) ロールの割り当て追加が完了すると、以下のように、右上にメッセージが表示されることが確認できる。
AzureStorageのアクセス制御_7



作成したサンプルプログラム(App Service側)の内容

作成したサンプルプログラム(App Service側)の構成は以下の通り。なお、Azure Functions側のソースコードは修正していない。

なお、上記の赤枠は、前提条件のプログラムから追加・変更したプログラムである。

pom.xmlの内容は以下の通りで、Azure Storageにアクセスするための設定を変更し、Azure認証を行うためのライブラリ(azure-identity)を追加している。

application.propertiesの内容は以下の通りで、Azure Storageにアクセスするためのアクセスキーを削除している。
application_properties



コントローラクラスの内容は以下の通りで、アップロードボタンが押下されたときに、Blobコンテナーにアップロードしたファイルを格納する処理を、Azure認証を行うクラス(DefaultAzureCredentialBuilder)を利用するよう修正している。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/azure/tree/master/azure-blob-storage-upload-nokey/demoAzureApp

サンプルプログラムの実行結果

サンプルプログラムの実行結果は、下記記事の実行結果と同じになる。

Azure Blob Storageのコンテナー内にファイルを格納するプログラムを作成してみた以前、JavaでSpring Bootフレームワークを利用してファイルをアップロードするプログラムを作成したことがあったが、ファイルのア...

要点まとめ

  • Azure StorageにApp ServiceやAzure Functionsからのアクセス権限を付与することで、Azure Blob Storageのコンテナー内にファイルを格納するプログラムからアクセスキーを削除できる。