はじめに
サービスプリンシパルとして一般的に知られている Azure AD アプリ登録は、ツールまたはスクリプトを使用して Azure サービスと通信し、サービスを更新または変更するための最も好ましい方法の 1 つです。アプリ登録は、アプリケーションの認証と認可を提供する、セキュリティ検証の不可欠な部分である。組織はしばしば、Azureリソースとの統合のためにCI/CDやその他のサードパーティツールを使用してコードをデプロイするために、ユーザーアカウントよりもサービスアカウントを使用することを好む。このアプローチは、構成を一度だけ構築し、組織のAADチームが管理するサービスに依存することで、一貫性と信頼性を保証する。Service Principal を利用することで、組織はアプリケーションと Azure サービス間のセキュアで効率的な通信を確立し、スムーズな運用とデータの整合性を維持することができる。
なぜ必要なのか?
Azureのサービスには、App登録の期限切れを追跡する機能が組み込まれていないため、自動化スクリプト、トリガーベースのFunction Apps、Azureでのインタラクションを必要とするサービスで使用される既存の統合や承認方法に問題が発生する可能性があります。これらのAD App登録の有効期限を監視し、通知するソリューションがなければ、DevOpsのCI/CDパイプラインが突然機能しなくなり、深刻な混乱を引き起こす可能性がある。当初は、有効期限のないシークレットを作成するオプションがあったが、セキュリティ上の懸念からこのオプションはADアプリ登録の設定から削除され、現在は有効期限を最大24カ月に設定できるようになっている。Azureサービスの継続的な運用を保証し、期限切れのApp登録に関連する潜在的なセキュリティリスクを回避するために、信頼できる監視ソリューションを導入することは組織にとって極めて重要である。
アプローチ
- ロジックアプリとファンクションアプリの使用
- 有料監視ツールの使用
- Azureオートメーションアカウントの使用
1つの可能な解決策は、ADアプリ登録のシークレットの有効期限を追跡するファンクションアプリと、ビジネスロジックに基づいてトリガーされ、監視ツールに基づいて通知されるロジックアプリを作成することである。しかし、複数のファンクション・アプリとロジック・アプリを実行するのはコストがかかる。
もう一つの選択肢は、サーバーレス360モニタリングのような有料のソリューションを利用することだ。
3つ目の解決策は、PowerShellスクリプトをジョブとして実行できるAzure自動化アカウントを使用することだ。メール通知を受け取るには、SendGridアカウント(無料ティアが利用可能)を使用すれば、他のリソースとの余分な統合手順を踏む必要がない。このブログでは、3つ目のソリューションについて説明する。
Azureオートメーションアカウントを使用した簡易アプローチ
ADアプリケーション・シークレットの有効期限を追跡するために、PowerShell、オートメーション・アカウント、通知用のSendGridを使用する。
- はじめに、Global reader権限を持つ別のアプリ登録でAzure ADに接続する必要がある。認証には、シークレットの代わりに自己署名X.509証明書を使用する。
- 接続が完了したら、すべてのアプリ登録のリストを取得し、シークレットの有効期限の詳細を含むすべてのアプリ登録の配列を提供します。この情報を今日の日付と比較することで、どのシークレットが期限切れなのか、もうすぐ期限切れなのか、まだ有効なのかを特定することができる。
- 必要な情報を収集した後、SendGrid PowerShell API v3コマンドを使用して、APIキーとHTMLボディを使用して電子メール通知を送信することができます。
- PowerShellスクリプトの準備ができたら、それをAzureオートメーションランブックにアップロードし、テストペインで実行してテストする。送信されるメールは以下のようになる:
このアプローチにより、ADアプリケーションシークレットをプロアクティブに監視・管理し、Azureサービスの継続的な運用を保証し、期限切れのシークレットに関連する潜在的なセキュリティリスクを回避することができます。
結論
DevOpsサービスを含む、最もシンプルで費用対効果の高いアプローチは、前述のとおりである。この方法を使用すると、Automation アカウントジョブを確立して、期限切れのクレデンシャルを監視し、チームに警告することができる。このプロアクティブなアプローチにより、事前にクレデンシャルを更新することができ、統合されたアプリケーションやパイプラインに影響を与える可能性のある直前の中断を防ぐことができる。
AzureとAWSプラットフォームに精通するeInfochipsは、クラウドネイティブな設計と開発、モノリシックからマイクロサービスアーキテクチャ、エンタープライズクラウドへの移行など、戦略的なクラウドイニシアチブをリードしてきました。当社のチームはAzure/AWSベースのプロジェクトをサポートする500名以上のエンジニアで構成されており、その中には100名以上のAzure/AWS認定エキスパートが含まれています。当社のクラウドに関する専門知識を活用することで、TCOとTTMの50%削減の達成、新たな収益ストリームの収益化、新たなビジネスモデルの実現など、お客様の主要なビジネス指標に大きな影響を与えてきました。