Azure で仮想マシン インスタンスを検出する

このドキュメントでは、Migration Center のディスカバリー クライアント CLI を使用して Azure アカウントでインベントリ検出を実行する手順について説明します。

mcdc CLI を使用すると、Azure 仮想マシン(VM)インスタンスに関する情報を収集できます。mcdc CLI はこの情報を Migration Center に送信し、そこで評価を続行できます。

始める前に

  1. mcdc CLI をダウンロードして実行するための要件を確認します。
  2. mcdc CLI をダウンロードする手順を完了します。Migration Center は Azure PowerShell をサポートしていません。Azure CLI を使用して mcdc CLI コマンドを実行します。

Azure に対する認証

mcdc CLI が Azure 環境にアクセスできるようにするには、次のいずれかの方法でアクセスを構成する必要があります。

既存の Azure 認証情報を使用する

既存の Azure 認証情報を使用するには、Azure Cloud Shell から mcdc CLI コマンドを直接実行します。Azure Cloud Shell から mcdc CLI を実行する場合は、クライアント シークレットなしで既存の認証情報を使用できます。この場合、mcdc CLI は、認証情報で付与された権限に基づいて Azure 環境にアクセスし、VM インスタンスを検出できます。

mcdc CLI のクライアント シークレットを作成する

mcdc CLI が Azure リソースにアクセスできるようにするには、mcdc CLI を Azure アカウントのアプリケーションとして登録し、クライアント シークレットを作成します。

mcdc CLI のクライアント シークレットを作成する手順は次のとおりです。

  1. Azure ポータルで [アプリの登録] ページに移動し、[新しい登録] をクリックします。
  2. 新しいクライアント認証情報を追加するには、[Add a certificate or secret] をクリックします。
  3. 新しいクライアント シークレットを追加するには、[+ New client secret] をクリックし、クライアント シークレットの説明と有効期限を入力します。
  4. [追加] をクリックします。

これで、クライアント シークレットを使用できるようになりました。クライアント シークレットの値をコピーします。これは、後で mcdc CLI コマンドを実行するときに必要になります。

カスタムロールの作成

mcdc CLI が Azure リソースにアクセスするために必要な権限を持っていることを確認するには、必要な権限を持つカスタムロールを作成する必要があります。

カスタムロールを作成する手順は次のとおりです。

  1. Azure ポータルで [Subscriptions] ページに移動し、Azure サブスクリプションを選択します。
  2. [Subscription ID] をクリックしてコピーします。
  3. 次の JSON テンプレートを保存し、SUBSCRIPTION_ID を手順 2 でコピーしたサブスクリプション ID に置き換えます。

      {
      "properties": {
            "roleName": "Minimum permissions role",
            "description": "This role contains the bare minimum of Azure IAM permissions",
            "assignableScopes": [
                  "/subscriptions/SUBSCRIPTION_ID"
            ],
      "permissions": [
                  {
                  "actions": [
                    "Microsoft.Compute/virtualMachines/read",
                    "Microsoft.Compute/disks/read",
                    "Microsoft.Insights/MetricDefinitions/read",
                    "Microsoft.Insights/Metrics/Read",
                    "Microsoft.Network/networkInterfaces/read"
                  ],
                  "notActions": [],
                  "dataActions": [],
                  "notDataActions": []
                  }
            ]
      }
      }
      

    権限の詳細については、権限の詳細をご覧ください。

  4. Azure ポータルで、[Access control (IAM)] ページに移動します。

  5. カスタムロールを追加するには、[+ 追加] をクリックします。

  6. [Start from JSON] をクリックし、[Select file] をクリックして、手順 3 で作成した JSON ファイルをアップロードします。

  7. [Review + Create] をクリックして入力内容を確認し、[Create] をクリックしてカスタムロールを作成します。

カスタムロールを mcdc CLI に割り当てる

カスタムロールを作成したら、必要な権限を付与するために mcdc CLI アプリケーションに割り当てる必要があります。

mcdc CLI にカスタムロールを割り当てる手順は次のとおりです。

  1. Azure ポータルで、[Access control (IAM)] ページに移動します。
  2. [+ 追加] をクリックし、[ロール割り当てを追加] をクリックします。
  3. 作成したカスタムロール(カスタムロールを作成する)で、「m2vm」と入力してロールを選択します。
  4. [次へ] をクリックします。
  5. [+ Select members] をクリックし、mcdc CLI を登録するで登録した mcdc CLI を検索して、[Select] をクリックします。
  6. カスタムロールを確認してアプリに割り当てるには、[Review + Assign] をクリックします。

Azure で VM インスタンスを検出する

Azure VM インスタンスからインベントリ情報を収集する手順は次のとおりです。

  1. コマンドライン ターミナルで、mcdc CLI をダウンロードしたディレクトリに移動します。

  2. 検出を実行する

    Azure Cloud Shell

    既存の Azure 認証情報を使用して Azure Cloud Shell から VM インスタンスを検出するには、次のコマンドを実行します。

    Linux

    ./mcdc discover azure --tenant TENANT_ID 
    --subscription SUBSCRIPTION_ID
    --host-credentials

    Windows

    mcdc.exe discover azure --tenant TENANT_ID 
    --subscription SUBSCRIPTION_ID
    --host-credentials

    クライアント シークレット

    クライアント シークレットを使用して Azure アカウントにアクセスできる任意のコンピュータから VM インスタンスを検出するには、次のコマンドを実行します。

    Linux

    ./mcdc discover azure --tenant TENANT_ID 
    --subscription SUBSCRIPTION_ID
    --client CLIENT_ID
    --secret CLIENT_SECRET
    [--resource-group RESOURCE_GROUP]

    Windows

    mcdc.exe discover azure --tenant TENANT_ID 
    --subscription SUBSCRIPTION_ID
    --client CLIENT_ID
    --secret CLIENT_SECRET
    [--resource-group RESOURCE_GROUP]

    次のように置き換えます。

    • TENANT_ID: Azure Active Directory(AAD)テナントの一意の識別子。
    • SUBSCRIPTION_ID: カスタムロールの作成セクションで作成したサブスクリプション ID。
    • CLIENT_ID: mcdc CLI を登録するセクションで作成したクライアント ID。
    • CLIENT_SECRET: mcdc CLI を登録するセクションで作成したクライアント シークレット。
    • RESOURCE_GROUP: 検出する VM インスタンスが含まれる Azure リソース グループ。このフラグは省略可能です。

出力は次のようになります。

  [+] Collecting Azure VM instances...
  Collecting region eu-west-1
  Collected 73 Azure VM instances
  [✓] Collection completed.

検出が完了したら、収集したデータを確認するために discover ls コマンドを実行します。

Linux

./mcdc discover ls

Windows

mcdc.exe discover ls

出力は次のようになります。

    VM Assets
    PLATFORM VM ID                        NAME              COLLECTED DATA   OS                          IP ADDRESSES
    4f7bd883-b9cd-42e8-a67d-af3ec82b7f29  abc-rhel9.0-arm   AZUREVM          Red Hat Enterprise Linux    192.0.2.1
    b5bcefcc-5565-4e45-a05a-fac055f73f14  def-rhel9.0-arm   AZUREVM          Red Hat Enterprise Linux    192.0.2.2
    sfbcesdc-8865-4e4t-a0sf-f8sfyjf75723  ghi-ol9.3         AZUREVM          Linux/UNIX                  192.0.2.3

次のステップ