目次
AzureマネージドIDとは?
Azureリソースへアクセスする際に利用する認証方式の1つ。
トークンとは、ワンタイムパスワードを生成するツールの総称。簡単なイメージでいうと、データの鍵(これを持っていると毎回ログインしなくて済む)のようなイメージである。
認証フロー(使用例:Azure VMからKey Vaultにアクセスする)
Azure上から特殊なIPアドレス(リンクローカルアドレス)が割り当てられているAzure Instance Metadata Serviceを経由してEntra IDにトークンを要求するという処理が行われている。
- Key Vaultに対してアクセス権を持つマネージドIDをAzure VMに割り当てる
- VM内のアプリがIMDS経由でEntraIDとやり取りをし、トークンを取得する
- 取得したトークンを用いてKey Vaultからシークレットを読み込み、アクセスする
IMDS(Instance Metadata Service)とは、Azure上の仮想マシン(VM)やApp Serviceなどから、自分自身のインスタンス情報やトークンなどのメタデータにアクセスするためのサービスです。
「シークレット(Secret)」とは、パスワードやAPIキー、証明書などの機密情報のことを指します。
これらはソフトウェア開発・運用において必要不可欠ですが、誤って漏洩すると重大なセキュリティリスクになります。
参考
マネージドIDには2種類ある
- システム割り当てマネージドID
- ユーザ割り当てマネージドID
主な特徴は以下の通りである。
システム割り当てマネージドD | ユーザ割り当てマネージドID | |
作成方法 | Azureリソースに紐づいて作成される | 単独のAzureリソースとして作成する |
ライフサイクル | 作成したリソースに紐付けられ、リソースが削除されるとマネージドIDも削除される | 独立したライフサイクルを持つ(特定のリソースに紐付けられない) |
Azureリソースとの関連付け | 1つのAzureリソースにのみ紐付けることができる | 1つのユーザ割り当てマネージドIDを複数のAzureリソースに紐付けることができる |
サービスプリンシパルとは?
アプリやスクリプトがAzureリソースにアクセスする際に使用するもの。ユーザ側で行うロール付与はサービスプリンシパルで行われており、サービスプリンシパルを経由して各種リソースにアクセスしている。
以下、サービスプリンシパルとマネージドIDの違いについてChatGPTの回答となります。

まとめ
マネージドIDとは以下のような特徴を持つ認証方式である。
- Azureリソースにアクセスする際に利用する認証方式の1つ(EntraIDよりアクセストークンを取得)
- 構成ファイルにアクセス情報を含めないため、セキュアなキー管理を実現できる
- 2種類(システム割り当てマネージドID、ユーザー割り当てマネージドID)存在する
- サービスプリンシパルとの違いは、アプリやスクリプトがAzureリソースにアクセスする際に用いる(サービスプリンシパル)か、もしくはAzureリソース同士のアクセスの際に用いるか(マネージドID)