💎

一生プレビュー中のAzure Blueprintsについておさらいしてみる

2023/03/02に公開

Azure Blueprints(Preview)

Azureのガバナンス系のサービスとしてAzure Blueprintsというものがあります。これは、管理グループ・サブスクリプションをスコープとし、標準化された環境を一括デプロイするサービスです。ARMテンプレートとよく混同されがちですが、BlueprintsでできることはほとんどARMテンプレートでも可能です。ただ、以下の点でメリットがあります。

  • ARMテンプレートではデプロイしたリソースの追跡ができないが、Blueprintsなら可能
    • Blueprintsでは、リソースのデプロイを「Blueprintsの割り当て」という形で実行します。Blueprintsの割り当て情報はいつでも参照できるため、リソースの追跡が可能となります。
  • デプロイ時のRBACロール付与が可能
    • Blueprintsのアーティファクトとして特定のRBACロールを含めておくと、デプロイ時にそのRBACロールの割り当ても行うことが可能です。スコープの選択も可能です。
  • デプロイ時のポリシー適用が可能
    • アーティファクトとしてAzure Policyを含めておくことで、初回デプロイ時点から満たすべきAzure Policyを強制することが可能となります。

これらのポイントを意識しつつ、久しぶりに触ってみようというのが趣旨になります。

ブループリントの作成

準備

  • ポータルでブループリントと検索
  • 「Azure Blueprints」と検索すると別のサービス?がヒットするため注意
  • 「作成」から作成していく

サンプルの選択

  • 「空白のブループリント」から始めてもいいが、楽したいので「基本ネットワーク(VNET)」を選択
  • どうやらVNET/サブネットとNSGが作成されるARMテンプレートが含まれているブループリント
  • 定義の場所として、サブスクリプションを選択

成果物

  • 「成果物」一覧が開く
    • 成果物=「ブループリントから展開されるアーティファクト一覧」
    • 1つのサブネットを持つVNETのARMテンプレートと、NSGのARMテンプレートがあることが確認できる
  • アーティファクトを追加する
  • RBACロール
    • VNET用のリソースグループレベルでのRBACロールを追加
  • Azure Policy
    • VNET用のリソースグループレベルのAzure Policyを追加
    • 分かり易くタグ関連のビルトインポリシーを選択
  • 編集後
  • 作成したブループリントを発行
    • 発行することで割り当てが可能になる
    • 発行のタイミングでバージョンを設定することが可能

ブループリントの割り当て

割り当て

  • 作成したブループリントを割り当てることにより、アーティファクトのデプロイに進む
  • Azure Blueprintsの「はじめに」から「スコープへの適用」を選択
  • 「スコープ」で定義を保存したサブスクリプションを選択し、先ほど作成したブループリントがあることを確認
  • 右端の「・・・」から「ブループリントの割り当て」を選択

デプロイ時のパラメータ指定

  • アーティファクトのデプロイに際して各種パラメータを指定する
  • Azure BlueprintsによりデプロイしたリソースやRBACを勝手に削除されないようにロックをかけることが可能
  • リソースのパラメータ・RBACの対象プリンシパル・Azure Policyのパラメータを入力
  • 「割り当て」を選択すると、関連リソースのデプロイが開始される

デプロイ内容の確認と追跡

Azure Blueprints画面内から確認

  • 「割り当てられたブループリント」から展開状況の確認が可能
  • 「割り当ての追跡」からも内容確認可能
  • 割り当てをクリックすることで詳細の確認が可能
    • リソースグループおよびリソースが、Azure PolicyとRBACロールの設定とともにデプロイされていることが確認できる

Azureリソース一覧から確認

  • 「bp11-RG」というリソースグループを展開
  • VNETとNSGがデプロイされている
  • 各リソースにタグも付与されている
  • RBACロールもリソースグループレベルで追加されている
  • Azure Blueprintsの特徴として、RBACロールに拒否の割り当てが追加される
    • 詳細についてはこちら。

Azure 拒否割り当てを使用すると、ロールの割り当てでアクセスを許可されている場合であっても、指定した Azure リソース アクションをユーザーが実行できなくなります。

https://learn.microsoft.com/ja-jp/azure/role-based-access-control/deny-assignments-portal

ブループリントの割り当て解除

  • まるっとデプロイした環境を削除したい場合や、Blueprintsの管理下から除外したいときには、割り当て解除をする
  • 割り当て解除をしてもリソースは削除されない

おわり

  • 今回改めて触ってみて、ガバナンスまわりも含めてまるっと標準化環境が用意できるのはかなり便利だと思った
  • ただし、ARMテンプレート化が必須となるため、そのあたりのナレッジの有無も導入のハードルになってくる
GitHubで編集を提案
Microsoft (有志)

Discussion