LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

テクニカルレポート | 

Azure Arc検証【前編】|他クラウドの仮想マシンをAzure Arcで接続してみた

クラウドインテグレーションサービス部の古村です。

マルチクラウドやハイブリッドクラウドといった構成が一般的になっていくなか、分散してしまう各リソースをどう一元管理していくのかが課題になっています。Microsoft社が提供している「Azure Arc」を活用することで、マルチクラウドやオンプレミス環境のリソース管理を効率的に実施できます。

前編である今回は、最初のステップとしてAWS上の仮想マシンをAzure Arcへ接続する手順を紹介します。

マルチクラウド/ハイブリッドクラウドについて

マルチクラウドとは、複数のクラウドを組み合わせた環境でシステムを構築/利用することです。

例えばパブリッククラウドの場合、AWSでは豊富なサービスメニュー、AzureではMicrosoft社のサービスとの親和性、OCIではOracleデータベース製品など、各クラウドによって異なる強みがあります。それぞれの強みを組み合わせてシステムを構築することにより、より顧客のニーズにあったシステムを実現できる可能性が高くなります。

ハイブリッドクラウドは、オンプレミスとクラウドを組み合わせた環境でシステムを構築/利用することです。

クラウドの導入により開発スピードを向上させたい半面、規制要件や取り扱い情報の特性から、クラウド上へのデータ保管が難しいといった場合もあります。その場合、顧客データはオンプレミス環境で保持したまま、フロントシステムをクラウド上へ移行するといった構成をとるケースも考えられます。

ハイブリッドクラウドについて

このように、マルチクラウド/ハイブリッドクラウドにはそれぞれの長所を活かしたシステム構成を実現できる一方で、いくつかのデメリットが存在します。

主要なものとして「管理対象が広くなってしまうことによる運用負担の増加」が挙げられます。管理機能がそれぞれのクラウド、あるいはオンプレミス環境に分散することにより、システム全体を一元管理するには各環境からの情報を統合する必要があります。また、管理機能が異なることにより、統一したポリシーの適用が困難となることも予想されます。

Azure Arcとは

Azure Arcは2019年に発表された、マルチクラウドおよびオンプレミスの一貫した管理プラットフォームを提供するサービスです。

オンプレミス環境で稼働しているサーバー、あるいはAWSのEC2など別クラウド上で稼働している仮想マシンをAzure側で管理できます。マルチクラウドやハイブリッドクラウドの利用でバラバラになってしまった各リソースを、Azureから一元管理することで運用負荷を軽減させることができます。また、Azure上の仮想マシンと同様の管理(Microsoft Defender for EndpointやAzure Policyなど)を適用させることもできます。

Azure Arc の概要 - Azure Arc | Microsoft Learn

Azure Arcを利用する上での前提条件

前提条件は「Connected Machineエージェントの前提条件」にも記載があります。追加対象のサーバー側(今回だとAWS側)とAzure側の条件を整理します。

Connected Machine エージェントの前提条件 - Azure Arc | Microsoft Learn

追加対象のサーバー側

Azure側

  • 作業者には、追加対象となるリソースグループに対しての「Azure Connected Machineのオンボード」あるいは「共同管理者」のロールがアサインされていること
  • 利用するサブスクリプションで以下のリソースプロバイダーが登録済みであること
    • -Microsoft.HybridCompute
    • -Microsoft.GuestConfiguration
    • -Microsoft.HybridConnectivity
    • -Microsoft.AzureArcData(Azure Arc対応SQL Serverを計画している場合)

Azure Arcにサーバーを接続する

今回はAWS上に構築したサーバー(EC2)をAzure Arcに接続してみます。

デプロイ方法についてのドキュメントではWindows Admin Centerからの接続方法やPowerShellを用いた接続方法なども紹介されていますが、今回はAzure Portalからの接続手順として、以下2通りの手順を実施していきます。

Azure Connected Machine エージェントのデプロイ オプション - Azure Arc | Microsoft Learn

  • 対話形式でマシンを接続する
  • サービスプリンシパルを使用してマシンを接続する

①対話形式でマシンを接続する

デプロイ用スクリプトの作成

まずは、Azure Arcのデプロイ用スクリプトを作成します。Azure Portalの「Azure Arc」サービスを開き、こちらの手順に従って進めます。

デプロイ スクリプトを使用してハイブリッド マシンを Azure に接続する - Azure Arc | Microsoft Learn
Azure portal からインストール スクリプトを生成する

リソースグループやリージョン、OSなどの項目を設定します。接続方法については、今回はプロキシサーバーやプライベートエンドポイントを利用していないため、「パブリックエンドポイント」を選択します。各種項目の設定をすると、デプロイ用スクリプトが表示されます。「ダウンロード」ボタンをクリックするとデプロイ用スクリプト「OnboardingScript.sh(Windowsの場合はOnboardingScript.ps1)」のダウンロードが始まります。

デプロイ用スクリプトの実行および認証

続いて、ダウンロードしたデプロイ用スクリプトを対象サーバー上に配置します。
管理者権限を持つユーザーとしてログインしてから、デプロイ用スクリプトを実行します。

root@ip-10-51-3-100:/home/ubuntu# date; whoami; ls -l
Fri Jun 16 02:55:49 UTC 2023
root
total 4
-rwxr-xr-x 1 ubuntu ubuntu 1241 Jun 16 02:55 OnboardingScript.sh
root@ip-10-51-3-100:/home/ubuntu# 
root@ip-10-51-3-100:/home/ubuntu# ./OnboardingScript.sh 
--2023-06-16 02:55:53--  https://aka.ms/azcmagent
Resolving aka.ms (aka.ms)... 104.88.220.62
Connecting to aka.ms (aka.ms)|104.88.220.62|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://gbl.his.arc.azure.com/installationScripts?api-version=1.0-preview&platform=linux [following]
--2023-06-16 02:55:54--  https://gbl.his.arc.azure.com/installationScripts?api-version=1.0-preview&platform=linux
Resolving gbl.his.arc.azure.com (gbl.his.arc.azure.com)... 20.43.67.88
Connecting to gbl.his.arc.azure.com (gbl.his.arc.azure.com)|20.43.67.88|:443... connected.
HTTP request sent, awaiting response... 200 OK
 
~~省略~~
 
Enabling extd
STARTING EXT
Latest version of azcmagent is installed.
INFO    Connecting machine to Azure... This might take a few minutes. 
INFO    Testing connectivity to endpoints that are needed to connect to Azure... This might take a few minutes. 
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code 《認証用コード》 to authenticate.

デプロイ用スクリプト実行後、1~2分程待つと"https://microsoft.com/devicelogin"へアクセスしてコードの入力を求めるメッセージが出力されます。自身のPCのブラウザから、対象URLへアクセスして、出力されたコード(英語大文字と数字の組み合わせ)を入力します。コード入力後、Azureへの認証情報の入力が求められます。

※2 WindowsでGUI(リモートデスクトップ接続)画面で実行した場合は、その実行環境上でブラウザが自動的に起動して、認証画面が表示されます。

認証後に「Azure Connected Machine Agentにサインインしますか?」という確認メッセージが表示されるので、「続行」をクリックします。正しく認証できれば、ブラウザを閉じるようにメッセージが表示されます。コンソール側では後続処理が動き、Azure Arcのセットアップが終了します。

②サービスプリンシパルを使用してマシンを接続する

上記の対話形式でマシンと接続する手順においてはAzure Arcのデプロイ用スクリプトを実行するたびに、ブラウザを開いてコード入力/認証が必要となります。大量のサーバーにセットアップする際には、非常に手間がかかります。また手動によるオペレーションが発生するため、ツールによる自動化にも不向きです。

次に紹介するようにサービスプリンシパルを利用することで、デプロイ用スクリプトを実行するたびのユーザーによる都度の認証が不要となります。

サービスプリンシパルの作成

事前に、サービスプリンシパルを作成します。サービスプリンシパルを作成するには、Azure AD※3の組み込みロールで「アプリケーション管理者」あるいは「クラウドアプリケーション管理者」にアサインされている必要があります。サービスプリンシパルの作成手順はこちらのリンクをご参照ください。

ハイブリッド マシンを大規模に Azure に接続する - Azure Arc | Microsoft Learn
大規模なオンボーディング用のサービス プリンシパルを作成する

なお、サービスプリンシパル作成時に有効期限を設定する箇所がありますが、これはサービスプリンシパル自体の有効期限となります。有効期限が切れた場合でも、接続済みのAzure Arcマシンには影響はありませんが、再度デプロイ用スクリプトを実行するには、サービスプリンシパルを作り直す必要があります。大規模システムの構築時など、作業に数日間かかる見込みの場合は1週間など余裕をもった期限を設定しておくと良いかと思います。

※3 Azure ADはMicrosoft Entra IDへ名称が変更されます。
Azure AD が Microsoft Entra ID に名称変更 - News Center Japan

デプロイ用スクリプトの作成および実行

サービスプリンシパル作成後のAzure Portalでの手順は、途中で作成したサービスプリンシパルを指定する項目がある以外は、前述の「①対話形式でマシンを接続する」の流れと同じです。ダウンロードしたデプロイ用スクリプト内には、作成したサービスプリンシパルのシークレットを記載する箇所があります。サービスプリンシパル作成時にダウンロードしたテキストファイルに記載されているシークレットをデプロイ用スクリプト内に転記します。

Azure Portalで、サービスプリンシパル作成時にダウンロードしたテキストファイルに記載されているシークレットをデプロイ用スクリプト内に転記

あとは前述の「①対話形式でマシンを接続する」と同じく、対象サーバーにデプロイ用スクリプトを配置し、管理者権限を持つユーザーとして実行します。今回は途中で認証を求められることなく、セットアップが完了します。

接続したサーバーの確認

Azure Arcへの接続が完了すると、Azure Arcのポータル画面に以下のように表示されます。停止中の仮想マシンは状態が「オフライン」となっており、稼働中でAzure Arcと接続されている仮想マシンは状態が「接続済み」となっています。

Azure Arcのポータル画面で、停止中の仮想マシンは状態が「オフライン」、稼働中でAzure Arcと接続されている仮想マシンは状態が「接続済み」と表示される

この一覧で表示されているリソース名(i-050481fa804cbf009、i-096167ed7c25a630a、など)はOSのホスト名(AWSの場合はインスタンスID)が表示されます。もし「localhost」といったホスト名のマシンを複数台Azure Arcへ接続する場合は、事前にホスト名を一意なものに変更しておくか、実行スクリプト内の"azcmagent connect"コマンドの引数に' --resource-name "<任意のリソース名>"'を追加することで、それぞれ別の名称でAzure Arcへ接続できます。

おわりに

今回の記事では、Azure Arc利用の最初のステップとして、Azure Arcへの接続手順をまとめてみました。作成したデプロイ用スクリプトを対象マシン上で実行することで、簡単にAzure Arcへ接続できます。後編の記事では、Azure Arc接続マシンに対するセキュリティ対策やポリシー管理を行う方法について、まとめていきます。

この記事は役に立ちましたか?

はい いいえ

関連記事

LAC WATCH

関連記事をご紹介します

  • Azure Arc検証【後編】|他クラウドの仮想マシンをAzure Arcで管理してみた

  • AzureとOCIをマルチクラウドで使いたい!簡単設定・構築ガイド

  • セキュリティ診断レポート 2021 秋~クラウド時代のセキュリティマネジメント