Microsoft Entra サービス アカウントの管理
Microsoft Entra ID のサービス アカウントには、マネージド ID、サービス プリンシパル、サービス アカウントとして用いられるユーザー アカウントの 3 種類があります。 自動的に使用する目的でサービス アカウントを作成した場合は、Azure と Microsoft Entra ID のリソースへのアクセス許可がそれらに付与されます。 リソースには、Microsoft 365 サービス、サービスとしてのソフトウェア (SaaS) アプリケーション、カスタム アプリケーション、データベース、人事システムなどがあります。 Microsoft Entra サービス アカウントの管理とは、セキュリティと継続性を確保するために、その作成、アクセス許可、およびライフサイクルを管理するということです。
詳細情報:
注意
ユーザー アカウントは安全性が低いため、サービス アカウントとして使用することはお勧めしていません。 これには、Microsoft Entra ID に同期されるオンプレミスのサービス アカウントも含まれます (サービス プリンシパルに変換されないため)。 代わりに、マネージド ID またはサービス プリンシパルと条件付きアクセスの使用をお勧めします。
詳細情報: 条件付きアクセスとは
サービス アカウントの計画
サービス アカウントを作成する前、またはアプリケーションを登録する前に、サービス アカウントの重要な情報を文書化します。 その情報を使用して、アカウントを監視および管理します。 次のデータを収集し、一元化された構成管理データベース (CMDB) で追跡することをお勧めします。
Data | 説明 | 詳細 |
---|---|---|
所有者 | サービス アカウントの管理と監視について説明責任を負うユーザーまたはグループ | アカウントを監視し、問題の軽減策を実装するために必要な所有者のアクセス許可を付与します。 問題の軽減は、所有者が行うことも、IT への要求を通じて行うこともできます。 |
目的 | サービス アカウントの使われ方 | サービス アカウントを特定のサービス、アプリケーション、またはスクリプトにマップします。 複数の用途に使用するサービス アカウントを作成しないでください。 |
アクセス許可 (スコープ) | 想定されるアクセス許可のセット | アクセスするリソースとそれらのリソースに対するアクセス許可を文書化します。 |
CMDB リンク | アクセスするリソースと、サービス アカウントが使用されているスクリプトへのリンク。 | リソース所有者とスクリプト所有者を文書化して、変更の影響を伝達できるようにします。 |
リスク評価 | アカウントが侵害された場合のリスクとビジネス上の影響 | この情報を使用して、アクセス許可のスコープを絞り込み、情報にアクセスできるユーザーを判断します。 |
レビュー期間 | 所有者がサービス アカウントを見直す頻度 | 通知とレビューを確認します。 スケジュールされたレビュー期間の経過後にレビューが実行された場合の対処方法を文書化します。 |
有効期間 | 想定されるアカウントの最長有効期間 | この情報を使用して、所有者への通知をスケジュールし、アカウントを無効にしてから最終的に削除します。 資格情報の有効期限を設定して、自動的にロールオーバーされないようにします。 |
Name | 標準化されたアカウント名 | サービス アカウントを検索、並べ替え、フィルター処理できるようにするための名前付け規則を作成します。 |
最小特権の原則
サービス アカウントには、そのタスクを実行するために必要なアクセス許可だけを付与してください。 サービス アカウントに高いレベルのアクセス許可が必要となる場合は、その理由を評価し、アクセス許可を減らすよう努めてください。
サービス アカウントの特権については、次の方法をお勧めします。
アクセス許可
- サービス アカウントには、組み込みロールを割り当てないでください
- 「
oAuth2PermissionGrant
リソースの種類」を参照してください。
- 「
- サービス プリンシパルには特権ロールが割り当てられます
- サービス アカウントを、昇格されたアクセス許可を持つグループのメンバーとして含めないでください
- Get-MgDirectoryRoleMember をご覧ください
Get-MgDirectoryRoleMember
、そして "Service Principal" という objectType でフィルター処理するか、次を使用します。Get-MgServicePrincipal | % { Get-MgServicePrincipalAppRoleAssignment -ObjectId $_ }
- サービス アカウントがリソースでアクセスできる機能を制限するには、「アクセス許可と同意の概要」を参照してください
- サービス プリンシパルとマネージド ID は、サインオン ユーザーを偽装している委任されたコンテキスト内で、またはアプリケーション コンテキスト内のサービス アカウントとして、Open Authorization (OAuth) 2.0 スコープを使用できます。 アプリケーション コンテキストでは、サインインしているユーザーはいません。
- リソースに対する、サービス アカウントの要求のスコープを確認します。
- アカウントが Files.ReadWrite.All を要求している場合は、File.Read.All が必要かどうかを評価します
- Microsoft Graph のアクセス許可のリファレンス
- アクセスが要求されているアプリケーション開発者または API が信頼できることを確認します
期間
- サービス アカウントの資格情報 (クライアント シークレット、証明書) を想定される使用期間に制限します。
- サービス アカウントの使用と目的の定期的なレビューをスケジュールします。
- アカウントの有効期限が切れる前に必ずレビューが行われるようにします。
目的、スコープ、アクセス許可を理解したら、サービス アカウントを作成し、次の記事の手順に従ってください。
- App Service と Azure Functions でマネージド ID を使用する方法
- リソースにアクセスできる Microsoft Entra アプリケーションとサービス プリンシパルを作成する
可能であれば、マネージド ID を使用してください。 マネージド ID を使用できない場合は、サービス プリンシパルを使用してください。 サービス プリンシパルを使用できない場合は、Microsoft Entra ユーザーアカウントを使用してください。
ライフサイクル プロセスの作成
サービス アカウントのライフサイクルは、計画に始まり、その完全な削除で終わります。 次の各セクションでは、監視、アクセス許可の確認、アカウントの継続的な使用状況の確認、最終的なアカウントのプロビジョニング解除の方法について説明します。
サービス アカウントを監視する
サービス アカウントを監視して、使用パターンが正しいことと、サービス アカウントが使用されていることを確認します。
サービス カウントのサインインの収集と監視
次のいずれかの方法を使用して監視します。
- Azure portal の Microsoft Entra サインイン ログ
- Microsoft Entra サインイン ログのエクスポート先
次のスクリーンショットを使用して、サービス プリンシパルのサインインを確認します。
サインイン ログの詳細
サインイン ログで次の詳細を確認できます。
- テナントにサインインしていないサービス アカウント
- サービス アカウントのサインイン パターンの変化
Microsoft Entra サインイン ログをエクスポートし、セキュリティ情報イベント管理 (SIEM) ツール (Microsoft Sentinel など) にインポートすることをお勧めします。 SIEM ツールを使用して、アラートとダッシュボードを作成します。
サービス アカウントのアクセス許可をレビューする
サービス アカウントのアクセス許可と、アクセスされるスコープを定期的に見直して、それらを削減または排除できるかどうかを確認します。
- Get-MgServicePrincipalOauth2PermissionGrant をご覧ください
AzureADAssessment
を参照して、有効性を確認してください- サービス プリンシパルの資格情報を期限なしに設定しないでください
- 可能であれば、Azure Key Vault に格納されている証明書または資格情報を使用します
サービス アカウントの使用を再認定する
サービス アカウントがその所有者とセキュリティまたは IT チームによって定期的に見直されるようにレビュー プロセスを確立します。
このプロセスには次のものが含まれます。
- サービス アカウントのレビュー サイクルの決定と、CMDB へのその文書化
- レビュー前の、所有者、セキュリティ チーム、IT チームへの通知
- レビューが行われなかった場合の警告通知とそのタイミングの決定
- 所有者がレビューまたは応答を怠った場合の対処方法についての指示
- レビューが完了するまでアカウントを無効にします (ただし削除はしない)
- 依存関係を確認する手順。 リソース所有者へのその影響の通知
レビューには、次のことを認定する所有者および IT パートナーが含まれます。
- アカウントが必要であること
- アカウントに付与されているアクセス許可は適切かつ必要なものであり、そうでなければ変更が要求されること
- アカウントとその資格情報へのアクセスが制御されていること
- アカウントの資格情報が正確であるjこと (資格情報の種類と有効期間)
- 前回の再認定以降、アカウントのリスク スコアが変更されていないこと
- アカウントの想定される有効期間と次回の再認定日が更新されていること
サービス アカウントをプロビジョニング解除する
次の状況では、サービス アカウントをプロビジョニング解除してください。
- アカウント スクリプトまたはアプリケーションが廃止されている
- アカウント スクリプトまたはアプリケーションの機能が廃止されている (たとえば、リソースへのアクセスなど)
- サービス アカウントが別のサービス アカウントに置き換えられている
- 資格情報の有効期限が切れているか、アカウントが機能していないため、苦情が報告されない
プロビジョニング解除には、次のタスクが含まれます。
関連するアプリケーションまたはスクリプトのプロビジョニングを解除した後、次を実行します。
- Microsoft Entra ID のサインイン ログとサービス アカウントによるリソース アクセス
- アカウントがアクティブの場合は、それがどのように使用されているかを確認してから、以降の手順を実行します。
- マネージド サービス ID である場合は、そのサービス アカウントのサインインを無効にしますが、ディレクトリからは削除しないでください。
- サービス アカウントに対するロールの割り当てと OAuth2 の同意の付与を取り消します。
- 定義された期間が経過し、所有者に警告が通知されたら、サービス アカウントをディレクトリから削除します。