実行アカウントとマネージド ID の違いについて

Last Update: feedback 共有

こんにちは、Azure Monitoring サポート チームの六浦です。
今回は Automation アカウントの実行アカウントとマネージド ID の違いについてご紹介いたします。

目次

実行アカウントについて

実行アカウントは、Automation アカウントに利用される Azure AD のサービス プリンシパルです。
通常、以下のコマンドで実行アカウントを使って Azure へ認証するように Runbook を構成できます。

1
2
3
4
5
#Get the connection "AzureRunAsConnection"
$Conn=Get-AutomationConnection -Name $connectionName

"Logging in to Azure..."
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint

参考情報

Azure Automation アカウントの認証の概要 - 実行アカウント| Microsoft Docs
Azure Automation の実行アカウントを管理する | Microsoft Docs

マネージド ID について

マネージド ID は、Azure Active Directory (Azure AD) 認証をサポートするリソースに接続するときに使用する ID をアプリケーションに提供します。
アプリケーションは、マネージド ID を使用して Azure AD トークンを取得できます。
マネージド ID にはシステム割り当てマネージド ID とユーザー割り当てマネージド ID があります。

以下のコマンドでシステム割り当てマネージド ID を使って Azure へ認証するように Runbook を構成します。

1
2
3
4
5
6
7
8

Disable-AzContextAutosave -Scope Process

# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context

# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext

また、ユーザー割り当てマネージド ID では、以下のコマンドとなります。

1
2
3
4
5
6
7
8
# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process

# Connect to Azure with user-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity -AccountId <user-assigned-identity-ClientId>).context

# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext

マネージド ID は、Runbook で認証を行うための推奨される方法であり、現時点で Automation アカウントの既定の認証方法です。

参考情報

Azure Automation アカウントの認証の概要 -マネージド ID | Microsoft Docs
Azure Automation アカウントのシステム割り当てマネージド ID を使用する
Azure Automation アカウントのユーザー割り当てマネージド ID を使用する

実行アカウントとマネージド ID の共通点

  • Azure へ認証する役割を果たします。
  • Runbook に上述の認証用コマンドを記載する必要があります。
  • Azure Active Directory にアプリケーションとして登録されています。

実行アカウントとマネージド ID の相違点

実行アカウントの実体はサービス プリンシパルでございます。
そのため、サービス プリンシパルとマネージド ID の違いから、実行アカウントとマネージド ID の相違点をより深く理解できます。

サービス プリンシパルとマネージド ID の大きな違いは、マネージド ID は「割り当てられたリソースからしか使用できない」という点でございます。
サービス プリンシパルは、クライアント シークレットや証明書などを任意のクライアントに格納して使用できますが、マネージド ID は割り当てられたリソースからしか使用できません。つまり、マネージド ID はクライアント シークレットや証明書の流出による不正アクセスのリスクがございません。

この 2 つは以下のように使い分けいただけます。

  • 任意のクライアント (Azure 上に存在しないものを含む) で使用したい場合はサービス プリンシパルを使用
  • Azure 上に存在する特定のリソースでのみ使用したい場合はマネージド IDを使用

Azure 上に存在する Automation アカウントでは、マネージド ID のご使用を推奨しております。

最後に、実行アカウントとマネージド ID の相違点をまとめると以下になります。これらの相違点より、マネージド ID が推奨される認証方法です。

  • 実行アカウントは、証明書を更新する必要があります。
  • マネージド ID は、証明書を更新する必要がないです。
  • 特定のリソース (Autoamtion アカウント) からアクセスできるという観点から、実行アカウントより、マネージド ID がセキュアです。

まとめ

本記事では、実行アカウントとマネージド ID の共通点と相違点ついてご案内いたしましたが、ご理解いただけましたでしょうか。

本記事が少しでもお役に立ちましたら幸いです。
最後までお読みいただきありがとうございました!

※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。