Azure ランディング ゾーン - Bicep モジュールの設計に関する考慮事項
この記事では、「クラウド導入フレームワーク (CAF)」で詳しく説明されているAzure ランディング ゾーンの概念アーキテクチャのコア プラットフォーム機能をデプロイし管理するために使用できる、モジュール化された Azure ランディング ゾーン (ALZ) - Bicep ソリューションの設計上の考慮事項について説明します。
Bicep は、宣言型の構文を使用して Azure リソースをデプロイするドメイン固有言語 (DSL) です。 簡潔な構文、信頼性の高いタイプ セーフ、およびコードの再利用のサポートを備えています。
このアーキテクチャの実装については、GitHub: Azure Landing Zones (ALZ) - Bicep 実装を参照してください。 これを出発点として使用し、実際のニーズに合わせて構成することができます。
注意
ポータル ベース、ARM テンプレート、Terraform モジュールなど、いくつかのデプロイ テクノロジの実装があります。 デプロイ テクノロジの選択は、結果として得られる Azure ランディング ゾーンのデプロイに影響しません。
ALZ Bicep アクセラレータ
ALZ Bicep アクセラレータを使用した ALZ Bicep モジュールの実装、自動化、保守に関するステップ バイ ステップのガイダンスを確認できます。
ALZ Bicep アクセラレータ フレームワークは、本格的な CI/CD パイプラインを使用した ALZ Bicep のオンボードとデプロイのためのサポート、GitHub Actions と Azure DevOps Pipelines のサポート、新しい ALZ Bicep リリースとの同期を維持しカスタム モジュールを変更または追加するための専用フレームワークを提供するために開発されたもので、Bicep モジュールのリンティングと検証のためのブランチ戦略のガイダンスと pull request パイプラインを提供します。
デザイン
このアーキテクチャでは、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 | 組み込みポリシーとカスタム ポリシーの割り当て | このモジュールでは、管理グループに既定の Azure ランディング ゾーン Azure Policy 割り当てをデプロイします。 また、ポリシーによって作成されたシステム割り当てマネージド ID のロールの割り当てが作成されます。 | |
管理 | Orchestrator モジュール | Orchestrator モジュールを使用すると、デプロイ エクスペリエンスを大幅に向上させることができます。 これらのモジュールは、複数のモジュールのデプロイを 1 つのモジュールにカプセル化します。 これにより、複雑さがエンド ユーザーからは見えなくなります。 |
Bicep 実装のカスタマイズ
クラウド導入フレームワークの一部として提供される Azure ランディング ゾーンの実装は、さまざまな要件とユース ケースに適しています。 ただし、多くの場合、特定のビジネス ニーズを満たすためにカスタマイズが必要なシナリオがあります。
ヒント
詳細については、「要件を満たすように Azure ランディング ゾーンのアーキテクチャを調整する」をご覧ください。
プラットフォーム ランディング ゾーンが実装されたら、次のステップはアプリケーション ランディング ゾーンのデプロイです。これにより、landing zones
管理グループの下にあるアプリケーション チームは、中央 IT または PlatformOps 管理者が必要とするガードレールを使用できるようになります。 corp
管理グループは企業接続アプリケーションを対象としています。一方、online
管理グループは主に公開されているアプリケーションを対象としていますが、一部のシナリオでは、ハブ ネットワーク経由で企業アプリケーションに接続する場合があります。
Bicep Azure ランディング ゾーンの実装は、カスタマイズしたデプロイの基礎として使用できます。 これにより、既製のオプションが除外される特定の必要な変更のために、ゼロから始める必要性がなく、実装を迅速に行う方法が提供されます。
モジュールのカスタマイズに関する情報は、GitHub リポジトリ wiki の「GitHub: Azure ランディング ゾーン Bicep - Wiki - コンシューマー ガイド」で入手できます。 これを出発点として使用し、実際のニーズに合わせて構成することができます。