BicepでMicrosoft Entra ID上のリソースも作成可能に!

BicepでMicrosoft Entra ID上のリソースも作成可能に! この記事の内容 BicepのテンプレートでMicrosoft Entra ID(旧Azure AD)リソースが正式サポート(GA)されました 「Microsoft Graph Bicep Extension」という仕組みにより、グループやアプリケーション登録などをBicepで宣言的に管理できます 従来は必要だったPowerShellスクリプトとの組み合わせが不要になり、構成管理を一元化できます GitHub Actionsを使ったAzureデプロイなど、実際のユースケースで威力を発揮します 今後はMicrosoft 365・Intune・Exchange Onlineなど、さらに多くのリソースへの対応拡張が期待されています Bicepとは?改めておさらい BicepはMicrosoftが提供するInfrastructure as Code(IaC)ツールです。Azureリソースの構成を宣言的に記述し、テンプレートとして管理・デプロイできる仕組みを提供しています。 これまでBicepは主にAzureリソースマネージャー(ARM)リソースを対象としていましたが、今回のアップデートからMicrosoft Graph API経由でMicrosoft Entra ID(旧Azure AD)リソースも扱えるようになりました。 これまでの課題 AzureリソースとMicrosoft Entra IDリソースはデプロイ方法が異なっており、組み合わせた構成を管理するのに手間がかかっていました。 例えば、WebアプリケーションをAzureにデプロイしてEntra ID認証を利用しようとすると、「アプリケーション登録」や「グループ」も合わせて作成する必要があります。しかしBicepだけではこれらを作成できないため、PowerShellスクリプト等で個別に作成し、そのIDをBicepテンプレートに渡すという二段構えの対応が必要でした。 新機能「Microsoft Graph Bicep Extension」の概要 今回のアップデートで追加された機能は Microsoft Graph Bicep Extension と呼ばれています。Bicepテンプレート内にEntra IDリソースを記述することで、従来のAzureリソースと同様の方法でデプロイできます。 対応しているリソースの例は以下の通りです。 Microsoft.Graph/groups(グループ) Microsoft.Graph/applications(アプリケーション登録) デプロイプロセスは従来のBicepと同じく、Azure CLIやPowerShellを使います。デプロイメントエンジンがテンプレートを処理する際、リソースごとにAzureリソースかMicrosoft Graph経由のEntra IDリソースかを自動的に振り分けて作成してくれます。 これにより、以下のような構成がBicepテンプレート1つで完結するようになりました。 Microsoft Entraのグループ作成 アプリケーション登録 グループへのメンバー追加 具体的な利用シナリオ:GitHub ActionsでのWebアプリ展開 新機能が特に威力を発揮するユースケースとして、GitHub Actionsを利用してAzure App ServiceにWebアプリを展開するケースを見てみましょう。 これまでの手順 従来は、GitHub ActionsからAzureリソースにアクセスするために以下の作業を手動で行う必要がありました。 Entra IDアプリケーション(サービスプリンシパル)を手動で作成 クライアントシークレットを発行 シークレットやアプリケーションIDをGitHubのSecretsに登録 Bicep新機能を使った手順 Microsoft Graph Bicep Extensionを活用すると、以下の構成をBicepテンプレート内で一括定義できます。 ...

August 3, 2025 · 1 min · 胡田昌彦

Azureポータルから既存リソースをTerraformでエクスポート可能に!

Azureポータルから既存リソースをTerraformでエクスポート可能に! この記事の内容 AzureポータルからTerraformコードをエクスポートできる新機能(パブリックプレビュー)が発表されました 対象は単一リソースからリソースグループ全体まで対応しており、既存環境のIaC化に活用できます エクスポート時に azurerm プロバイダーと AzApi プロバイダーのどちらかを選択できます 利用前に Microsoft.Terraform リソースプロバイダーをサブスクリプションへ登録する必要があります パブリックプレビュー段階のため、環境によってはエラーが発生する場合があります はじめに Microsoftより「Announcing Public Preview: Terraform Export from the Azure Portal」というアナウンスが公開されました。このアップデートにより、Azureポータルから既存のリソースをTerraform形式でエクスポートできるようになりました。Terraformをすでに利用している方にとっては、待望の機能と言えるでしょう。 TerraformとInfrastructure as Code(IaC) Terraformは、インフラ構成をコードで管理するツール(Infrastructure as Code: IaC)として、非常に高い人気を誇ります。 AzureにはネイティブなIaCツールとして、ARMテンプレートや、それを簡易化したBicepが存在します。一方でTerraformは、AzureだけでなくAWSやGCPなど、マルチクラウド環境でも統一して利用できる汎用性の高さが最大の魅力です。 インフラをコードで管理することで、手動での設定ミスを防ぎ、構成のバージョン管理や再利用が容易になります。設計書と実際の環境の乖離を防ぎ、インフラ管理の効率性と信頼性を大幅に向上させることができます。 既存リソースのエクスポート機能が役立つシナリオ この新機能が特に役立つのは、「既存のAzureリソースをTerraform管理下に移行したい」というシナリオです。 すでに存在するリソースをTerraformのコード(HCL)でどのように表現すればよいかを理解するのは、容易ではありません。しかし、このエクスポート機能を使えば、単一のリソースからリソースグループ全体まで、対象リソースがTerraformでどのように記述されるかを迅速に確認できます。 2つのTerraformプロバイダー TerraformでAzureリソースを扱う際には、主に2つの「プロバイダー」が存在します。エクスポート時にはどちらを使用するかを選択できます。 azurerm プロバイダー Terraform向けに公式に整備された主流のプロバイダーです 使いやすく設計されており、多くのリソースに対応しています ただし、Azureの新サービスや新機能への対応が遅れる場合があります。最新リソースではまだサポートされていないケースがあります AzApi プロバイダー AzureのREST APIを直接操作する仕組みのプロバイダーです REST APIとして公開されている機能であれば、原則としてすべて対応可能で、最新機能もすぐに利用できます 一方で、APIを直接扱うため azurerm に比べて記述が複雑になる傾向があります Terraformエクスポート機能の使い方 前提条件:リソースプロバイダーの登録 この機能を利用するには、まずサブスクリプションに Microsoft.Terraform リソースプロバイダーを登録する必要があります。 Azure CLIで登録する場合: az provider register --namespace Microsoft.Terraform Azureポータルで登録する場合: 対象のサブスクリプションに移動します [設定] > [リソースプロバイダー] を選択します Microsoft.Terraform を検索します 状態が「未登録(NotRegistered)」の場合は選択して [登録] をクリックします エクスポートの手順 エクスポートしたいリソースが含まれるリソースグループに移動します [オートメーション] > [テンプレートのエクスポート] を選択します 上部のタブから [Terraform] を選択します プロバイダー(azurerm または AzApi)を選択すると、Terraformコードが生成されます 実際に試してみた結果 実際にこの機能を試してみました。 ...

May 3, 2025 · 1 min · 胡田昌彦