Microsoft AZ-104: Azure サブスクリプション、ガバナンス、コスト管理 — 学習ガイド
こちらの一部です: Microsoft Azure Administrator Associate AZ-104 — 学習ガイド. 検証済みの解答で練習: Microsoft試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
概要
Azureのサブスクリプション、ガバナンス、コスト管理は、クラウドリソースを大規模に構成、保護、標準化し、支払いを行う方法を定義します。優れた設計は、組織階層(管理グループとサブスクリプション)から始まり、最小権限アクセス(RBAC)を適用し、標準とコンプライアンス(Policy、Blueprints、ロック、タグ)を強制し、継続的に支出を最適化(Cost ManagementとAdvisor)します。Azure Resource Manager (ARM) は、デプロイ、グループ化、ライフサイクル操作の基盤となり、標準と統制がルート管理グループから個々のリソースまで一貫して適用されるようにします。
組織構造とアクセス制御
管理グループは、1つ以上のサブスクリプションを単一のルート管理グループの下に整理するための最上位の構成要素です。管理グループは、(ルートを除いて)最大6レベルの深さまでネストでき、組織や環境の境界(例:Corp > Prod/NonProd > Business Units)を反映させることができます。管理グループに適用されたRBACのロール割り当てとAzure Policyの割り当ては、下位のスコープで明示的に上書きされない限り、すべての子管理グループ、サブスクリプション、リソースグループ、リソースに継承されます。この継承は、標準を一貫して強制する上で中心的な役割を果たします。例えば、Production管理グループでの「パブリックストレージを拒否する」ポリシーは、サブスクリプションごとの設定なしに、すべての本番環境サブスクリプションに適用されます。
サブスクリプションは、課金とデプロイの分離境界です。一般的な種類には、従量課金、Enterprise Agreement (EA)、Microsoft Customer Agreement (MCA)、CSP、およびVisual Studioサブスクリプションなどのクレジットベースのオファーが含まれます。サブスクリプションは、支出、クォータ、RBACスコープを分離し、課金と予算の基本単位となります。ライフサイクルの移行(例:開発テナントから本番テナントへ、組織再編)の際には、サブスクリプション間でリソースを移動することがしばしば必要になります。リソースの移動サポートは、プロバイダーとリソースに固有です。VMs、マネージドディスク、ストレージアカウント、仮想ネットワーク、さらにはRecovery ServicesコンテナーなどのARMベースのリソースは、通常、制約付きで移動できます。前提条件には、ソースとターゲットが同じAzure Active Directoryテナントに存在すること(テナント間の移動は制限されます)、両方のサブスクリプションでリソースプロバイダーが登録されていること、互換性のあるリージョン/SKUであること、およびブロックするロック/ポリシーがないことが含まれます。移動中、一部のリソースで一時的な利用不可が発生することを想定してください。ステートフルなサービスについては、メンテナンスウィンドウを計画してください。クラシック (ASM) リソースは移動できません。ポータルの「移動」操作またはリソースプロバイダーのドキュメントを使用して、サポート状況を常に確認してください。
Azure RBACは、特定のスコープでのロール割り当てを使用して、きめ細かな最小権限アクセスを提供します。スコープは、管理グループ、サブスクリプション、リソースグループ、または個々のリソースにすることができ、割り当ては下位に継承されます。中心となる組み込みロールは次のとおりです。
- Owner: ロールの割り当てを含む、すべてのリソースへのフルアクセス。
- Contributor: リソースに対する完全な作成/更新/削除権限。ただし、ロールを割り当てる権限はありません。
- Reader: 読み取り専用アクセス。 カスタムロールでは、許可されるActionsとDataActionsを指定し、NotActionsとNotDataActionsを除外できます。これらは、意図した割り当てスコープまたはそれより上位で定義されます。拒否割り当て(Blueprintsなどの特定のサービスやロックによって作成される)は、許可割り当てよりも優先され、意図しない権限昇格を防ぎます。
ガバナンス、コンプライアンス、リソースのガードレール
Azure Policy は、リソースの作成/更新時および定期的なコンプライアンススキャン時にリソースの状態を評価します。ポリシー定義は、ルール(オプションのパラメーター付き)と効果を表現します。関連する定義をイニシアチブにグループ化することで、大規模な割り当てを簡素化します。割り当ては、定義またはイニシアチブをスコープ(管理グループ、サブスクリプション、リソースグループ、またはリソース)に、パラメーター値を指定してアタッチします。また、特定の効果については、修復のためのマネージド ID も使用します。習得すべき主要な効果は次のとおりです。
- Deny: 準拠していない作成/更新操作をリクエスト時にブロックします。
- Audit: 操作は許可しますが、レポート作成のために非準拠状態を記録します。
- DeployIfNotExists: 関連するリソースや設定が欠落している場合、テンプレートのデプロイをトリガーしてターゲットを準拠状態にします(例:診断設定やポリシー割り当てのデプロイ)。
その他の重要な効果には、Append(書き込み時にタグなどのフィールドを追加)や Modify(プロパティにパッチを適用)があります。ポリシーは、許可された場所、SKU の制約、必須タグ、診断設定、暗号化標準を強制できます。例えば、Azure SQL Server の場所を制限することで、承認されたリージョンまたはリソースグループでのみデプロイが行われるようにします。
Azure Blueprints は、アーティファクト(ポリシー割り当て、ロール割り当て、ARM テンプレート、リソースグループ宣言)をバージョン管理されたブループリントに組み合わせることで、コードとしてのガバナンス (governance-as-code) をパッケージ化します。ブループリントをサブスクリプションや管理グループに割り当てることで、環境を一貫してスタンプ(構築)します。ブループリントの割り当てでは、DoNotDelete や ReadOnly などのモードを持つアーティファクトレベルのロックを適用して、デプロイされたリソースを構成ドリフトから保護できます。Blueprints を使用して、必須の統制とベースラインインフラストラクチャを備えた新しいサブスクリプションをブートストラップします。
リソースロックは、偶発的な変更に対する最後の防衛線を提供します。CanNotDelete を適用すると、更新は許可しつつ削除を防ぎます。ReadOnly を適用すると、書き込み操作と削除操作の両方をブロックします。ロックは上位のスコープから継承されるため、リソースグループに対する ReadOnly ロックは、そこに含まれるすべてのリソースに影響します(例:VM の停止/起動は書き込み操作を実行するため失敗します)。ロックは RBAC アクセス許可を上書きします。所有者 (Owner) であっても、まずロックを解除しない限り、ロックされたリソースを削除することはできません。
タグは、リソースグループやリソースに付与されるキーと値のペアで、ワークロード(部門、環境、コストセンターなど)を分類するために使用します。タグの継承は自動的には行われません。すべてのリソースにタグを保証するには、Azure Policy (Append/Modify) を使用して、作成/更新時にリソースグループからタグを強制または継承させます。タグは Cost Management におけるタグベースのコストレポートを駆動し、部門への正確なチャージバックを可能にします。仮想マシンのような個々のリソースを部門に関連付けるには、各 VM に直接タグを適用します。
コスト管理と最適化
Azure Cost Management + Billing は、予算、コスト分析、エクスポート、アラート機能を提供します。予算はスコープ(サブスクリプションまたはリソースグループ)で定義され、リソースグループ、サービス、またはタグでフィルターできます。しきい値(例:50%、80%、100%)を設定してアクション グループ経由でアラートを送信し、オプションで自動化(Logic App、Function)をトリガーして重要でないワークロードをスケールダウンまたはシャットオフできます。ただし、予算自体は支出を強制しません。コスト分析では、時間、リソース、測定単位、リソースグループ、サブスクリプション、タグでピボット分析を行い、コストの要因と傾向を理解できます。BI ツールに取り込むために、ストレージへのエクスポートをスケジュールすることも可能です。使用制限はクレジットベースのプラン(例:無料試用版、Visual Studio)で利用でき、上限に達すると、それ以上の課金を防ぐためにサブスクリプションが無効状態になります。使用制限は、Pay-As-You-Go やほとんどの EA/MCA プランではサポートされていません。代わりに予算と自動化を使用してください。
Azure Advisor は、リソースを継続的に評価し、コスト、セキュリティ、信頼性、パフォーマンス、オペレーショナル エクセレンスの各分野にわたって、実用的な推奨事項を生成します。コストに関する推奨事項には、十分に活用されていない VM の適切なサイズ設定 (rightsizing) やシャットダウン、予約または節約プランの購入、アイドル状態のパブリック IP やディスクの削除などが含まれます。信頼性には、可用性セット/ゾーンやバックアップ構成が含まれます。パフォーマンスは、コンピューティング/ストレージの最適化をカバーします。セキュリティは Defender for Cloud と統合されています。オペレーショナル エクセレンスは、ベストプラクティス構成を強調します。Advisor Score を使用して進捗を追跡し、必要に応じて推奨事項をバックログや自動修復に統合します。
Azure Resource Managerによるデプロイとライフサイクル
ARMはAzureのコントロールプレーンであり、宣言的でべき等なデプロイと一貫した管理を可能にします。リソースグループは、ライフサイクルとRBACの境界を定める論理的なコンテナーです。ライフサイクル、アクセス許可、場所の依存関係を共有するリソースをグループ化します。リソースグループスコープでのRBACとポリシーの割り当ては、そこに含まれるすべてのリソースを管理し、また、グループレベルのロックとタグは、ポリシーやリソースレベルの操作によって上書きされない限り継承されます。
ARMテンプレート(および上位レベル言語としてのBicep)は、リソース、パラメーター、変数、出力、および依存関係を定義します。これにより、反復可能なデプロイが可能になり、ガバナンスアーティファクト(例:ポリシー、ロール割り当て)とワークロードが確実にまとめて適用されます。テンプレートスペックを使用して、組織全体でテンプレートをバージョン管理し、共有します。デプロイモードは重要です。
- 増分(Incremental): テンプレート内のリソースを作成/更新します。テンプレートにない既存のリソースは削除しません。
- 完全(Complete): デプロイ後、テンプレートで定義されていないターゲットスコープ内のリソースを削除します。リソースグループ内で厳密な望ましい状態を強制するために、注意して使用してください。 デプロイ履歴は、リソースグループ、サブスクリプション、または管理グループによってスコープが設定されます。単一のテンプレートによって複数のリソースがデプロイされた場合、ターゲットスコープ(一般的にはリソースグループ)の「デプロイ」ブレードからデプロイとそのテンプレートを表示して、変更を監査し、トラブルシューティングを行います。
実践的な問題シナリオ
Starbucksが地域チェーンを買収し、3つの新しいサブスクリプションをオンボードする必要があります。その際、グローバルなセキュリティポリシーを強制し、部門レベルのチャージバックを可能にし、いくつかの共有サービスをサービス中断なしに統合された「Corp-IT」サブスクリプションに移行する必要があります。
- 管理グループ階層を構築する
- アクション: ルートに合わせた階層
Starbucks > Prod/NonProd > BusinessUnits (Retail, SupplyChain, CorpIT)を作成します。 - 理由: 管理グループは階層的なRBACとポリシーの継承を提供するため、グローバルな統制(例:セキュリティベースライン)がすべての新しいサブスクリプションに自動的に適用されます。
- RBACでベースラインアクセスを設定する
- アクション:
BusinessUnitsレベルで、監査チームに閲覧者(Reader)を、CorpITの中央プラットフォームチームに所有者(Owner)を、委任された各BUの管理者にそれぞれのスコープで共同作成者(Contributor)を割り当てます。Microsoft.Resources/tags/writeを許可するカスタムの「タグ編集者(Tag-Editor)」ロールを作成します。 - 理由: 適切なスコープでの最小権限の原則により、BUの自律性を確保しつつ、権限の過剰な付与を防ぎます。カスタムロールを使用することで、タグのメンテナンスのために完全な書き込み権限を付与することを回避できます。
- PolicyとBlueprintsを使用してガバナンスを強制する
- アクション: 許可された場所、必須タグ(CostCenter, Department, Environment)、主要サービスの診断設定、ストレージに対する「パブリックアクセスを拒否する」といったポリシーを含むイニシアチブを作成します。それをAzure Blueprintにパッケージ化し、アーティファクトとしてイニシアチブの割り当て、RBACロールの割り当て、共有Log AnalyticsワークスペースとDDoSプラン用のARMテンプレート、および標準的なリソースグループのレイアウトを含めます。ベースラインリソースに
DoNotDeleteロックをかけて、このブループリントを各新しいサブスクリプションに割り当てます。 - 理由: Blueprintsは、偶発的な削除を防ぐためのロックを備えた、バージョン管理された反復可能なランディングゾーンを提供します。Policyは、すべてのリソースが作成時に準拠していることを保証し、
DeployIfNotExistsを介して構成のドリフトを修正します。
- タグを適用し、継承を保証する
- アクション:
Modifyポリシーを使用してリソースグループからタグを継承し、Appendポリシーを使用してリソースの作成/更新時に不足しているタグを追加します。CostCenterの値として、Starbucksの財務システムにマッピングされる値を要求します。 - 理由: ネイティブな継承は自動的には行われません。Policyを使用することで、すべてのリソースがタグベースのコストレポートに必要なメタデータを確実に持つようになります。
- Cost Managementとアラートを設定する
- アクション: 各サブスクリプションおよび重要なリソースグループのスコープで予算を作成し、必要に応じてタグでフィルタリングします。50/80/100%のしきい値でアラートを設定し、BUのリーダーに通知し、オプションで開発/テストリソースをスケールダウンするLogic Appをトリガーするアクショングループに送信します。タグ別のコスト分析ダッシュボードを構成し、日次でストレージにエクスポートします。
- 理由: 予算とアラートは早期警告を提供し、ほぼリアルタイムの是正措置をトリガーします。タグによるピボット分析は、正確なチャージバックを可能にします。
- サブスクリプション間で共有サービスを安全に移行する
- アクション: ターゲットリソース(VM、マネージドディスク、VNet、ストレージ、Recovery Servicesコンテナー)の移動サポートを検証します。ブロッキングロックを解除し、ソース/ターゲットでリソースプロバイダーが登録されていることを確認し、リージョン/SKUの互換性を確認し、メンテナンスウィンドウをスケジュールします。リソースグループスコープから移動操作を使用してCorp-ITサブスクリプションに移動し、移動後に診断設定とポリシーを再検証します。
- 理由: リソースグループの境界で移動することで、依存関係が維持され、ダウンタイムが最小限に抑えられます。事前チェックにより、ポリシーやプロバイダーの不一致による移動の失敗を回避できます。
- ロックで重要なリソースを保護する
- アクション: 基盤となるネットワークおよび監視リソースに
CanNotDeleteを適用し、ゴールデンイメージのリソースグループにReadOnlyを適用します。 - 理由: ロックはRBACを上書きして、ベースライン資産の偶発的な削除や変更を防ぎつつ、他の場所での通常の操作は許可します。
- Advisorで継続的に最適化する
- アクション: Advisorの推奨事項を毎週レビューします。コストに関する推奨事項を受け入れ、十分に活用されていないVMのサイズを適正化し、安定したワークロードのために予約を購入します。Advisorスコアで進捗を追跡します。
- 理由: Advisorは、コスト、セキュリティ、信頼性、パフォーマンス、オペレーショナルエクセレンスにわたる継続的な最適化を運用可能にし、初期デプロイ後もガバナンスを維持します。
← Azure Active Directory と ID 管理 · すべてのドメイン · Azure 仮想マシンとコンピューティング →
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →