クラウドエンジニアブログ

Azure Governance を使ってアジリティとガバナンスを両立させる

椎熊 裕一

椎熊 裕一

はじめに

みなさん、こんにちは。クラウドアーキテクトの椎熊です。

今回はパブリッククラウド利用におけるガバナンスについて考えたいと思います。

パブリッククラウドを利用するメリットのひとつとして、アジリティ(俊敏性)があります。
数クリックでサーバーがデプロイされ、すぐに利用することができます。
必要なときに必要な分だけサーバーが利用できるということで、多くの企業で Azure や AWS などのパブリッククラウド利用が活発になってきている中、パブリッククラウド利用における全社的なガバナンス整備も急務となっております。
非 IT 部門によって自由にリソースを使われてしまった結果、想定より高額な利用料金を請求されてしまったケースや、十分なセキュリティ対策が施されず外部から攻撃を受けてしまったケースなどなど。
ガバナンスが効いていない状態ですと、いわゆる野良クラウドのような状態になってしまうのは、容易に想像がつくかと思います。
ですので、手遅れになる前にしっかりとルールを決めることが重要となります。

では、そのルールを Azure 上に実装し、確実に運用し、かつクラウドのメリットであるアジリティを損なわせないようにするには、どのようにすればよいのでしょうか?
申請書ベースで、人手をかけてやりますか?
そういった課題をスマートに解決してくれるのが、今回ご紹介する Azure Governance です。

Azure Governance とは

Azure Governance とは以下サービスの総称であり、概念です。
ですので、Azure Governance というサービスは存在しません。

  • Azure Policy
  • Azure Blueprints
  • Azure 管理グループ
  • Azure Resource Graph

各サービスの概要は以下のとおりです。
  • Azure Policy
    Azure Policy は Azure Governance における中核的なサービスです。
    Azure Policy を利用することによって、Azure 利用におけるポリシー(ルール)を定義することができます。
    これにより意図しないリソースの作成を防ぐことなどができます。
    例えば、東日本リージョンしかリソースを作成できないようにしたり、特定の NSG がすべてのサブネットで使用されることを指定したりすることができます。
  • Azure Blueprints
    Azure Blueprints は、あらかじめサブスクリプション作成時に必須となる、ポリシー、ロールの割り当てやリソースなどを事前に標準的なテンプレートととして定義することができます。
    これにより迅速なサブスクリプションの作成ができるようになります。
  • Azure 管理グループ
    Azure 管理グループは、複数サブスクリプションをグループ化したり、階層化させたりすることができます。
    管理グループは、Azure Policy や Azure Blueprints と組み合わせて利用します。
    これにより、複数サブスクリプションを簡素かつ効率的に管理することができます。
  • Azure Resource Graph
    Azure Resource Graph は、すべてのサブスクリプションおよび管理グループに渡るリソースを検索することができます。
    これにより、ガバナンスの要件に基づいてリソースを検索することができます。
    例えば、OS 別に仮想マシンの数を一覧表示したり、特定のタグを持つ仮想マシンを一覧表示したりすることができます。

上記の Azure Governance の各サービスを組み合わせて使い、例えば、Azure Policy で Azure 利用におけるポリシーを定義し、Azure Blueprints でリソースへのポリシーの適用を自動化することができます。
利用するにつれ、サブスクリプションが多くなってきたら、同じポリシーのサブスクリプションを1つの管理グループにまとめると管理を簡素にすることができます。
また、増えすぎたリソースは、Azure Resource Graph を使うと容易に一覧表示できますので、棚卸などに活用できそうですね。

そして、Azure Governance のサービス群はすべて無料で使えます!

最新の情報は以下を参照いただければと思います。
「Azure の管理 – ガバナンス」
https://docs.microsoft.com/ja-jp/azure/governance/


実際に使ってみた

ここからは Azure Governance の代表的な機能である Azure Policy を実際に使ってみます。
ビルトインのポリシーがあらかじめ用意されていますので、今回はそれを使ってポリシーをリソースグループに割り当てて、動作を確認します。

手順は以下のとおりです。

  1. ポリシーを定義する
  2. ポリシーを割り当てる
  3. 動作を確認する

それでは実際にやってみましょう。


1.ポリシーを定義する

[すべてのサービス] – [ポリシー] を選択します。

[すべてのサービス] – [ポリシー]

[定義] を選択します。

[定義]

今回は、ビルトインで用意されているポリシーの中から下の方にある [許可されている場所] を選択します。

[許可されている場所]

ポリシーは JSON 形式で定義されています。
この内容をコピーしてカスタムのポリシーを作成することもできます。
今回はそのまま [割り当て] を選択します。

[割り当て]

2.ポリシーを割り当てる

ポリシーの割り当て画面が開きます。
まずは、スコープを選択します。
右の方にある […] を選択します。

ポリシーの割り当て[…]

ポリシーを適用させたい任意のサブスクリプションおよびリソースグループを選択し、下部の [選択] を選択します。

サブスクリプションおよびリソースグループを選択

[パラメーター] のプルダウンより、リソースを作成できる場所を指定します。
今回は [東日本] としました。
パラメーターを選択しましたら、[割り当て] を選択します。

パラメーターの選択

3.動作を確認する

それでは動作を確認します。
仮想マシンを、ポリシーが割り当てられているリソースグループに作成しようとすると、以下のとおり仮想マシンの作成の検証時に失敗します。
[検証に失敗しました。詳細を表示するには、ここをクリックしてください。] を選択します。
(ポリシーが有効になるまで時間がかかる場合があります。検証に成功した場合は少し時間を空けてみてください)

動作確認

すると、今回作成したポリシーによって許可されていない旨のエラーが出力されていることが確認できます。

エラー確認

さいごに

クラウドサービスの利便性が日々向上していく昨今において、クラウド利用におけるガバナンスの重要性はより高まっていくものと思います。
しかし、ガバナンスばかりに囚われて、利用者にとって面倒な承認フローを作ってしまうと、結果的に不便な形となり、クラウドのメリットであるアジリティを享受できなくなってしまいます。
Azure Governance では「利用者は便利に早く利用したい」「管理者は余計な操作はさせたくない」といった一見背反するニーズに対して少ない手間で対応できる機能が提供されています。
ぜひ Azure Governance を利用してみてください。



次回予告
  • 中国 Azure 概要 ~はじめの一歩、の前に~(前編)



お問い合わせ

製品・サービスに関するお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録