3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure のワークロードID (マネージド ID とサービスプリンシパル) を整理する

Last updated at Posted at 2024-07-26

こんにちは、アーキテクトのやまぱんです。
今回は Azure のワークロード ID、具体的にはマネージドID と サービスプリンシパル についてまとめます。
補足コメントや質問、いいね、拡散、是非お願いします🥺!
間違ってたら優しく教えてください!

モチベ

以前に参加した 2024/05/31 に開催された コミュニティイベント 「すきやねんAzure-セキュリティも考えてる? 動いて終わりじゃないですよ!!」 で説明されたもののまとめです。
復習するまでが勉強会です(かなり遅くなったけど)

当日のデモで使用されたスクリプトはこちら

  • すきやねんAzure の紹介はこちら

ワークロードID とは

マネージドIDサービスプリンシパル を合わせて指すことば。サービスプリンシパルはクライアントIDとも呼ばれたり。
ユーザー(人間)が認証する ID ではなく、システムやソフトウェアが使用する ID
ソフトウェア (スクリプト、アプリケーション、サービス、スクリプト、コンテナーなど) に割り当てる ID

マネージド ID と サービスプリンシパル の差異

マネージド ID サービスプリンシパル
トークンエンドポイント Azure Instance Metadata Service
http://169.254.169.254/metadata/identity/oauth2/token
https://login.microsoftonline.com/ [Tenant_ID] /oauth2/v2.0/token
対象リソースの場所 Azure上のリソースの対応サービス(Azure VM、App Service、Functionsなど) Microsoft Entra IDに接続できればどこでもOK(オンプレのアプリに組み込むことが可能)
認証方法 証明書 クライアント シークレット文字列または証明書
ライフサイクル管理 自動的に管理されるため、クライアントシークレットや証明書のローテーションが不要 クライアントシークレットや証明書のローテーションが必要

マネージド ID の方が安全な理由

  • Azure 環境でのみ利用可能なトークンエンドポイントからOauth2.0 アクセストークンを発行(トークンの有効期限は1時間で次回アクセス時にトークンが新たに取得されます)
  • トークン取得時の認証には証明書認証を使用しており安全
  • 証明書は Azure 内部で保持しており、ダウンロードは不可

2つのマネージド ID

システム割り当てマネージド ID

  • Azure リソース(仮想マシン、Functions など)のリソースの一部として作成
  • そのリソースでしか使用できない(他のリソースと共有不可)
  • リソース個別で ID が必要なケースやリソースとともにライフサイクル管理したいケースで利用(リソースを削除すると同時にマネージドIDも削除)

ユーザー割り当てマネージド ID

  • 個別の Azure リソースとして作成
  • 複数のリソースで共有が可能
  • 明示的に削除が必要
  • 例えば複数の VM で同一のストレージアカウントにアクセスする必要があるケースなどで利用

トークンの内容をみてみよう

こちら別記事にしました

参考

マネージド ID を 使って Azure VM から CLI で Azure を操作する。

こちらかこに書いた記事です。

Azure Instance Metadata Service とは

マネージドID をサポートするサービス

Azure AD が発行するトークンの有効期間と考え方 (2023 年版)

Microsoft ID プラットフォームのアクセス トークン

アクセス トークンにより、クライアントは保護された Web API を安全に呼び出すことができます。 Web API は、アクセス トークンを使用して認証と認可を実行します。
OAuth 仕様では、アクセス トークンは、設定された形式を持たない不透明型の文字列です。 ID プロバイダー (IDP) には、GUID を使用するものと、暗号化された BLOB を使用するものがあります。 アクセス トークンの形式は、トークンを受け入れる API の構成によって異なります。
Microsoft ID プラットフォームで開発者によって登録されるカスタム API では、v1.0 および v2.0 と呼ばれる 2 つの異なる形式の JSON Web Token (JWT) のいずれかを選択できます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?