Azure研究サイト

Azure研究サイト

~理解しずらい情報をシンプルにお伝えします~

Azure構築のセキュリティ対策(アプリ開発寄り)


Azure構築(アプリ開発寄り)のセキュリティ対策を紹介します。
EasyAuth認証、VNet統合、マネージドID、環境変数、Zipデプロイ、KeyVault などの簡単な使い方となぜセキュリティ対策になるのかを簡潔に説明していきます。
 
Defender for cloud や Sentinel などは取り上げません。アプリ開発のAzure構築の参考になればと書いていますのでご理解下さい。

f:id:exemple:plain title=

EasyAuth認証

5分のAzure設定かつプログラムコードを変更することなく、アプリの認証画面を実現するための機能です。

使い方

EasyAuthは、AppService/Functions等にデプロイしたアプリに対して簡単にログイン認証を設定できる機能です。AzureポータルでAppService/Functions等の設定ページに移動して、「認証/承認」メニューでEasyAuthを有効にし、Azure ADやFacebook、Googleなどのプロバイダーを選択して設定します。

なぜセキュリティ対策になるのか

EasyAuthを使用することで、認証できたユーザーだけがAppService/Functions等のアプリにアクセスできるようになります。これにより、不正アクセスを防ぎ、アプリケーションのセキュリティを強化できます。

仮想ネットワーク (VNet統合)

Azureリソース同士の通信を暗号化 (VPN) 通信させたい場合に使います。ただ、仮想ネットワークを構築しないデフォルト状態でも、HTTPS通信は行われるのでご安心下さい。

使い方

AppService/Functions等を仮想ネットワークに参加させる (VNet統合する) ことで、特定のネットワークからのみアクセスを許可できます。AzureポータルでAppService/Functions等の設定ページに移動して「ネットワーク」メニューでVNet統合を設定します。

なぜセキュリティ対策になるのか

仮想ネットワークに参加させる (VNet統合する) ことで、AppService/Functions等へのアクセスを特定のネットワークに限定できます。これにより、外部からの不正アクセスを防ぎ、内部ネットワーク内での安全な通信を確保できます。

マネージドID

Azureリソース同士が通信できるようにするための、認証処理です。同じAzureリソース同士とはいえ、各リソースは独立しているので、Azureリソース同士が通信できるようにするためにも、認証処理が必要になります。

使い方

マネージドIDを使用すると、AppService/Functions等のリソースが他のAzureリソースにアクセスするための認証情報を安全に管理できます。AzureポータルでAppService/Functions等の設定ページに移動し、「ID」メニューでシステム割り当てマネージドIDを有効にします。

なぜセキュリティ対策になるのか

マネージドIDを使用することで、AppService/Functions等が他のAzureリソースにアクセスするための資格情報をコード内にハードコーディングする必要がなくなります。これにより、資格情報の漏洩リスクを減らし、セキュリティを強化できます。

環境変数

よくデータベースのID/パスワードをpropertiesファイルから読み込ませてアクセスメソッドに渡したりしますが、propertiesファイルから読み込ませるとサーバ上のファイルを変更する必要があります。しかし、Azureの環境変数を使えば、ポータル画面に値を設定するのでプログラマーじゃなくても値を設定・変更できたりするメリットがあります。

使い方

AppService/Functions等の設定情報や機密情報を環境変数として管理します。AzureポータルでAppService/Functions等の設定ページに移動し、「構成」セクションでアプリケーション設定を追加します。

なぜセキュリティ対策になるのか

環境変数を使用することで、機密情報をコード内にハードコーディングする必要がなくなります。これにより、機密情報の漏洩リスクを減らし、セキュリティを強化できます。また、環境変数を使用することで、設定情報を簡単に変更できるため、運用の柔軟性も向上します。

Zipデプロイ

Zipデプロイにしない場合は、プログラム・設定・データファイルなどがばらばらとAzureサーバにデプロイ (アップロード) されていきます。可能性はほぼないですが盗聴されるリスクがないとも言えなかったり、Azureサーバにデプロイ (アップロード) して後にファイルをいじれる状態になるので変更のリスクがないとも言えなかったりするので、それらのリスクを軽減できたりアプリロードから実行までの時間が早くなったりします。

使い方

Zipデプロイを使用すると、アプリケーションのコードと依存関係を一つのZIPファイルにまとめてデプロイできます。AzureポータルやAzure CLIを使用して、ZIPファイルをAppService/Functions等にデプロイします。

なぜセキュリティ対策になるのか

Zipデプロイを使用することで、デプロイプロセスが簡素化され、デプロイ時のエラーや不整合を減らすことができます。また、デプロイパッケージが一貫しているため、セキュリティ上のリスクを低減できます。

KeyVaultの使用

環境変数に似ていますが、環境変数はAppService/Functionsなどく特有の機能に対して、KeyVaultは他のAzureサービスにも汎用的に使えます。

使い方

KeyVaultを使用して、機密情報(APIキー、パスワード、証明書など)を安全に管理します。AppService/Functions等からKeyVaultにアクセスするためには、マネージドIDを使用して認証を行います。

なぜセキュリティ対策になるのか

KeyVaultを使用することで、機密情報を安全に保管し、アクセス制御を厳密に管理できます。これにより、機密情報の漏洩リスクを大幅に減らし、セキュリティを強化できます。また、KeyVaultを使用することで、機密情報のローテーションや監査も容易になります。

まとめ

これらのベストプラクティスを実践することで、Azure構築のセキュリティを高め、不正アクセスや機密情報の漏洩を防ぐことができます。これらの対策を実施して、安全なサーバーレスアプリケーションを構築しましょう。

ご意見・ご要望はこちらへ