Azure ランディング ゾーン - Bicep モジュールの設計に関する考慮事項
この記事では、「クラウド導入フレームワーク (CAF)」で詳しく説明されているAzure ランディング ゾーンの概念アーキテクチャのコア プラットフォーム機能をデプロイし管理するために使用できる、モジュール化された Azure ランディング ゾーン (ALZ) - Bicep ソリューションの設計上の考慮事項について説明します。
Bicep は、宣言型の構文を使用して Azure リソースをデプロイするドメイン固有言語 (DSL) です。 簡潔な構文、信頼性の高いタイプ セーフ、およびコードの再利用のサポートを備えています。
このアーキテクチャの実装については、GitHub: Azure Landing Zones (ALZ) - Bicep 実装を参照してください。 これを出発点として使用し、実際のニーズに合わせて構成することができます。
注意
ポータル ベース、ARM テンプレート、Terraform モジュールなど、いくつかのデプロイ テクノロジの実装があります。 デプロイ テクノロジの選択は、結果として得られる Azure ランディング ゾーンのデプロイに影響しません。
デザイン
このアーキテクチャでは、Azure Bicep のモジュール性を利用しており、多数のモジュールで構成されています。 各モジュールで、Azure ランディング ゾーンの概念アーキテクチャの 1 つのコア機能がカプセル化されています。 モジュールは個別にデプロイできますが、依存関係があるため注意が必要です。
このアーキテクチャでは、デプロイ エクスペリエンスを簡素化するためにオーケストレーター モジュールを含めることを提案しています。 オーケストレーター モジュールを使用して、モジュールのデプロイを自動化し、さまざまなデプロイ トポロジをカプセル化できます。
モジュール
Bicep の中心となる概念は、モジュールの使用です。 モジュールを使用すると、デプロイを論理グループに編成できます。 モジュールを使用して、デプロイの複雑な詳細をカプセル化することで、Bicep ファイルの読みやすさが向上します。 また、モジュールを異なるデプロイに簡単に再利用することもできます。
再利用できるというモジュールの機能は、ランディング ゾーンの定義とデプロイを行うときに大きな利点となります。 コード内で反復可能で一貫性のある環境が実現するいっぽうで、大規模なデプロイに必要な労力が削減されます。
レイヤーとステージング
モジュール構成に加えて、Bicep ランディング ゾーン アーキテクチャは、レイヤーの概念を使用して構造化されています。 レイヤーは、一緒にデプロイすることを目的とした Bicep モジュールのグループです。 それらのグループは、実装の論理ステージを形成します。
このレイヤー アプローチの利点は、時間をかけて環境に段階的に追加できることです。 たとえば、開始時点では少数のレイヤーで始めることができます。 準備ができたら、後続の段階で残りのレイヤーを追加できます。
モジュールの説明
このセクションでは、このアーキテクチャのコア モジュールの概要について説明します。
レイヤー | モジュール | 説明 | 役に立つリンク |
---|---|---|---|
Core | 管理グループ | 管理グループは、Azure テナントの最上位レベルのリソースです。 管理グループを使用すると、リソースをより簡単に管理できます。 管理グループ レベルでポリシーを適用でき、そのポリシーが下位レベルのリソースに継承されます。 具体的には、管理グループ レベルで次の項目を適用できます。適用した項目は、管理グループの下のサブスクリプションによって継承されます。
このモジュールでは、Azure ランディング ゾーンの概念アーキテクチャで定義されている管理グループ階層をデプロイします。 |
|
Core | カスタム ポリシー定義 | DeployIfNotExists (DINE) ポリシーまたは Modify ポリシーは、ランディング ゾーンを構成するサブスクリプションとリソースが確実に準拠しているようにするのに役立ちます。 このポリシーにより、ランディング ゾーンの管理の負担も軽減されます。 このモジュールでは、カスタム ポリシー定義を管理グループにデプロイします。 すべてのお客様が DINE ポリシーまたは Modify ポリシーを使用できるわけではありません。 お客様がこのケースに該当する場合、「カスタム ポリシーに関する CAF ガイダンス」でガイダンスが提供されています。 |
|
Core | カスタム ロールの定義 | ロールベースのアクセス制御 (RBAC) により、システム内でのユーザー権限の管理が簡略化されます。 個別のユーザーの権限を管理するのではなく、システムのさまざまなロールに必要な権限を決定します。 Azure RBAC には、いくつかの組み込みロールがあります。 カスタム ロール定義を使用すると、環境に合わせてカスタム ロールを作成できます。 このモジュールでは、カスタム ロール定義をデプロイします。 このモジュールは、「Azure ロールベースのアクセス制御に関する CAF ガイダンス」に従う必要があります。 |
|
管理 | ログ記録、Automation & Sentinel | Azure Monitor、Azure Automation、Microsoft Sentinel を使用すると、インフラストラクチャとワークロードを監視して管理できます。 Azure Monitor は、環境からのテレメトリを収集、分析して対応できるようにするソリューションです。 Microsoft Sentinel は、クラウドネイティブのセキュリティ情報イベント管理 (SIEM) です。 これにより次の操作を行うことができます。
Azure Automation はクラウドベースの自動化システムです。 次の情報が含まれます。
このモジュールでは、環境に対する脅威の監視、管理、アクセスに必要なツールをデプロイします。 これらのツールには、Azure Monitor、Azure Automation、Microsoft Sentinel が含まれている必要があります。 |
|
接続 | ネットワーク | ネットワーク トポロジは、Azure ランディング ゾーンのデプロイにおける重要な考慮事項です。 CAF では、次の 2 つのコア ネットワーク アプローチに重点を置いています。
これらのモジュールは、選択したネットワーク トポロジをデプロイします。 |
|
ID | ロールの割り当て | ID およびアクセス管理 (IAM) は、クラウド コンピューティングの重要なセキュリティ境界です。 Azure RBAC を使用すると、セキュリティ プリンシパルに合わせた組み込みロールまたはカスタム ロール定義のロール割り当てを実行できます。 このモジュールでは、管理グループとサブスクリプション全体で、サービス プリンシパル、マネージド ID、またはセキュリティ グループへのロールの割り当てをデプロイします。 このモジュールは、「Azure ID とアクセス管理に関する CAF ガイダンス」に従う必要があります。 |
|
Core | サブスクリプションの配置 | 管理グループに割り当てられているサブスクリプションは、次を継承します。
このモジュールでは、サブスクリプションを適切な管理グループの下に移動します。 |
|
Core | 組み込みポリシーとカスタム ポリシーの割り当て | このモジュールでは、管理グループに既定の Azure ランディング ゾーン Azure Policy 割り当てをデプロイします。 また、ポリシーによって作成されたシステム割り当てマネージド ID のロールの割り当てが作成されます。 | |
管理 | Orchestrator モジュール | Orchestrator モジュールを使用すると、デプロイ エクスペリエンスを大幅に向上させることができます。 これらのモジュールは、複数のモジュールのデプロイを 1 つのモジュールにカプセル化します。 これにより、複雑さがエンド ユーザーからは見えなくなります。 |
Bicep 実装のカスタマイズ
クラウド導入フレームワークの一部として提供される Azure ランディング ゾーンの実装は、さまざまな要件とユース ケースに適しています。 ただし、多くの場合、特定のビジネス ニーズを満たすためにカスタマイズが必要なシナリオがあります。
ヒント
詳細については、「要件を満たすように Azure ランディング ゾーンのアーキテクチャを調整する」をご覧ください。
Bicep Azure ランディング ゾーンの実装は、カスタマイズしたデプロイの基礎として使用できます。 これにより、既製のオプションが除外される特定の必要な変更のために、ゼロから始める必要性がなく、実装を迅速に行う方法が提供されます。
モジュールのカスタマイズに関する情報は、GitHub リポジトリ wiki の「GitHub: Azure ランディング ゾーン Bicep - Wiki - コンシューマー ガイド」で入手できます。 これを出発点として使用し、実際のニーズに合わせて構成することができます。