記事検索

検索ワードを入力してください。
Sky Tech Blog
Azure マネージドIDとは​?概要と​内部​認証フローを​解説

Azure マネージドIDとは​?概要と​内部​認証フローを​解説

Azure環境におけるリソース間のアクセスにおいて、従来のシークレットを用いた認証方式の課題と、それらを解決するマネージドIDの概念および認証フローについて解説します。

Azure上でアプリケーションを構築する際、アプリケーションが別のAzureリソースへアクセスするケースは多くあります。

例えば以下のようなケースです。

  • Azure App Service → Azure Key Vault
  • Azure App Service → Azure Blob Storage
  • 仮想マシン → Azure SQL Database など。

このときに問題になるのが、 認証情報(ID、パスワード、シークレットなど)をどう管理するか です。
認証情報を利用した認証方式ですと、認証情報をどこかで能動的に管理する必要がありました。
プログラムに埋め込む、プログラムから読み込める場所にファイルとして置いておく、環境変数に書いておく、などが考えられます。

しかしそれらは、操作ミスによる情報漏洩、期限切れなどの問題を引き起こすリスクを抱えていました。

そこで生まれたのが マネージドID による認証方式です。

認証情報を​利用した​認証方​式

例えば、仮想マシンからAzure Blob Storageへアクセスする際は、アクセスキーやSASキーなどのシークレット情報を用いてアクセスしていました。

マネージドIDを​使用した​認証方​式

一方、マネージドIDを使用した認証方式では、シークレット情報の入力は必要ありません。
仮想マシンが、自身のマネージドIDを使用して認証を行います。

マネージドIDの​概念

マネージドIDを作成すると、内部的にサービスプリンシパルが作成されます。
※詳細は割愛しますが、サービスプリンシパルとは、RBAC(ロールベースアクセス制御)による、「誰がリソースにアクセスしてよいか」を識別するためのIDです。

Microsoft Entra ID上にサービスプリンシパルが自動生成され、そのサービスプリンシパルをAzureリソースに紐づけて利用しています。
マネージドIDは 「サービスプリンシパル」を自動管理してくれる仕組み 、と言えるかと思います。

また、中身がサービスプリンシパルということは、アクセス制御(IAM)におけるロールの割り当て対象として選択することもできます。
例えば、冒頭で例に挙げたAzure App Service → Azure Key Vaultへのアクセスにおいては、認証元であるAzure App ServiceのマネージドIDを有効化しておき、有効化したマネージドIDに対して、Azure Key Vaultを管理するロールを付与することで、Azure App ServiceからAzure Key Vaultの操作が可能になります。

このように 「Azureリソース」をユーザーのごとく扱える 、という点もメリットと言えると思います。
マネージドIDを利用できるAzureリソースは、すでに挙げた仮想マシンやAzure App Serviceの他にも、Azure AutomationやAzure Event Hubsなど、多岐にわたるサービスやリソースで利用可能です。

マネージドIDを​使用した​認証フロー

ではこのマネージドIDを使用して、実際にどのような順番で認証が行われているか、上で示した、仮想マシンからAzure Blob Storageへのアクセスを例に記載します。

ここで、「Azure Instance Metadata Service(IMDS)」が登場していますが、仮想マシンのメタデータを管理してくれているAzureの内部コンポーネントと捉えてください。

IMDSは、仮想マシンの内部からのみアクセス可能なコンポーネントとなっており、「どの仮想マシンから来た通信か」をネットワークレベルで識別できます。
そのため、「信頼できる仮想マシンからのトークン要求」と判断し、Microsoft Entra IDにトークンの要求を行います。
このような流れで取得したトークンを用いて、最終的に仮想マシンからAzure Blob Storageへのアクセスを行います。

このようにして、シークレットを用いずに、「Azure内部で抱えている識別情報のみで完結する」認証方式が、マネージドID認証となります。

今回はAzureのマネージドIDを利用した認証について解説しました。
シークレット情報の管理が不要になるため、アプリケーション実装時におけるAzureリソースの認証方法は、できる限りマネージドID認証で行うのがセキュアでメンテナンス性の高い設計に繋がると考えています。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム