kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Azure始める人向けに見てほしい資料など

Azureにはいろんなサービスがあるので未経験の人が使いはじめるのはなかなか難しくなってきました。特に初学者向けの研修といえばVM作るあたりから始めるのは仕方ないものの、それだけで本番作るとちょっと困る。そして最近新しく始める人からよく「これだけやっておけばいいよ」というものない?という相談を受けることが多くなりました。どんな要素を押さえておかないといけないかなぁ?ということでつらつらとまとめてみます。忘れているものとかあれば教えてください。

クラウドを使う前に目を通してほしいもの

azure.microsoft.com

クラウド移行するためのフレームワークです。技術的な話だけではなく、組織やセキュリティの定義を決めましょうというような話をフレームワークとしてまとめられています。

docs.microsoft.com

クラウドは日進月歩です。日々ベストプラクティスは更新されています。そういう視点でコスト、セキュリティ、信頼性、運用容易性、パフォーマンス効率といった観点でどうやって運用するつもりであるかというチェックリストです。

Microsoft Learn

docs.microsoft.com

使う技術を選んだらMicrosoft Learnで基本的な学習をお勧めします。新しく入ったメンバーに技術要素を学んでもらうためにもお勧めです。個人用Microsoftアカウントを使えばどこまで学習したか記録してくれて、無料で実際のAzure環境を使った演習ができる内容もあります。

Azure Service Healthの通知を受け取る

azure.microsoft.com

Azureも計画的なメンテナンス、重大な性能低下、非互換を伴う仕様変更といったことがちょこちょこ起きます。そういった情報を通知してくれます。サブスクリプションごとに設定しなければなりません。モバイルアプリへの通知、Webhookを使用して外部のシステムに通知する、メール通知するといったことも可能です。

Azure AD

docs.microsoft.com

AzureのID管理はAzure ADです。とりあえずこれを理解しないと始まりません。組織の既存のIDシングルサインオンをするもよし、独自のIDにしてもいいですが…めんどくさいです。ユーザーだけではなくEndpoint ManagerやMicrosoft 365 Defenderと連携することでデバイスの制御もできるようになります。例えばポータルにアクセスするにはAzure ADに参加しているデバイスで最新のパッチが適用されていなければならないというポリシーの設定も可能です。

ID管理

Azure ADは一定以下のオブジェクト(ユーザー、グループなど)であれば無料で使えますが、一定以上のセキュリティ機能を使おうとすると有償ライセンスを検討します。

docs.microsoft.com

  • ポータルにアクセスして何らかの更新権限がある人:Azure AD Premium P1
  • 何とかの管理者権限がある人:Azure AD Premium P2

Azure AD PremiumはEnterprise Mobilityにも付属するライセンスなので通常組織内のデバイスセキュリティを考えると別途用意するまでもなく「用意するもの」かなと思います。気にするのは組織外から招待した協力会社のアカウントでしょうね。

Azure ADのライセンスはテナントごとなので、例えばAzureアプリケーションをセキュリティのため別テナントにしよう!という考えでテナントわけてしまうと、新規テナント用にAzure AD Premiumライセンスが別途かかりますので気を付けてください。

docs.microsoft.com

多要素認証MFAは新しく作られたテナントなら初期設定されているので、明示的に無効にしない限りアプリ通知は使えるので、スマートフォンもしくは類するデバイスを用意しましょう。

セキュリティの指標としてIDセキュリティ スコアという機能が提供されています。こちらを見て、継続的に改善してください。

権限の管理

Azure ADのグループやセキュリティのほかにRBACの理解が必要です。例えば「VMのモニタリングはできるが起動・停止はできない」という権限を作りたい場合、RBACを使わなくてはなりません。適当にやるとドはまりしてひどいことになるので、注意してください。Azure ADでグループを作って、そのグループに対して割り当てるという形になるでしょうね。

RBACは出来合いの組み込みロールがありますので、そこから不要なものを削っていく方向で作るのがおすすめです。

特権ユーザーの管理

Azure ADの全体管理者などの特権ユーザーはAzure AD Premium P2を割り当てて、Azure AD Privileged Identity Managementで使用時の特権昇格するようにしましょう。

docs.microsoft.com

ただ、ドメインアカウントに割り当てたアカウントのみだとドメインが乗っ取られてしまった場合どうにもならなくなるので、onmicrosoft.comドメインのアカウントを緊急アカウントとして割り当てる必要があります。

アプリケーション用ID

(2022/7/25追記)

昔は特定のIDを作ってそれをアプリケーション専用に割り当てるなんてことをやっていた人も多かったと思います。典型的な例で言えばSQL DatabaseのSQL認証ですね。そういうIDを作ってしまうと総当たりでやられることがあります。

docs.microsoft.com

マネージドIDの使用を検討しましょう。こちらもプライベートリンクリソース同様にプレビューやGA直後はサポートしていないサービスがあったりするので、使えるかどうか確認してからということになります。

docs.microsoft.com

ネットワークはどうしても理解しておかないといけないものですね。とりあえずPrivate EndpointPrivate Linkは理解しておかないと閉域網作れません。パブリックなサービスだからといっても、データベースがインターネットからアクセス可能にしておくということはないですしね。

データを格納するPaaSを選ぶ場合プライベート リンクリソースに載っているものから選びましょう。プレビュー時点ではサポートしていないものも多いですし、そもそも高いSKUじゃないとプライベート リンクをサポートしないものも多いので、課金にも注意です。

Azure Monitor

docs.microsoft.com

マネージド管理するならまずはAzure Monitorから。Elasticソリューションに慣れた人にはElastic on Azureなんてものもありますね。

docs.microsoft.com

診断や監視するのはいいですが、Azure Monitorの料金は読みづらいもののひとつです。サンプリングして料金を計測していくしかないですね😅。

docs.microsoft.com

docs.microsoft.com

docs.microsoft.com

Log Analyticsという名前も若干悪いと思っていますが、中身はデータウェアハウスなのでほっとくと馬鹿みたいにコストが上がります。要件上の理由で保存が必要なら定期的にエクスポートしましょう。

docs.microsoft.com

Defender for Cloud

docs.microsoft.com

とりあえずStandardを購入してサブスクリプション全体に適用してしまいましょう(暴言)。経験の少ない人でも設定ミスがだいぶ減らせます。例えば既定でSQL DatabaseはAzure内のどこからでもアクセスできます。そういう設定を検出してくれます。セキュアスコアを順次改善しましょう。

docs.microsoft.com

Azure Policy または Azure Dev Test Labs

docs.microsoft.com

「xxをやってはいけない」といわれても覚えていられないし、やってしまうことはあります。そういうことをできなくするのがAzure Policy。検証向けのサブスクリプションで評価して、本番向けのサブスクリプションに適用していくのがいいのでしょうね。

ただ、純粋な開発環境でそこまで不要で例えば「東日本にこのサイズのVMまでしか作ったらだめですよ」という制限したいだけならAzure Dev Test Labsでも用が済むかもしれませんね。SLAがない代わりに安いですし。

Azure Cost Managementで支出を管理する

(2022/7/25追記)
docs.microsoft.com

コスト意識も重要です。AzureにはCost Managementという機能もあるので、詳細な分析をしてみてください。ポータル触らせたくないけどコストは見せたいという場合、Power BIとの連携もできます。