次の方法で共有


ID と承認

この記事では、Azure と通信するときに認証に使用される Azure Arc 対応サーバーの Microsoft Entra ID マネージド ID について説明し、2 つの組み込み RBAC ロールについて詳しく説明します。

Microsoft Entra ID マネージド ID

すべての Azure Arc 対応サーバーには、システム割り当て Microsoft Entra ID マネージド ID が関連付けられています。 この ID は、エージェントが Azure で自身を認証するために使用されます。 また、OAuth トークンを理解するリソースにアクセスするために、システム上の拡張機能やその他の承認されたアプリで使用することもできます。 マネージド ID は、Azure Arc 対応サーバー リソースと同じ名前の Microsoft Entra ID ポータルに表示されます。 たとえば、Azure Arc 対応サーバーの名前が prodsvr01 の場合、同じ名前の Microsoft Entra ID のエンタープライズ アプリが表示されます。

各 Microsoft Entra ID ディレクトリには、格納できるオブジェクトの数に対する有限の制限があります。 マネージド ID は、ディレクトリ内の 1 つのオブジェクトとしてカウントされます。 Azure Arc 対応サーバーの大規模なデプロイを計画している場合は、まず Microsoft Entra ID ディレクトリで使用可能なクォータを確認し、必要に応じて、より多くのクォータのサポート要求を送信します。 使用可能なクォータと使用済みのクォータは、"directorySizeLimit" セクションの下の List Organizations API 応答で確認できます。

マネージド ID はエージェントによって完全に管理されます。 エージェントが Azure に接続されている間は、資格情報のローテーションが自動的に処理されます。 マネージド ID を裏付ける証明書は、90 日間有効です。 残りの有効期間が 45 日以下の場合、エージェントは証明書の更新を試みます。 エージェントが有効期限が切れるほど長い間オフラインの場合、そのエージェントも "期限切れ" になり、Azure に接続されません。 このような場合、自動的に再接続することはできず、オンボード資格情報を使用してエージェントを切断し、Azure に再接続する必要があります。

マネージド ID 証明書は、システムのローカル ディスクに格納されます。 この証明書を所有するすべてのユーザーが Microsoft Entra ID からトークンを要求できるため、このファイルを保護することが重要です。 エージェントは、Windows の場合 C:\ProgramData\AzureConnectedMachineAgent\Certs\、Linux の場合 /var/opt/azcmagent/certs に証明書を格納します。 エージェントはこのディレクトリにアクセス制御リストを自動的に適用し、ローカル管理者と "himds" アカウントへのアクセスを制限します。 証明書ファイルへのアクセスの変更や、独自の証明書への変更を行わないでください。 システム割り当てマネージド ID の資格情報が侵害されたと思われる場合は、エージェントの Azure との接続を切断し、もう一度接続して、新しい ID と資格情報を生成します。 エージェントの接続を切断すると、マネージド ID を含む Azure 内のリソースが削除されます。

システム上のアプリケーションがマネージド ID のトークンを取得する場合、http://localhost:40342/identity の REST ID エンドポイントへの要求を発行します。 Azure Arc がこの要求を処理する方法には、Azure VM と比較して若干の違いがあります。 API からの最初の応答には、ディスク上にあるチャレンジ トークンへのパスが含まれます。 チャレンジ トークンは、Windows の場合 C:\ProgramData\AzureConnectedMachineAgent\tokens、Linux の場合 /var/opt/azcmagent/tokens に格納されます。 呼び出し元は、ファイルの内容を読み取り、承認ヘッダーにこの情報を含む要求を再発行することで、このフォルダーへのアクセス権を持っていることを証明する必要があります。 トークン ディレクトリは、管理者と、"ハイブリッド エージェント拡張アプリケーション" (Windows) または "himds" (Linux) グループに属するすべての ID がチャレンジ トークンを読み取れるように構成されています。 システム割り当てマネージド ID を使用するカスタム アプリケーションを承認する場合は、そのユーザー アカウントを適切なグループに追加して、アクセス権を付与する必要があります。

Arc 対応 サーバーでマネージド ID を使用して認証を行い、Azure リソースにアクセスする方法の詳細は、次の動画をご覧ください。

RBAC のロール

Azure には、Azure Arc 対応サーバーへのアクセスを制御するために使用できる 2 つの組み込みロールがあります。

  • Azure Connected Machine のオンボード。新しいマシンを Azure Arc に接続するために使用されるアカウントを対象とします。このロールにより、アカウントは新しい Arc サーバーを表示および作成できますが、拡張機能の管理は許可されません。

  • Azure Connected Machine のリソース管理者。接続後にサーバーを管理するアカウントを対象とします。 このロールにより、アカウントは Arc サーバー、VM 拡張機能、ライセンス、プライベート リンク スコープを読み取り、作成、削除できます。

Azure の汎用 RBAC ロールは、閲覧者、共同作成者、所有者を含む Azure Arc 対応サーバーにも適用されます。

ID とアクセスの制御

Azure ロールベースのアクセス制御は、Azure Arc 対応サーバーを表示および管理できるアカウントを制御するために使用されます。 Azure portal の [Access Control (IAM)] ページから、Azure Arc 対応サーバーにアクセスできるユーザーを確認できます。

Azure Arc 対応サーバー アクセスの制御が表示されている Azure portal のスクリーンショット。

リソースに対する共同作成者または管理者ロールのアクセス権を付与されたユーザーおよびアプリケーションは、マシン上での拡張機能の展開や削除などの、リソースに対する変更を加えることができます。 拡張機能には特権コンテキストで実行される任意のスクリプトを含めることができるため、Azure リソースの共同作成者はサーバーの間接管理者になるものと見なしてください。

Azure Connected Machine のオンボード ロールは、大規模なオンボードで使用でき、Azure での新しい Azure Arc 対応サーバーの読み取りまたは作成のみが可能です。 既に登録済みのサーバーの削除や、拡張機能の管理には使用できません。 ベスト プラクティスとして、このロールは、大規模なマシンのオンボードに使われる Microsoft Entra サービス プリンシパルのみに割り当てることをお勧めします。

Azure Connected Machine のリソース管理者ロールのメンバーであるユーザーは、マシンの読み取り、変更、再オンボード、および削除を行うことができます。 このロールは、Azure Arc 対応サーバーの管理をサポートするように設計されていますが、リソース グループまたはサブスクリプション内の他のリソースの管理はサポートしていません。