AZ-104 IDとガバナンスの管理

WEB問題集

AZ104-IDG#1

会社の複数の部門で使用されている Azure サブスクリプション Subscription1 があります。Subscription1 には次の表のリソースが含まれています。

別の管理者が単一の Azure Resource Manager テンプレートを使用して、仮想マシン VM1 と Azure ストレージ アカウント storage2 を展開しました。展開に使用されたテンプレートを表示する必要があります。どのブレードからテンプレートを表示できますか?

ディスカッション 0

正解:B

リソース グループの Deployments (展開) 履歴から過去に使用された ARM テンプレートを確認できます。Azure Portal で RG1 ブレードに移動し、「Deployments」セクションを開けば、該当の展開に使用されたテンプレートを表示・ダウンロードできます。

  • A: VM1 のブレードからは VM 個別の情報は見えるが、展開全体のテンプレートは取得できない。
  • C: storage2 のブレードも同様に個別リソースビューで、テンプレート履歴は持たない。
  • D: container1 は Blob コンテナーで、ARM 展開履歴とは無関係。
AZ104-IDG#2

次の Azure Resource Manager (ARM) テンプレートを開発して、リソース グループを作成し、そのリソース グループに Azure ストレージ アカウントを展開しています。

テンプレートを展開するにはどのコマンドレットを実行すべきですか?

ディスカッション 0

正解:D

このテンプレートは最上位リソースとして Microsoft.Resources/resourceGroups (リソース グループそのもの) を作成しています。リソース グループ自体を作成する操作はサブスクリプション レベルの展開に該当するため、New-AzDeployment (New-AzSubscriptionDeployment の別名) を使用します。

  • A: New-AzResource は個別リソース作成用でテンプレート展開には使えない。
  • B: New-AzResourceGroupDeployment は既存のリソース グループ内への展開用で、リソース グループ自体の作成はできない。
  • C: New-AzTenantDeployment はテナント レベルの展開用で、サブスクリプション内の RG 作成には適さない。
AZ104-IDG#3-1

Azure サブスクリプションに RG1 というリソース グループがあります。template1 という Azure Resource Manager (ARM) テンプレートを使用してリソースを展開する予定です。ソリューションは次の要件を満たす必要があります。

  • 新しいリソースを RG1 に展開する。
  • 新しいリソースを展開する前に RG1 から既存のすべてのリソースを削除する。

コマンドをどのように完成させるべきですか?

コマンド: New-AzResourceGroupDeployment -TemplateUri "https://contoso.com/template1" -TemplateParameterFile params.json [回答選択1] RG1 -Mode [回答選択2]

[回答選択1] (パラメーター):

ディスカッション 0

正解:C

New-AzResourceGroupDeployment コマンドレットで展開先のリソース グループを指定するのは -ResourceGroupName パラメーターです。本問では RG1 を展開先として指定するため -ResourceGroupName RG1 となります。

  • A: -Name は展開自体の名前を指定するもので、リソース グループとは別。
  • B: -QueryString はテンプレート URI に付与するクエリ文字列で、RG 指定ではない。
  • D: -Tag はタグ付け用オプション。

元問題形式: HOTSPOT (ドロップダウン問題) の 1/2。

AZ104-IDG#3-2

前問と同じコマンドの 2 つ目のドロップダウンを選択します。

[回答選択2] (Mode の値):

ディスカッション 0

正解:B

ARM 展開の Complete モードは、リソース グループ内のテンプレートに定義されていない既存のリソースをすべて削除します。要件「新しいリソースを展開する前に RG1 から既存のすべてのリソースを削除する」を満たすのは Complete モードのみです。

  • A: "All" は ARM の有効な Mode 値ではない。有効な値は Incremental と Complete のみ。
  • C: Incremental モードは既存リソースを削除せず、テンプレート内のリソースを追加/更新するだけなので要件を満たさない。

注記: Complete モードは意図しないリソース削除を引き起こすリスクがあるため、本番環境での使用には慎重さが必要です。

元問題形式: HOTSPOT (ドロップダウン問題) の 2/2。

AZ104-IDG#4-1

Azure サブスクリプションには次の表に示すリソース グループが含まれています。

名前ロケーション
RG1East US
RG2West US

次の deploy.json という Azure Resource Manager (ARM) テンプレートを作成します。

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {},
  "resources": [
    {
      "type": "Microsoft.Resources/resourceGroups",
      "apiVersion": "2018-05-01",
      "location": "eastus",
      "name": "[concat('RG', copyIndex())]",
      "copy": {
        "name": "copy",
        "count": 4
      }
    }
  ],
  "outputs": {}
}

次のコマンドレットを実行してテンプレートを展開します。

New-AzSubscriptionDeployment -Location westus -TemplateFile deploy.json

次のステートメントについて、正しければ「はい」、そうでなければ「いいえ」を選択してください。

ステートメント1: コマンドは 4 つの新しいリソース グループを East US に作成する。

ディスカッション 0

正解:B

テンプレートでは copyIndex() を使って 4 つのリソース グループ (RG0, RG1, RG2, RG3) を作成しようとします。しかし、既に RG1 と RG2 が存在するため、展開は RG1, RG2 を上書き (実質的には更新) し、新規作成されるのは RG0 と RG3 の 2 つです。よって「4 つの新しいリソース グループ」ではありません。なお、location は「eastus」で固定されていますが、既存の RG1 (East US)、RG2 (West US) の location を変更することはできないため、上書きは失敗するケースも考えられます。

  • A: 新規 RG は 2 つ (RG0 と RG3) のみ。

元問題形式: HOTSPOT (Yes/No × 3) の 1/3。

AZ104-IDG#4-2

前問と同じ deploy.json とコマンドを参照してください。

ステートメント2: 展開では RG1 の location 設定が変更される。

ディスカッション 0

正解:B

Azure では既存のリソース グループの location を変更することはできません。テンプレートで location を eastus と指定していても、既存の RG1 (East US) はもともと East US のため変更不要で、RG2 (West US) の location を変更しようとすると展開エラーになります。実務上はリソース グループの location プロパティは変更不可です。

  • A: 既存 RG の location は変更できない。

元問題形式: HOTSPOT (Yes/No × 3) の 2/3。

AZ104-IDG#4-3

前問と同じ deploy.json とコマンドを参照してください。

ステートメント3: この展開はサブスクリプション スコープで実行される。

ディスカッション 0

正解:A

コマンド New-AzSubscriptionDeployment (New-AzDeployment の別名) はサブスクリプション スコープの展開を実行します。リソース グループ自体の作成はサブスクリプション レベルの操作のため、テンプレートのトップ レベルに Microsoft.Resources/resourceGroups を定義する場合はこのコマンドが必要です。

  • B: New-AzSubscriptionDeployment はサブスクリプション スコープの展開で確実に正しい。

元問題形式: HOTSPOT (Yes/No × 3) の 3/3。

AZ104-IDG#5

Azure AD テナント contoso.com があります。Azure サブスクリプションには Azure App Service Web アプリ App1 と Azure Key Vault KV1 があります。KV1 には contoso.com のワイルドカード証明書が含まれています。user1@contoso.com というユーザーが App1 および KV1 の Owner ロールに割り当てられています。App1 に KV1 のワイルドカード証明書を使用するように構成する必要があります。最初に何をすべきですか?

ディスカッション 0

正解:A

App Service が Key Vault から証明書を取得するためには、Microsoft Azure App Service サービス プリンシパル に KV1 への Get 権限をアクセス ポリシーで付与する必要があります。これが App Service が Key Vault 証明書を使うための標準的な最初のステップです。

  • B: マネージド ID の割り当ては代替案だが、本問では App Service プリンシパルの方法が一般的な「最初のステップ」として問われている。
  • C: RBAC 認可は選択肢の一つだが、まずアクセス ポリシーの構成が先行の典型手順。
  • D: User1 は既に Owner ロール持ちだが、アプリケーション自体 (App Service) が証明書にアクセスする権限は別途必要。

注記: 現代的にはマネージド ID + RBAC が推奨される構成ですが、本問の examtopics 定説解は A です。

AZ104-IDG#6

Azure サブスクリプションがあります。次の表に示すリソースを展開する予定です。

名前タイプ
IP1Microsoft.Network/publicIPAddresses
NSG1Microsoft.Network/networkSecurityGroups
VNET1Microsoft.Network/virtualNetworks
NIC1Microsoft.Network/networkInterfaces
VM1Microsoft.Compute/virtualMachines

これらのリソースを展開するために使用する単一の Azure Resource Manager (ARM) テンプレートを作成する必要があります。VM1 の dependsOn セクションに追加すべきリソースはどれですか?

ディスカッション 0

正解:B

仮想マシン (VM1) はネットワーク インターフェイス (NIC1) に直接依存します。ARM テンプレートの dependsOn セクションでは、直接参照されるリソースのみを指定すれば十分です。NIC1 は VNET1 / IP1 / NSG1 に依存するため、VM1 の dependsOn は NIC1 のみでよく、間接的な依存は NIC1 の dependsOn を通じて解決されます。

  • A: VNET1 は NIC1 が依存するリソースで、VM1 から直接指定する必要はない。
  • C: IP1 (パブリック IP) は NIC1 にアタッチされるため、VM1 からは間接的依存。
  • D: NSG1 は NIC1 またはサブネットにアタッチされるため、VM1 からは間接的依存。
AZ104-IDG#7

Azure サブスクリプションがあります。次の Template.json という Azure Resource Manager (ARM) テンプレートを作成します。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {},
  "resources": [
    {
      "type": "Microsoft.Resources/resourceGroups",
      "apiVersion": "2022-12-01",
      "location": "eastus",
      "name": "Marketing"
    }
  ],
  "outputs": {}
}

Template.json を展開する必要があります。Azure Cloud Shell からどの PowerShell コマンドレットを実行すべきですか?

ディスカッション 0

正解:A

このテンプレートは最上位リソースとして Microsoft.Resources/resourceGroups (リソース グループ「Marketing」) を定義しているため、サブスクリプション スコープでの展開になります。サブスクリプション スコープの展開には New-AzSubscriptionDeployment (New-AzDeployment の別名) を使用します。

  • B: New-AzManagementGroupDeployment は管理グループ スコープ用。
  • C: New-AzResourceGroupDeployment は既存のリソース グループ内への展開用で、リソース グループ自体の作成はできない。
  • D: New-AzTenantDeployment はテナント スコープ用。