Azure研究サイト

Azure研究サイト

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

AppService/FunctionsのマネージドIDとは(ポータルで事前認証を行う)

マネージドIDとは

仕組み的なものをふまえて簡単にいうと、各Azureリソースからのみアクセスできるエンドポイントにアクセスして資格情報(サービスプリンシパル)を取得し、そのサービスプリンシパルで他のリソースにアクセスする仕組みです。
 
一般的に説明をすると、マネージドIDは、Azureリソースに対する認証情報を提供するためのサービスです。マネージドIDを使用することで、AzureADによる認証を必要とせずに、Azureリソースにアクセスすることができます。また、マネージドIDは、Azureリソースに対するアクセス権限を制御するための役割ベースのアクセス制御(RBAC)と統合されているため、セキュリティを強化することができます。マネージドIDは、仮想マシン・AppService・FunctionsなどのAzureリソースで利用可能であり、AzureポータルやAzure CLIを使用して簡単に設定することができます。  
 
Functionsの関数アプリをPowershellで作ったとします。
Azureリソースの操作コマンドを実装する場合、Connect-AzAccountコマンドで認証しないとエラーになりますが、マネージドID画面で事前認証すれば、認証済みの前提で実行できる。という機能になります。
 

システム割り当て済み

一台のVMや一つのAppService/Functionsアプリごとに認証割り当てをする場合は、システム割り当て済みの方を使用します。

発行されたオブジェクトIDを使用すると、 以下のように有効にするとオブジェクトIDが発行されます。

f:id:exemple:plain title=

そして、Azureロールの割り当てから、アプリケーションなどからアクセスを許可するサービスの選択と許可する操作を設定します。

f:id:exemple:plain title=

すると、例のようにストレージアカウントであれば、接続文字列をアプリケーション上で指定しなくても、参照・更新できるようになります。  

ユーザー割り当て済み

複数台のVMや複数のAppService/Functionsアプリなど、特定のユーザーが管理している複数リソースに認証割り当てをする場合は、ユーザー割り当て済みの方を使用します。
 
恐縮ですが、こちらは使用される頻度が比較的少ないと思われるため、詳細説明を割愛します。
 

アクセス制御(IAM)とアクセス制限は別もの

AppService/Functions > アクセス制御(IAM)は、Azure上のリソースを操作する際の権限制御です。
Microsoftアカウントを指定して、ロール(権限)を割り当てると、特定のアカウントだけリソースを操作できるように制御できます。

docs.microsoft.com

 
AppService/Functions > ネットワーク > アクセス制限は、アプリケーションへのアクセスをコントロールする際のアクセス制御です。
IPアドレスなどを指定して、アプリケーションへのアクセス許可/拒否を制御できます。  
 
以上です。
 

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


/*--------------------------------------------------------------------*/