エージェント ベースの実験用に Private Link を構成する (プレビュー)

この記事では、Azure Chaos Studio のエージェント ベースの実験 (プレビュー) 用に Azure Private Link を構成するために必要な手順について説明します。 現在のユーザー エクスペリエンスは、プライベート エンドポイント機能のパブリック プレビューの一部として有効にされたプライベート エンドポイントのサポートに基づいています。 このエクスペリエンスは、機能が一般提供 (GA) の品質に向上するのに合わせて、徐々に改善される予定です。 現在、プレビュー期間中です。


前提条件

Note

ターゲット リソースが Azure portal を使って作成された場合、Chaos エージェント仮想マシン (VM) 拡張機能がホスト VM に自動的にインストールされています。 ターゲットが Azure CLI を使って有効にされている場合は、Chaos Studio のドキュメントに従って、最初に VM 拡張機能を VM にインストールします。 プライベート エンドポイントのセットアップが完了するまで、VM 拡張機能は異常な状態を報告します。 この動作は予期されています。


制限事項

  • 2023-10-27-preview REST API を使って、エージェント ベースの実験専用のプライベート リンクを作成して使用する必要があります。 2024 年前半まで、GA 安定版 REST API では、エージェント ベースの実験用のプライベート リンクはサポートされて "いません"。
  • このフローのエクスペリエンスの最初から最後までの全体を通して、何回か CLI を使う必要があります。 現在のエンド ツー エンドのエクスペリエンスを Azure portal から実行することはできません。
  • Chaos Studio Private Accesses (CSPA) リソースの種類には、Chaos Target:CSPA リソース (プライベート エンドポイントの抽象化) の厳密な 1:1 マッピングがあります。 すべてのお客様にご満足いただけるよう、"1 つのサブスクリプションにつき、CSPA リソースの作成は 5 つ" までとさせていただきます。

Chaos Studio プライベート アクセス リソースを作成する

エージェント ベースのカオス実験にプライベート エンドポイントを使うには、Chaos Studio プライベート アクセスという新しいリソースの種類を作成する必要があります。 CSPA は、プライベート エンドポイントが作成される対象のリソースです。

現在、このリソースは "CLI からのみ作成" できます。 このリソースの種類を作成する方法については、次のコード例を参照してください。

az rest --verbose --skip-authorization-header --header "Authorization=Bearer $accessToken" --method PUT --uri "https://centraluseuap.management.azure.com/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Chaos/privateAccesses/<CSPAResourceName>?api-version=2023-10-27-preview" --body ' 

{ 

   "location": "<resourceLocation>", 

   "properties": { 

       "id": "<CSPAResourceName>", 

       "name": "<CSPAResourceName>", 

       "location": "<resourceLocation>", 

       "type": "Microsoft.Chaos/privateAccesses", 

       "resourceId": "subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Chaos/privateAccesses/<CSPAResourceName>" 

   } 

}'
名前 Required タイプ 説明
subscriptionID True String Azure サブスクリプション ID を表す GUID。
resourceGroupName True String Azure リソース グループを表す文字列。
CSPAResourceName True String Chaos Studio プライベート アクセス リソースに指定する名前を表す文字列。
resourceLocation True String リソースをホストする場所 (Chaos Studio でサポートされるリージョンにする必要があります)。

仮想ネットワーク、サブネット、プライベート エンドポイントを作成する

実験に必要な仮想ネットワーク、サブネット、エンドポイントを設定します (まだ設定していない場合)。

必ず、同じ VM の仮想ネットワークにアタッチしてください。 スクリーンショットでは、仮想ネットワーク、サブネット、プライベート エンドポイントを作成する例が示されています。 スクリーンショットのように、[リソースの種類]Microsoft.Chaos/privateAccesses に設定する必要があります。

Screenshot that shows the Resource tab of private endpoint creation.

Screenshot that shows the Virtual Network tab of private endpoint creation.

エージェント ホスト VM を CSPA リソースにマップする

GetTarget 呼び出しを行ってターゲット Resource ID を見つけます。

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{parentProviderNamespace}/{parentResourceType}/{parentResourceName}/providers/Microsoft.Chaos/targets/{targetName}?api-version=2023-10-27-preview

GET コマンドからは、大きな応答が返されます。 この応答に注意してください。 PUT Target コマンドを実行して 2 つのリソースをマップする前に、この応答を使用および変更します。


この応答を使用して PUT Target コマンドを呼び出します。 PUT コマンドを実行する前に、その本文に "さらに 2 つのフィールド" を追加する必要があります。

次に示すフィールドを追加します。

"privateAccessId": "subscriptions/<subID>/...
"allowPublicAccess": false

},

PUT Target コマンドの内容と入力する必要があるフィールドのブロックの例を次に示します。

Note

前の GET のコマンドから本文をコピーします。 privateAccessID および allowPublicAccess フィールドを手動で追加する必要があります。


az rest --verbose --skip-authorization-header --header "Authorization=Bearer $accessToken" --method PUT --uri "https://management.azure.com/subscriptions/<subscriptionID>/resourceGroups/<resourceGroup>/providers/Microsoft.Compute/virtualMachines/<VMSSname>/providers/Microsoft.Chaos/targets/Microsoft-Agent?api-version=2023-10-27-preview " --body ' {
    "id": "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/microsoft.compute/virtualmachines/<VMSSName>/providers/Microsoft.Chaos/targets/Microsoft-Agent",
    "type": "Microsoft.Chaos/targets",
    "name": "Microsoft-Agent",
    "location": "<resourceLocation>",
    "properties": {
        "agentProfileId": "<from target resource>",
        "identities": [
            {
                "type": "AzureManagedIdentity",
                "clientId": "<clientID>",
                "tenantId": "<tenantID>"
            }
        ],
        "agentTenantId": "CHAOSSTUDIO",
        "privateAccessId": "subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Chaos/privateAccesses/<CSPAresourceName>",
        "allowPublicAccess": false
    }} '

Note

PrivateAccessID 値は、前述のセクション「Chaos Studio プライベート アクセス リソースを作成する」で CSPA リソースの作成に使用した resourceID 値と正確に一致している必要があります。

VM で Azure Chaos エージェント サービスを再起動する

ホストに必要な変更をすべて行った後、VM で Azure Chaos エージェント サービスを再起動します。

Windows

Screenshot that shows restarting the Windows VM.

Linux

Linux の場合は、CLI から次のコマンドを実行します。

Systemctl restart azure-chaos-agent

Screenshot that shows restarting the Linux VM.

プライベート エンドポイントを使ってエージェント ベースの実験を実行する

再起動した後、Azure Chaos エージェントはエージェント通信データ プレーン サービスと通信できるようになり、データ プレーンへのエージェントの登録が成功するはずです。 登録が成功すると、エージェントはハートビートによって状態を示すことができます。 その後、プライベート エンドポイントを使用して、Azure Chaos エージェント ベースの実験の実行に進むことができます。