Azure Load Testing にマネージド ID を使用する
[アーティクル] 10/14/2024
7 人の共同作成者
フィードバック
この記事の内容
この記事では、Azure Load Testing のマネージド ID を作成する方法について説明します。 マネージド ID を使うと、ロード テストで Azure Key Vault からシークレットまたは証明書を安全に読み取ることができます。
Microsoft Entra ID のマネージド ID を使うと、ロード テスト リソースが Microsoft Entra で保護された Azure Key Vault に簡単にアクセスできます。 ID は Azure プラットフォームによって管理され、シークレットを管理したりローテーションしたりする必要はありません。 Microsoft Entra ID のマネージド ID の詳細については、「Azure リソースのマネージド ID 」を参照してください。
Azure Load Testing では、次の 2 種類の ID がサポートされています。
システム割り当て ID は、ロード テスト リソースに関連付けられており、リソースが削除されると削除されます。 リソースでは、システム割り当て ID を 1 つだけ設定できます。
ユーザー割り当て ID は、ロード テスト リソースに割り当てることができるスタンドアロンの Azure リソースです。 ロード テスト リソースを削除しても、マネージド ID は引き続き使用できます。 ロード テスト リソースには、複数のユーザー割り当て ID を割り当てることができます。
現在、マネージド ID は Azure Key Vault へのアクセスにのみ使用できます。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成 してください。
Azure ロード テスト リソース。 Azure ロード テスト リソースを作成する必要がある場合は、「ロード テストの作成と実行 」に関するクイックスタートを参照してください。
ユーザー割り当てマネージド ID を作成するには、お使いのアカウントにマネージド ID 共同作成者 ロールの割り当てが必要です。
システム割り当て ID をロード テスト リソースに割り当てる
Azure ロード テスト リソースにシステム割り当て ID を割り当てるには、リソースのプロパティを有効にする必要があります。 このプロパティは、Azure portal を使用するか、Azure Resource Manager (ARM) テンプレートを使用して設定できます。
ポータルでマネージド ID を設定するには、最初に Azure ロード テスト リソースを作成してから、機能を有効にします。
Azure portal で Azure ロード テスト リソースに移動します。
左側のウィンドウにある ID を選択します。
[システム割り当て済み] タブで、[状態] を [オン] に切り替えて、[保存] を選択します。
確認ウィンドウで [はい] を選択して、マネージド ID の割り当てを確認します。
この操作が完了すると、ページにマネージド ID の オブジェクト ID が表示され、アクセス許可を割り当てることができます。
--identity-type SystemAssigned
を指定して az load update
コマンドを実行し、システム割り当て ID をロード テスト リソースに追加します。
az load update --name <load-testing-resource-name> --resource-group <group-name> --identity-type SystemAssigned
ARM テンプレートを使用して、Azure リソースのデプロイを自動化できます。 Azure Load Testing で ARM テンプレートを使用する方法の詳細については、「Azure Load Testing ARM リファレンス ドキュメント 」を参照してください。
型 Microsoft.LoadTestService/loadtests
のリソースを作成するときに、システム割り当てマネージド ID を割り当てることができます。 リソース定義の SystemAssigned
値を使用して identity
プロパティを構成します。
"identity": {
"type": "SystemAssigned"
}
システム割り当て ID の種類を追加することで、リソースの ID を作成して管理するように Azure に指示します。 たとえば、Azure ロード テスト リソースは次のようになります。
{
"type": "Microsoft.LoadTestService/loadtests",
"apiVersion": "2021-09-01-preview",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"identity": {
"type": "SystemAssigned"
}
}
リソースの作成が完了すると、リソースに対して次のプロパティが構成されます。
"identity": {
"type": "SystemAssigned",
"tenantId": "00000000-0000-0000-0000-000000000000",
"principalId": "00000000-0000-0000-0000-000000000000"
}
tenantId
プロパティは、マネージド ID が属する Microsoft Entra テナントを識別します。 principalId
は、リソースの新しい ID の一意識別子です。 Microsoft Entra ID 内では、サービス プリンシパルは Azure ロード テスト リソースと同じ名前になります。
ユーザー割り当て ID をロード テスト リソースに割り当てる
ユーザー割り当てマネージド ID を Azure ロード テスト リソースに追加する前に、まずこの ID を Microsoft Entra ID で作成する必要があります。 その後、そのリソース識別子を使用して ID を追加することができます。
複数のユーザー割り当てマネージド ID をリソースに追加できます。 たとえば、複数の Azure リソースにアクセスする必要がある場合は、これらの ID ごとに異なるアクセス許可を付与できます。
「ユーザー割り当てマネージド ID を作成する 」で説明されている手順に従って、ユーザー割り当てマネージド ID を作成します。
Azure portal で Azure ロード テスト リソースに移動します。
左側のウィンドウにある ID を選択します。
[ユーザー割り当て] タブを選択し、[追加] を選択します。
前に作成したマネージド ID を探して選択します。 次に、[追加] を選択して、Azure ロード テスト リソースに追加します。
ユーザー割り当て ID を作成します。
az identity create --resource-group <group-name> --name <identity-name>
--identity-type UserAssigned
を指定して az load update
コマンドを実行して、ユーザー割り当て ID をロード テスト リソースに追加します。
az load update --name <load-testing-resource-name> --resource-group <group-name> --identity-type UserAssigned --user-assigned <identity-id>
Azure ロード テスト リソースを作成するには、ARM テンプレートとリソースの種類 Microsoft.LoadTestService/loadtests
を使用します。 Azure Load Testing で ARM テンプレートを使用する方法の詳細については、「Azure Load Testing ARM リファレンス ドキュメント 」を参照してください。
「ユーザー割り当てマネージド ID を作成する 」で説明されている手順に従って、ユーザー割り当てマネージド ID を作成します。
リソース定義の identity
セクションで、ユーザー割り当てマネージド ID を指定します。
<RESOURCEID>
テキスト プレースホルダーを、ユーザー割り当てのマネージド ID のリソース ID に置き換えます。
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {}
}
}
次のコード スニペットは、ユーザー割り当て ID を使用した Azure Load Testing ARM リソース定義の例を示しています。
{
"type": "Microsoft.LoadTestService/loadtests",
"apiVersion": "2021-09-01-preview",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {}
}
}
Lead Testing リソースが作成されると、Azure により principalId
および clientId
プロパティが出力に提供されます。
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {
"principalId": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000"
}
}
}
principalId
は、Microsoft Entra の管理に使用される ID の一意識別子です。 clientId
は、ランタイム呼び出し中に使用する ID を指定するために使用される、リソースの新しい ID の一意識別子です。
自分のロード テスト リソースからのアクセスを許可するようにターゲット リソースを構成することが必要な場合があります。 たとえば、Azure Key Vault からシークレットまたは証明書を読み取る 場合、または暗号化にカスタマー マネージド キーを使用する 場合は、リソースのマネージド ID を含むアクセス ポリシーも追加する必要があります。 それ以外の場合は、有効なトークンを使用する場合でも、Azure Key Vault への呼び出しは拒否されます。
同様に、サーバー メトリックに不合格条件を設定する 場合は、メトリックをフェッチするメトリック参照 ID を指定する必要があります。 その ID でリソースからメトリックを読み取ることができるように、ターゲット リソースを構成する必要があります。
関連するコンテンツ