-
タグ
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR
クラウドインテグレーションサービス部の古村です。
マルチクラウドやハイブリッドクラウドといった構成が一般的になっていくなか、分散してしまう各リソースをどう一元管理していくのかが課題になっています。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
追加対象のサーバー側
- 対象サーバーのOSがサポートされるOSリストに含まれていること
Connected Machine エージェントの前提条件 - Azure Arc | Microsoft Learn
サポートされるオペレーティング システム - 対象サーバーでの管理者権限が付与されていること(Linuxではrootアカウント、Windowsであればローカルの管理者権限が利用可能である必要があります)
- インターネットへアウトバウンド通信が有効になっていること(特定のURLに対して、HTTPS通信(TCP/ポート443)が許可されている必要があります)
※1 詳細なアクセス要件は「ネットワーク要件」をご参照ください。
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 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接続マシンに対するセキュリティ対策やポリシー管理を行う方法について、まとめていきます。
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- もっと見る +
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR