「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る([[Azure]]、[[Azure Active Directory]]) --[[Azureの評価環境を入手する]] --[[AzureのPoC環境を契約する]] --[[AzureのPoC環境を構築する]] --[[Azure上に素早く環境を構築する]] --AzADのテナント作成方法 --[[Azure Subscriptionの管理@エンプラ]]~ '> [[Azure Subscriptionの管理手順@エンプラ]] ---[[Azureによる基盤開発法]] ---[[Azureの高可用性設計]] ---[[Azureの監視と管理]] ---[[Azureのアクセス制御と権限]] * 目次 [#x83b72a2] #contents *概要 [#hfab901d] ハイセキュアな [[Azure]]運用のための[[Azure Active Directory]]テナントの作り方(→[[PoCの場合>AzureのPoC環境を契約する]]) -原則論としては 1 組織 = 1 テナントで、その配下ですべてのクラウド・サービスを利用 -ただし、[[Azure]]の運用用のテナントを分けたい場合もある --オンプレ AD と同期している [[Azure Active Directory]] は OA環境専用(O365 用) --業務システム運用に関わるリソースなどOA用アカウントと明確に分離しておきたい。 -と言う事で、[[デプロイ・ガイド(チェックリスト)>#i7d0945c]]に、幾つかアレンジを加えたモノが本項となっている。 --管理を想定したアカウント構成(OA用アカウントとの切り離し) --オンプレAD とのアカウント同期の削除 --アプリケーション管理の削除 --, etc. *詳細 [#u75a302e] **サブスクリプション [#keeb7cb5] ***基本的にEAから切り出す。 [#rf39e10d] -O365 AzAD の EAポータルからサブスクリプションを作成する。 --https://ea.azure.com --EA契約管理者からアサインされたEA契約アカウント管理者が実施。 -ディレクトリ・サブスクリプションには、課金と環境管理の紐付けがある。 --初期状態では、O365 AzADと作成したサブスクリプションが関連付けられる。 --[[アカウント管理者:課金、サービス管理者:環境管理>Azure Subscriptionの管理@エンプラ#s0e4e291]]ともに、サブスクリプションの作成者。 -[[サブスクリプションの付け替え(信頼テナントの変更)作業>#o459168f]] ***検証では、ダミー・テナントを使用。 [#p62eb228] -特定の期間(通常30日から90日)に限り、Azureのサービスを試すためのクレジットを提供。 -クレジットの金額や期間は、提供されるパッケージによって異なる(200-1000ドルのクレジットが付与) -主に企業や教育機関向けに提供されることが多く、大規模なプロジェクトや評価のために利用される。 -EA契約アカウント管理者のアカウントでログイン~ https://www.microsoftazurepass.com/ --ディレクトリ・サブスクリプションを作成(コード入力、質問回答などを行って作成) --ディレクトリ・サブスクリプションが出来たら名称の変更を行う。 --ディレクトリ・サブスクリプションについては「[[基本的にEAから切り出す。>#rf39e10d]]」と同じ。 -[[サブスクリプションの付け替え(信頼テナントの変更)作業>#o459168f]] **ホーム / B2B [#sdbcaead] いずれの方式を利用する場合でも、~ 複数の作業者でアカウントを共有することは避ける。 ***ホーム・アカウント [#neb415f1] 個別作成([[Azure Active Directory]]にアカウントを別途作って利用する) -一方、退職や人事異動を確実に反映させる必要があり、面倒 -OA 作業からアカウントや端末を切り離せるため、マルウェア攻撃を受け難い。 -故に、特権アカウントは、[[B2Bアカウント>#x4346bdd]]ではなく[[ホーム・アカウント>#neb415f1]]を使用すると良い。 ***B2Bアカウント [#x4346bdd] B2B 招待(O365 テナントから B2B 招待したアカウントを利用する) -1 ユーザ = 1 ID となり、作業者から見て使い勝手がよい -多くの場合、人事システムやオンプレ AD と連携しており、退職時に自動失効する -故に、各種、作業者アカウントは、コチラを使用すると良い。 **静的 / 動的 [#m72c07a3] どちらの場合でも、以下のようにするのが基本~ -セキュリティ管理者(あるいは権限管理システム)に対して、~ 静的に Privilege Role Administrator ロールを割り当てる。 -その上で、[[静的>#rc9788e7]]または[[動的(推奨)>#k83896d4]]に、~ 必要に応じて Global Administrator などの作業特権を与える。 ***静的権限 [#rc9788e7] -ユーザ単位(またはグループ単位)に権限を付与する -高権限をむやみに与えないようにする(最大でも 5 人程度) ***動的権限 [#k83896d4] [[Azure AD PIM>Azure AD Privileged Identity Management (PIM)]](特権 ID 管理)を利用して、ユーザに対して動的に権限を付与・はく奪する。 *手順 [#gf653552] **初期構築用アカウント [#vb8829e5] [[初期構築時と、構築後の構成変更とを分けて考える。>Azure Virtual Data Center#a7740182]] **2つのアカウントを併用するので...。 [#a18fea0a] 以下の手順で、[[初期構築用アカウント>#vb8829e5]]に加え複数アカウントを使い回すので...。 ***InPrivateブラウザで作業するなど。 [#p8ed6c13] 加えて、キャッシュが残らないようにできる。 ***異なるブラウザを使用する(EdgeとChrome)。 [#nc91238f] そもそも別物なので。 ***[[WWWブラウザのセッション等を別にする。>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?WWW%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AE%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E7%AD%89%E3%82%92%E5%88%A5%E3%81%AB%E3%81%99%E3%82%8B%E3%80%82]] [#m47e938f] ユーザ・プロファイルも別になる。 **Step 0. O365 用 AzAD テナント [#p67c88ae] -通常は、既存の O365 用 AzAD テナントを利用 -検証用なら --[[既定のディレクトリ>Microsoft Azure Active Directory#abca1734]](使用できる?)か、 --以下からダミー・テナントを作成しても良い。~ https://account.azure.com/organization ---[[全体管理者>Microsoft Azure Active Directory#y1da803f]]アカウントを作成する。 ---サブスクリプションは作成しない。 ---Azureポータル > [[Azure Active Directory]]に遷移 ---以下の 4つのアカウントを作成 |ea_ea@o365aad|EA エンタープライズ管理者の個人アカウント|| |ea_aa@o365aad|EA アカウント管理者の個人アカウント|Azure サブスクリプション払い出し| |xxxx@o365aad|一般ユーザ1の個人アカウント|| |yyyy@o365aad|一般ユーザ2の個人アカウント|| **Step 1. Azure 用 AzAD テナントの作成 [#afd077de] -[[ダミー・テナント>#p67c88ae]]と同じ方法で作成。 --全体管理者アカウントを~ 「[[初期構築用アカウント>#vb8829e5]]」として作成。 --サブスクリプションは作成しない。 -Azureポータル > [[Azure Active Directory]]に遷移 --P2ライセンスの試用版の有効化 --テナント(ディレクトリ)の属性を変更~ 名称や詳細の記述を変更する。 --[[全体管理者>Microsoft Azure Active Directory#y1da803f]]アカウント([[初期構築用アカウント>#vb8829e5]])の属性を変更 ---名称や詳細の記述を変更する。 ---サブスクリプションの[[RBACアクセス権限>Role Based Access Control (RBAC)#ea4f95c8]]を取得するよう設定する。 **Step 2. 管理者アカウントの作成と保護 [#w29c1731] ***アカウントの作成 [#f701af9b] -以下の 4つのアカウントを作成 --緊急事態用アカウント(Breakglass Account)~ Azure AD 用、Azure 用の 2 つが必要 ---[[ホーム・アカウント>#neb415f1]]として作成し、 ---[[条件付きアクセス>Azure Active Directory 条件付きアクセス]]などの適用対象外にする必要がある~ (代わりに、パスワード長を長めに設定する) --Azure AD 管理用アカウント~ 日常的な Azure AD の管理用に利用するアカウントだが、以下 2 つの検討が必要 ---[[ホーム or B2B>#sdbcaead]]アカウントどちらを利用するのか? ---[[静的 or 動的>#m72c07a3]]どちらの方法で権限割り当てを行うのか? |ID|>|役割|主な日常作業|個人/共用|ホーム/B2B|AzAD 権限|Azure 権限|h |bg_admin_aad@prodaad|緊急事態用&br;アカウント|Azure AD 用|ナシ|共用|ホーム|Global Administrator(静的)|昇格権限| |bg_admin_azure@prodaad|~|Azure 用|~|~|~|ナシ|Tenant Root Group/owner(静的)| |XXXX_prv_admin@prodaad|個人アカウント|特権ロール管理用|AzAD, Azure の&br;権限払い出し|個人|[[ホーム or B2B>#sdbcaead]]|Privilege Role Administrator (静的)|なし(暗黙的に User Access Admin を持つ)| |YYYY_aad_admin@prodaad|~|Azure AD 管理者用|AzAD の設定・操作・監査|~|~|・(Global Reader(静的))&br;・Global Administrator([[PIM>#k83896d4]])|ナシ| >※ 上記の表の通り、Azure 権限を除いて、アカウントを作成する。 -作成後の設定 --Azure AD 用の緊急事態用アカウント ---P2ライセンスの設定 ---[[パスワード・ポリシーの変更>#wcfa5c3a]] ---[[管理者アカウントの保護>#bef1f9bc]] ---%%Azure権限付与%% ---[[封緘用パスワードの設定>#c8dc7823]] --Azure用の緊急事態用アカウント ---P2ライセンスの設定 ---[[パスワード・ポリシーの変更>#wcfa5c3a]] ---[[管理者アカウントの保護>#bef1f9bc]] ---[[Azure権限付与(ルート管理グループ)>#xb627853]] ---[[封緘用パスワードの設定>#c8dc7823]] --特権ロール管理用の個人アカウント ---P2ライセンスの設定 ---[[パスワード・ポリシーの変更>#wcfa5c3a]] ---[[管理者アカウントの保護>#bef1f9bc]] --Azure AD 管理者用の個人アカウント ---P2ライセンスの設定 ---[[パスワード・ポリシーの変更>#wcfa5c3a]] ---[[管理者アカウントの保護>#bef1f9bc]] ***パスワード・ポリシーの変更 [#wcfa5c3a] -パスワード保護機能(必要に応じて) --[Azure Active Directory] > [セキュリティ] > [認証方法] > [パスワード保護]を開く --必要に応じてロックアウト、禁止パスワードの登録などを行う -パスワード有効期限の無効化 --既定は 90 日で失効 --緊急事態用アカウントでは必須 --PowerShellで設定 Install-Module -Name AzureAD Connect-AzureAD Get-AzureADUser -Filter "startswith(userPrincipalName,'緊急事態用アカウントのプレフィックス')" | Set- AzureADUser -PasswordPolicies DisablePasswordExpiration ***管理者アカウントの保護 [#bef1f9bc] -セキュリティ・グループの作成と割当 --緊急事態用アカウント用グループを作成し、各アカウントに割当 --個人アカウント用グループを作成し、各アカウントに割当~ 権限を[[PIM>#k83896d4]]でJIT割当するYYYY_aad_admin@prodaadのような~ アカウントは変更される可能性が高いので、対象外にする等。 --必要に応じて、B2Bを使用している場合など、動的メンバーシップ・ルールを使用する。 -[[条件付きアクセス>Azure Active Directory 条件付きアクセス]]の有効化 --対象 ---対象:個人アカウント用グループ ---対象外:緊急事態用アカウント用グループ --アクセス制御で、多要素認証(MFA)などを追加する。~ その他、ネームド・ロケーション、セキュア・ワークステーション等がある。 --レポート専用で作成して、問題なく動作しているか確認してからオンする。 -[[ID保護>Azure Active Directory Identity Protection]]の有効化 --対象 ---対象:個人アカウント用グループ ---対象外:緊急事態用アカウント用グループ --ユーザ・リスク、サインイン・リスク、MFA登録ポリシーなどを追加する。 **Step 3. Azure サブスクリプションの準備 [#d81fedd4] ***[[サブスクリプションを作成する。>#keeb7cb5]] [#k61ed153] [[Step 1のテナント>#afd077de]]で、サブスクリプションを作成する。 -作成に使用するアカウントは、~ EAアカウント管理者の個人アカウント(ea_aa@o365aad) -2つのテナントに1つのサブスクリプションとなる。 -次に、既定のテナントとサブスクリプションの関連付けを変更する。~ [[サービス管理者:環境管理>Azure Subscriptionの管理@エンプラ#s0e4e291]]のみ関連付けを変更する。 ***サブスクリプションの環境管理を付け替える。 [#o459168f] -[[Step 1のテナント>#afd077de]]から[[Step 0のテナント>#p67c88ae]]の~ EA契約アカウント管理者(ea_aa@o365aad)を、~ 初期構築アカウントを使用して、B2Bで招待する。 -EA契約アカウント管理者(ea_aa@o365aad)は、招待を承認する。 --メールボックスがない場合、~ EA契約アカウント管理者(ea_aa@o365aad)が以下のURL直打ちでも行ける。~ http://portal.azure.com/[[Step 1のテナント>#afd077de]].onmicrosoft.com ---招待を承認する。 ---ディレクトリの切替が可能になる。 --ディレクトリを切り替える ---[[Step 0のテナント>#p67c88ae]]では、サブスクリプション、アリとなる。 ---[[Step 1のテナント>#afd077de]]では、サブスクリプション、ナシとなる。 --ディレクトリの変更を実行する。 ---コレを、[[Step 0のテナント>#p67c88ae]]のサブスクリプションで行う。 ---フェイルオーバー先に[[Step 1のテナント>#afd077de]]を指定する(30分-1時間かかる)。 -[[サービス管理者:環境管理>Azure Subscriptionの管理@エンプラ#s0e4e291]]を、 --EA契約アカウント管理者(ea_aa@o365aad)から --Azure用の緊急事態用アカウント(bg_admin_azure@prodaad)に >変更する。...が「Microsoft Azure Pass」だと出来ないとのこと。 ***Azure権限付与(ルート管理グループ) [#xb627853] -初期構築アカウントでログインし、~ 「Azureリソースのアクセス管理」が「はい」に~ なっていることを確認し、以下の作業を行う。 -自身がユーザ・アクセス管理者(User Access Administrator)権限を~ 持っているので、自身に更に所有者(Owner)権限を追加する。 --管理グループ(Tenant Root Group)のアクセス制御(IAM)画面から、~ Azure AD 用の緊急事態用アカウント(bg_admin_aad@prodaad)に以下の権限を割当てる。 ---所有者(Owner) ---ユーザ・アクセス管理者(User Access Administrator) **Step 4. ログ・監視・アラートの設定 [#za554a44] ***長期ログ保存のための設定 [#g5bb7d2d] サブスクリプションに対し各種のログを長期保存~ するため、ストレージの作成と診断ログの設定を行う。 -[[初期構築用アカウント>#vb8829e5]]に対して、~ 当該 Azure サブスクリプションに対する Owner 権限を付与 -以下 3 つのリソースを作成 --リソース・グループ --Log Analyticsワーク・スペース~ イベント・ログの収集と表示 --ストレージ・アカウント ---より長期のログ保管のストレージ ---プライベート・エンドポイントを指定(パブリック・エンドポイントを塞ぐ) -診断設定を有効化する。 --Azure AD > サインイン > データ設定のエクスポート > 診断設定 --サブスクリプション > アクティビティ・ログ > 診断設定 ***緊急事態用アカウント利用時に警告メールを送付する。 [#p1fb9841] -緊急事態用アカウントの2つのオブジェクトIDを調査する(xxxx, yyyy)。 -Log Analytics ワークスペースに2 種類の[[アラート・ルール>Azure Alerts]]を追加 --緊急事態アカウントのサインイン(重大度 0) ---Custom Log Search から以下の検索クエリを指定 SigninLogs | project UserId | where UserId == "xxxx" or UserId == "yyyy" ---アラート・ロジック:「結果の数が 0 より大きい場合」(既定値) ---セキュリティ・チームのML宛にメール送信するアクション・グループを作成・設定 ---アラート・ルールの詳細でタイトル、本文、重大度 0 など設定。 --緊急事態アカウントの設定変更(重大度 1) ---Custom Log Search から以下の検索クエリを指定 AuditLogs | where TargetResources[0].id == "xxxx" or TargetResources[0].id == "yyyy" ---アラートロジック:「結果の数が 0 より大きい場合」(既定値) ---先ほど作成したアクション・グループを設定 ---アラート・ルールの詳細でタイトル、本文、重大度 1 など設定。 -参考 --緊急アクセス用管理者アカウントを管理する - Azure AD | Microsoft Docs~ https://docs.microsoft.com/ja-jp/azure/active-directory/users-groups-roles/directory-emergency-access#monitor-sign-in-and-audit-logs **Step 5. テストとクリーンアップ [#e2ec6c3e] ***緊急事態アカウントの動作確認 [#c8dc7823] -封緘パスワードの用意 Add-type -AssemblyName System.Web $len = 30 do { $pwd = [System.Web.Security.Membership]::GeneratePassword($len,0) } until ( $pwd -match '^[0-9a-zA-Z]+$' ); $pwd -緊急事態アカウントでサインイン~ 初回アクセス時にPWD変更が求められるので、封緘パスワードに変更。 -緊急事態アカウントの動作確認~ ログイン、権限確認、監査ログの参照などを行う。 -緊急事態アカウントのパスワードの封緘~ アカウント情報を封緘(リアルに封筒などに入れる) -[[前述の緊急事態アカウントのアラート確認>#p1fb9841]]~ [[初期構築用アカウント>#vb8829e5]]で確認する。 ***全体セキュリティ管理者アカウントの動作確認 [#i492e418] -特権ロール管理用の個人アカウント(XXXX_prv_admin@prodaad)でログイン -PIMでAzure AD 管理者用の個人アカウント(YYYY_aad_admin@prodaad)に、ロールを割当てる。 -Azure AD 管理者用の個人アカウント(YYYY_aad_admin@prodaad)でログインして構成作業を行う。 ***[[初期構築用アカウント>#vb8829e5]]の削除 [#v44df434] -[[全体セキュリティ管理者アカウントの動作確認>#i492e418]]後、 -[[初期構築用アカウント>#vb8829e5]]を削除する。 *参考 [#gdcedb84] **MFA死亡 [#f3340e8b] -グローバル管理者はMFA必須でデバイスをロストしたりすると誰もログインできないテナントが出来上がる。 -そんな場合は、私の場合はプレミアサポートから誘導して貰った窓口に対応してもらった。 -で、窓口はドコに?...→ ココにヒントが(個人契約の場合はどうするの?)。 --[[[2025/1/15 更新] 一般法人向け Microsoft 365 サポート窓口のご紹介>https://answers.microsoft.com/ja-jp/msoffice/forum/all/2025115-%e6%9b%b4%e6%96%b0/7635019b-2939-4ca3-a1f1-6cf8c249c58e]] --[[機種変更後のAuthenticatorの回復のためオペレータの方と会話する方法>https://answers.microsoft.com/ja-jp/msoffice/forum/all/%E6%A9%9F%E7%A8%AE%E5%A4%89%E6%9B%B4%E5%BE%8C/e6ea12de-d387-4759-828c-799e929dc597]] **Microsoft Docs [#i7d0945c] -Azure AD デプロイ チェックリスト~ https://docs.microsoft.com/ja-jp/azure/active-directory/fundamentals/active-directory-deployment-checklist-p2 -セルフサービス パスワード リセット ポリシー~ https://docs.microsoft.com/ja-jp/azure/active-directory/authentication/concept-sspr-policy#set-a-password-to-never-expire **nakama [#wfe1692b] ※ [[Azure 管理用 Azure AD テナントの作成方法>Microsoft Azure Active Directory#a15d6990]]中にも同様のトピックが含まれる。 ---- Tags: [[:インフラストラクチャ]], [[:クラウド]], [[:Azure]], [[:Active Directory]], [[:認証基盤]], [[:クレームベース認証]]