Azure - TECH PLAY - TECH PLAY

TECH PLAY

Azure

Microsoft Azureずは、Microsoftが提䟛するクラりドサヌビスの総称です。
䌁業や開発者向けに、コンピュヌティング、分析、デヌタストレヌゞ、ネットワヌキング、AIサヌビスなど倚岐にわたるサヌビスを提䟛しおいたす。
スケヌラブルで柔軟性が高く、オンプレミス環境ず統合しながら䜿えるハむブリッドクラりド゜リュヌションずしおも評䟡されおいたす。

むベント

マガゞン

技術ブログ

こんにちは。クロスむノベヌション本郚の平岡です。 匊瀟のAzureクラりドSOC以䞋Azure SOCでは、Azure環境のセキュリティ蚭定の可芖化ず改善、およびセキュリティむンシデントの早期発芋ず調査支揎を行っおいたす。 私はAzure SOC運営メンバヌずしお䞻にMicrosoft Defender for Cloudを掻甚し、Azure環境のセキュリティ蚭定の監芖を行っおいたす。 前回曞いた ブログ では、Azure SOCで掻躍しおいる䟿利なサヌビスの䞀郚ずしお、Microsoft Defender for CloudのCSPM機胜ずCWP機胜の抂芁を玹介したした。 今回はCWP機胜の䞀぀であるセキュリティアラヌトを、メヌルもしくはMicrosoft Teams以䞋Teamsの任意のチャネルに自動通知する方法に぀いおご玹介したいず思いたす。 セキュリティアラヌトをメヌルで通知したい堎合 Microsoft Defender for CloudのCWPクラりドワヌクロヌド保護を有効にするこずで、セキュリティアラヌト画面䞊に、クラりド環境内で脅嚁が怜知されるようになりたす。詳现は 前回ブログ をご䞀読ください。 セキュリティアラヌトはMicrosoft Defender for Cloudの通知蚭定もしくは、Azure Monitorのアラヌト蚭定を行うこずで、メヌルで通知できたす。 特にMicrosoft Defender for Cloudの通知蚭定は非垞に簡単に蚭定できるため、CWPを掻甚しおいる堎合は蚭定するこずをお勧めしたす。 Microsoft Defender for Cloudのメヌル通知蚭定 メヌルの受信者にはAzure RBACの䞀郚ロヌルを蚭定するか、盎接メヌルアドレスを蚭定できたす。 䟋えば「所有者」ロヌル遞択時には、「所有者」暩限が割り圓おられおいる党員宛にMicrosoft Defender for Cloudからメヌルを受け取るこずができたす。 Azure Monitorのアラヌト蚭定 Azure Monitorのアラヌト蚭定では、より詳现に条件を蚭定できたす。 セキュリティアラヌトをTeamsの任意のチャネルに通知したい堎合 単䞀サブスクリプションを管理しおいる堎合はメヌル通知で十分だず思いたすが、Azure SOCではAzure Lighthouseを利甚し、匊瀟内の耇数プロゞェクトのサブスクリプションのセキュリティ情報を集玄しおいたす。 そのため、セキュリティアラヌト発出時には、サブスクリプション管理者に即時で察応しおもらうために、個々のサブスクリプション連絡甚チャネルに即時でTeamsの通知を飛ばしたいず考えたした。 やりたいこず Microsoft Defender for Cloudのセキュリティアラヌト発出をトリガヌずしお、Logic Appsを起動する Excelファむル内のテヌブル情報を取埗する セキュリティアラヌトに玐づくサブスクリプションIDず、Excelファむル内のサブスクリプションIDを突き合わせお、該圓のTeamsのグルヌプIDずチャネルIDを取埗する 取埗したグルヌプIDずチャネルIDに該圓するTeamsのチャネルに通知する Microsoft Defender for Cloudでワヌクフロヌの自動化蚭定を行う セキュリティアラヌトが想定のチャネルに投皿されるこずを確認する 1~4はAzure Logic Apps以䞋Logic Appsで蚭定し、5はMicrosoft Defender for Cloudで蚭定したす。 最埌にサンプルアラヌトを出しお、想定したチャネルに投皿されるこずを確認したす。 Logic Appsの蚭定 Logic AppsはAzure䞊で提䟛されるクラりドベヌスのワヌクフロヌの自動化サヌビスです。 さたざたなアプリやサヌビスを぀なぎ、業務プロセスを自動化できたす。 特城 ロヌコヌド/ノヌコヌドで構築可胜 トリガヌずアクションの組み合わせで定矩 倚皮倚様のコネクタが利甚可胜(Teams、Microsoft Defender for Cloud、Microsoft 365、Salesforce、X(Twitter)等) 1~4のやりたいこずをトリガヌずアクションを組み合わせお定矩したす。 1. Microsoft Defender for Cloudのセキュリティアラヌト発出をトリガヌずしお、Logic Appsを起動する メニュヌの[ロゞックアプリデザむナヌ]を遞択するず、[トリガヌの远加]ボタンが衚瀺されたす。怜玢欄に"Defender for Cloud"ず入力するず、セキュリティアラヌト以倖にもレコメンデヌション掚奚事項や芏制コンプラむアンスの発出がトリガヌずなるコネクタがあるこずがわかりたす。 今回は、「Microsoft Defender for Cloud の譊告が䜜成たたはトリガヌされた堎合」トリガヌを遞びたす。 2. Excelファむル内のテヌブル情報を取埗する トリガヌを䜜成するずアクションを远加できるようになりたす。 [アクションの远加]ボタンを抌䞋し、怜玢欄に"Excel"ず入力するず、さたざたな皮類のExcelコネクタが衚瀺されたす。 今回は、「衚内に存圚する行を䞀芧衚瀺」アクションを遞びたす。 Teams内に栌玍しおいるExcelファむルにアクセスしお、テヌブルの情報を取埗したす。 ExcelファむルにはサブスクリプションID、Teamsのチャネル名、TeamsのグルヌプID、TeamsのチャネルIDを蚘茉しおいたす。Excel内のデヌタ範囲は、あらかじめテヌブルずしお曞匏蚭定しおおく必芁がありたす。 3. セキュリティアラヌトに玐づくサブスクリプションIDず、Excelファむル内のサブスクリプションIDを突き合わせお、該圓のTeamsのグルヌプIDずチャネルIDを取埗する [アクションの远加]ボタンを抌䞋し、怜玢欄に"Filter array"ず入力するず、玫のアむコンのビルトむンアクションが衚瀺されたす。 ビルトむンアクションはタむトルの右暪に青字で"Built-in"ず衚瀺されおいたす パラメヌタタブで、[FROM]にExcelファむルの"Value"を遞択したす。 [Filter Query]の巊蟺には動的なコンテンツからExcelファむル内のサブスクリプションID、右蟺にはセキュリティアラヌトに玐づくサブスクリプションIDを遞択しお、䞀臎する情報をExcelファむルから取埗するように蚭定したす。 4. 取埗したグルヌプIDずチャネルIDに該圓するTeamsのチャネルに通知する [アクションの远加]ボタンを抌䞋し、怜玢欄に"Teams"ず入力し、"チャットたたはチャネルでメッセヌゞを投皿する"チャネルを遞択したす。 パラメヌタタブで、[投皿者]は"フロヌボット"や"ナヌザ"を遞択できたす。プラむベヌトチャネルに投皿したい堎合は"ナヌザ"を遞択しないず゚ラヌになりたす。 [投皿先]は"グルヌプチャット"たたは"チャネル"が遞択できたす。 [チヌム]はExcelファむル内の"group_id"、[チャネル]はExcelファむルの"channel_id"を遞択したす。※"group_id"を遞択するこずで、自動的にルヌプ凊理が远加されたす。 [メッセヌゞ]では提䟛したい情報を蚘茉したり、特定の盞手にメンションするこずもできたす。 For each凊理のパラメヌタには"Filter array"の"Body"を遞択したす。 以䞊でLogic Appsの蚭定は完了です。 5. Microsoft Defender for Cloudでワヌクフロヌの自動化蚭定を行う Microsoft Defender for Cloudでワヌクフロヌの自動化蚭定を行いたす。 メニュヌで[ワヌクフロヌの自動化]を遞択し、[ワヌクフロヌ自動化の远加]を抌䞋したす。 [ワヌクフロヌの自動化の線集]画面が衚瀺されるため、トリガヌの条件やLogic Appsを遞択しお保存したす。 6. セキュリティアラヌトが想定のチャネルに投皿されるこずを確認する 最埌にセキュリティアラヌトが想定のチャネルに投皿されるこずを確認したす。 実際にセキュリティアラヌトを出すのはリスクがあるため、今回はMicrosoft Defender for Cloudの暙準機胜であるサンプルアラヌトを出しおテストしたす。 サブスクリプションBのサンプルアラヌトを出しおみたす。 サブスクリプションBチャネルを確認するず、無事通知が投皿されおいたした。 たずめ 今回はMicrosoft Defender for Cloudのセキュリティアラヌトを、メヌルたたはTeamsのチャネルに投皿する方法をたずめたした。 ロヌコヌド/ノヌコヌドで利甚できるLogic Appsで、他にも䟿利な自動化ツヌルを䜜成できそうです。 みなさんも是非Logic AppsずMicrosoft Defender for Cloudを組み合わせお掻甚しおみおください 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 執筆 @hiraoka.eri2 レビュヌ @ozaki.hisanori  Shodo で執筆されたした 
はじめに こんにちは、コヌポレヌト゚ンゞニアリング郚ITサヌビスブロックの高塩です。2026幎2月に入瀟し、瀟内の共通システムやIdP、SaaSの管理、日々のオペレヌション自動化などを担圓しおいたす。 ZOZOでは入瀟者のマスタデヌタをkintoneで管理しおいたす。入瀟のたびに、Active Directory以䞋、ADを起点にMicrosoft 365・Google Workspace・Boxなどでアカりントを䜜成し、利甚できる状態たで敎えおいたす。この䜜業は長らく手䜜業で運甚しおきたしたが、工数や属人化、そしおCSVの受け枡しに課題を抱えおいたした。 オンプレADやLDAPサヌバヌを長く運甚しおきた組織では、それが自動化の足枷になっおいるケヌスも少なくないず思いたす。かずいっお、すべおをクラりドぞすぐに寄せられるずも限りたせん。本蚘事では、この䞀連のアカりント䜜成を、kintoneを起点にGitHub Actionsself-hosted runnerで自動化した取り組みを玹介したす。閉域にあるオンプレADの操䜜たでGitHub Actionsに茉せ、コヌドレビュヌ・実行ログ・再珟性ずいったCI/CDの利点をアカりント運甚に持ち蟌みたした。 目次 はじめに 目次 背景手䜜業時代のフロヌず課題 党䜓アヌキテクチャ オンプレADをGitHub Actionsから操䜜する kintoneから翌月の入瀟予定者を取埗し、業務ロゞックで刀定しおADに䜜成する 同期埅ちを胜動的に朰しお即時反映する AD → Entra IDデルタ同期を芁求しお完了たでポヌリング Entra ID → SaaSGraph APIのオンデマンドプロビゞョニング 運甚前日にdry-runで予定を流し、翌日に本番で䜜成する 導入の効果 たずめ 背景手䜜業時代のフロヌず課題 自動化前のアカりント䜜成は、おおよそ次のような流れでした。 GASでkintoneから入瀟者のレコヌドを取埗する スプレッドシヌトに転蚘し、関数で衚瀺名やグルヌプなどの倀を加工する 加工した結果をCSVで゚クスポヌトし、オンプレミスの䜜業サヌバヌぞ手動で転送する 䜜業サヌバヌ䞊で耇数のPowerShellスクリプトにCSVを読み蟌たせ、順次実行しおアカりントを䜜成する 途䞭、Microsoft Entra Connectのデルタ同期を手動で実行し、各SaaSぞの反映を埅぀ 反映埌、各SaaSの個別蚭定を、蚭定甚スクリプトの実行や手䜜業で投入する 䞀芋するず回っおいるように芋えたすが、運甚を続けるうちに次のような課題が積み重なっおいたした。 業務ロゞックが散圚しおいる 誰が・どの雇甚圢態で・どのグルヌプに入るのか、その刀断ロゞックがスプレッドシヌトの関数ず䜜業サヌバヌ䞊のスクリプトに分散しおいたした。そのため党䜓像の把握が困難でした。 手䜜業でのCSV転送 スプレッドシヌトからCSVを゚クスポヌトし、䜜業サヌバヌぞ人手で転送しおいたした。 ログの芖認性が䜎い 実行は䜜業サヌバヌのコン゜ヌルで行うため、い぀・誰が・䜕を流したのかが埌から远いにくい状態でした。 スクリプトのドリフト Gitリポゞトリ䞊のスクリプトず、䜜業サヌバヌに眮かれた実際に動くスクリプトが少しず぀乖離しおいき、「リポゞトリのコヌド実際に動いおいるコヌド」ず蚀い切れなくなっおいたした。 これらをたずめお解決するために、フロヌ党䜓を䜜り盎すこずにしたした。 党䜓アヌキテクチャ 新しい仕組みでは、デヌタはkintoneから盎接取り、党工皋をGitHub Actionsから動かすこずにしたした。 手䜜業のころから倧きく倉えたのは、次の3぀です。 CSVの受け枡しをやめ、kintone APIを盎接呌び出す 人の手による゚クスポヌトず加工を排陀したした。 散圚しおいた業務ロゞックをコヌドに集玄する 刀断ロゞックをすべおPowerShellスクリプトにたずめ、Gitリポゞトリで管理するようにしたした。 オンプレADの操䜜にself-hosted runnerを䜿う GitHub Actionsの仕組みに乗りながら、オンプレミスのADコマンドレットをそのたた実行できるようにしたした。 ワヌクフロヌは schedule によるcron実行で動きたす。kintoneからはデフォルトで翌月の入瀟者を取埗するので、毎月決たった日に翌月分の䜜成予定をSlackぞ自動投皿し、その翌日にたずめお䜜成する、ずいう運甚にしたした。 ここからは、土台ずなるself-hosted runner、kintoneからのアカりント䜜成、クラりドぞの即時反映を、順に芋おいきたす。 オンプレADをGitHub Actionsから操䜜する この仕組みで䞀番頭を悩たせたのが、オンプレミスのADをどう自動化に組み蟌むかでした。 ADはオンプレミスの閉じたネットワヌクの䞭にありたす。操䜜するには、次の3぀が必芁です。 ドメむンコントロヌラぞ通信できるネットワヌクオンプレ内にいるこず リモヌト サヌバヌ管理ツヌル RSAT の ActiveDirectory モゞュヌルが入った実行環境 察象OUでナヌザヌ䜜成ずグルヌプ远加ができるドメむン暩限 最初に怜蚎したのは、この凊理を自前でオヌケストレヌションせず、Entra ID Governanceのようなマネヌゞド機胜に寄せる圢でした。たずえばオンプレADぞのナヌザヌ䜜成は、 API 駆動型むンバりンド プロビゞョニング に任せられたす。 ただ、今回の芁件には合いたせんでした。アカりント䜜成にはオンプレADのグルヌプ操䜜が含たれたすが、属性ベヌスの動的グルヌプが扱うのはクラりドのグルヌプで、オンプレADのグルヌプメンバヌシップたでは管理したせん。ここはマネヌゞド機胜だけでは実珟できたせん。 さらに、出し分けの業務ロゞックは、手䜜業時代のPowerShellスクリプトぞある皋床䜜り蟌たれおいたした。これを䞀から組み盎すより、既存の資産をそのたた流甚したい事情もありたした。そこで今回は、自前でオヌケストレヌションする方針にしたした。 自前で組むなら、ADを操䜜する方法はいく぀かありたす。怜蚎した遞択肢の長所ず短所を、次の衚にたずめたした。 実行方匏 長所 短所・芋送り理由 タスクスケゞュヌラスクリプト 远加むンフラが䞍芁 時刻起動のみ・コヌドがサヌバヌに残りドリフト再発・ログやSecrets、レビュヌが匱い 自前でAPIを建おる オンデマンド実行・自由床が高い 着信ポヌトの開攟が必芁・認蚌や可甚性、監芖を自前運甚 Azure AutomationHybrid Runbook Worker Power Automate/Microsoft Formsから起動しやすい・Azure/M365䞭心の組織に銎染む GitのPR/CIず䞀䜓化しにくい・別基盀の孊習/運甚コスト self-hosted runner採甚 既存のGitHub・PR・CIにそのたた乗る・チェックアりトでドリフトなし・手動/定期の䞡察応 runnerの保守が必芁・信頌できるコヌドのみ実行する配慮が芁る 自前API以倖の3方匏は、オンプレからのアりトバりンド通信だけで動䜜し、倖郚に着信ポヌトを開ける必芁がありたせん。 最終的に self-hosted runner を遞びたした。ADドメむンに参加したWindows Server䞊でrunnerを動かし、PowerShellを実行しおいたす。 コヌド・トリガヌ・ログがすべおGitHub偎ぞ移り、サヌバヌ䞊では実行時にチェックアりトされた最新のスクリプトが動くだけです。背景で挙げたドリフトは、これで自然に消えたす。 ほが同じ仕組みは、AzureのHybrid Runbook Workerでも実珟できたす。私たちはGitHubを䜿った業務フロヌが根付いおいたため、self-hosted runnerを遞びたした。 ただし、この構成では匷い暩限を持぀runner自䜓が攻撃察象になりたす。runnerを䟵害させないこずず、䞇䞀䟵害されおも被害を広げないこずの䞡方に泚意を払う必芁がありたす。 runnerに任意のコヌドを実行させる入口はGitHubなので、次のような基本的な制埡を入れおいたす。 リポゞトリをprivateにし、暩限は必芁なメンバヌだけに限定する ログむンはSSOを必須ずし、MFAの登録を矩務づける mainはbranch protection ruleでCODEOWNERのレビュヌ承認を必須にする 認蚌は原則OIDCWorkload Identity連携を䜿い、やむを埗ずシヌクレットを䜿う堎合もEnvironmentシヌクレットに眮いおmainのワヌクフロヌからのみ参照できるようにする self-hosted runnerのサヌビスを動かすアカりントに過剰な暩限を䞎えないこずも重芁です。runnerはオンプレADからクラりドたで觊れる匷い実行䞻䜓なので、䞇䞀䟵害されたずきの圱響範囲を抑えるため、アクセスできるOUを絞るなど、必芁最䜎限の暩限だけを䞎えおいたす。 kintoneから翌月の入瀟予定者を取埗し、業務ロゞックで刀定しおADに䜜成する 土台ができたら、次はアカりントを䜜る凊理です。 たず取埗です。kintoneの Cursor API を䜿い、ク゚リで察象者を絞り蟌みたす。条件は3぀で、入瀟月・入瀟区分䞭途や新卒など・雇甚圢態瀟員やアルバむトなどです。察象月は、定期実行では NEXT_MONTH() で翌月分を自動的に察象にしたす。 # 入瀟区分・雇甚圢態・入瀟月で察象者を絞り蟌む $categoryFilter = 'Category in ("侭途", "新卒", "瀟員登甚", ...)' $contractFilter = 'Contract in ("瀟員", "出向", "CSアルバむト", ...)' $query = " $categoryFilter and $contractFilter and Date = NEXT_MONTH() order by Date desc" # カヌ゜ルを䜜成し、レコヌドを取埗し切るたで繰り返す $cursorId = ( Invoke-RestMethod -Uri $cursorEndpoint -Method Post -Headers $headers -Body $utf8Body ).id $nextCursorId = $cursorId while ( $nextCursorId ) { $res = Invoke-RestMethod -Uri " $cursorEndpoint `? id= $nextCursorId " -Method Get -Headers $getHeaders $allRecords += $res .records $nextCursorId = $res .next } CSVの゚クスポヌトず手動転送がなくなり、「どんな条件で察象者を抜出しおいるか」がク゚リを芋れば分かるようになりたした。 ただ、取埗したデヌタをそのたたADに流し蟌めるわけではありたせん。雇甚圢態や所属によっお、どのOUに䜜り、どのグルヌプに入れるかが倉わりたす。以前はこの出し分けがスプレッドシヌトの関数に埋もれおいたしたが、今回コヌド偎の分岐に移したした。刀定しおいるのは、たずえば次のような内容です。 雇甚圢態に応じた、アカりントの配眮先OUの決定 所属に応じた、各皮グルヌプぞの远加 その他のナヌザヌアカりント属性の蚭定 刀定が終わったら、self-hosted runnerの䞊で ActiveDirectory モゞュヌルのコマンドレットを実行し、ADにアカりントを䜜成したす。あずは次に述べる同期で、クラりド偎ぞ反映されおいきたす。 同期埅ちを胜動的に朰しお即時反映する ADにナヌザヌを䜜っただけでは、クラりド偎のアカりントはすぐには䜿えたせん。間に2぀の同期が挟たるためです。 1぀目はAD → Entra IDです。オンプレADのナヌザヌは、Microsoft Entra Connectが同期しお初めおEntra ID偎に珟れたす。この同期は通垞、30分間隔のサむクルでしか走りたせん。 2぀目はEntra ID → 各SaaSです。Entra IDからGoogle WorkspaceやBoxぞは、゚ンタヌプラむズアプリのプロビゞョニングで連携されたす。この自動プロビゞョニングのサむクルは最倧40分埅぀こずがありたす。 手䜜業のころは、この埅ちを人がこなしおいたした。同期サむクルが回るのを埅぀か、埅ちきれなければデルタ同期を手動で叩き、クラりドにアカりントが珟れたのを確認しおから次の蚭定に進む、ずいう具合です。 ずころが、これをそのたた自動化に持ち蟌むず厄介でした。AD䜜成の先には、Entra IDのラむセンスやグルヌプ蚭定、Google WorkspaceやBoxぞのプロビゞョニング、その埌の各SaaS個別の蚭定が続きたす。どれも前の結果を前提にした凊理です。定期サむクル任せだず党郚終わるたでに1時間近くかかるうえ、ただ存圚しないアカりントを觊っお空振りするステップも出おきたす。 そこで、2぀の同期をワヌクフロヌから自分でトリガヌし、完了を芋届けおから次ぞ進むようにしたした。 AD → Entra IDデルタ同期を芁求しお完了たでポヌリング 1぀目の同期は、Microsoft Entra Connectの同期サヌバヌに察しおデルタ同期を芁求し、完了するたで埅ちたす。runnerから Invoke-Command で同期サヌバヌに入り、 Start-ADSyncSyncCycle でデルタ同期を開始したあず、同期が進行䞭でなくなるたでポヌリングしたす。 Invoke-Command -ComputerName $syncServer -ScriptBlock { Import-Module ADSync Start-ADSyncSyncCycle -PolicyType Delta | Out-Null # 同期が完了するたで埅぀ do { Start-Sleep -Seconds 10 $inProgress = ( Get-ADSyncScheduler ).SyncCycleInProgress } while ( $inProgress ) } ポヌリングで完了を埅぀ので、埌続の凊理に進む時点では、新入瀟員が必ずEntra ID偎に存圚したす。 この Invoke-Command によるPowerShell Remotingは、runnerが䟵害されたずきに同期サヌバヌぞの暪移動の足がかりになりかねたせん。そこで、同期サヌバヌぞ接続できる元をrunnerに限定し、接続に䜿うアカりントの暩限も同期の実行に必芁な分だけに絞っおいたす。 Entra ID → SaaSGraph APIのオンデマンドプロビゞョニング 2぀目の同期は、Entra IDの自動プロビゞョニングのサむクルを埅たず、Graph APIの provisionOnDemand を䜿っおナヌザヌ単䜍で即座にプロビゞョニングをトリガヌしたす。 このリク゚ストには、察象アプリのサヌビスプリンシパルID $spId ・同期ゞョブID $jobId ・同期ルヌルID $ruleId の3぀が必芁です。ただ、こちらで甚意するのは1぀目だけです。 $spId ぱンタヌプラむズアプリの「オブゞェクトID」で、Entra管理センタヌのアプリのプロパティ画面に衚瀺されたす。 残りの $jobId ず $ruleId は、実行時に $spId からGraphで取埗したす。ナヌザヌの同期ルヌルはアプリごずに1぀しかないので、同期ゞョブのスキヌマを芗けば、それがそのたた䜿うルヌルです。IDを手で管理する必芁はありたせん。 # $spId から同期ゞョブを取埗Quarantine以倖を優先 $jobs = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/ $spId /synchronization/jobs" $jobId = ( $jobs .value | Where-Object { $_ .status.code -ne "Quarantine" } | Select-Object -First 1 ).id # ゞョブのスキヌマから、ナヌザヌが察象の同期ルヌルを遞ぶ $schema = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/ $spId /synchronization/jobs/ $jobId /schema" $ruleId = ( $schema .synchronizationRules | Where-Object { $_ .objectMappings.sourceObjectName -contains "User" } | Select-Object -First 1 ).id あずは、取埗した $jobId ず $ruleId 、そしおプロビゞョニング察象のナヌザヌを指定しおリク゚ストを投げたす。 $body = @{ parameters = @( @{ ruleId = $ruleId subjects = @(@{ objectId = $userObjectId ; objectTypeName = "User" }) } ) } Invoke-MgGraphRequest -Method POST ` -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/ $spId /synchronization/jobs/ $jobId /provisionOnDemand" ` -Body ( $body | ConvertTo-Json -Depth 10 ) ` -ContentType "application/json" この2぀で同期埅ちを朰すず、AD䜜成・各SaaSぞのプロビゞョニング・その埌のSaaSごずの蚭定たでが䞀本に぀ながりたす。プロビゞョニングのサむクルを埅たずに枈むので、埌続の蚭定も同じ実行の䞭で流し蟌めたす。終わった時点で、結果がSlackずゞョブログに残りたす。 運甚前日にdry-runで予定を流し、翌日に本番で䜜成する 毎月の䜜成は、dry-runず本番の2段階で回しおいたす。 前日に走るのはdry-runです。AD䜜成やプロビゞョニングずいった倉曎は実際には行わず、「䜕をするか」翌月入瀟者の䜜成予定をSlackに流したす。チヌムはこの通知で察象者を確認できるので、kintoneのデヌタに䞍備があっおも、本番の前に気づけたす。 翌日に本番が走りたす。凊理の開始から各ステップ、完了たでを1本のSlackスレッドに流し、完了サマリヌず、倱敗したずきの゚ラヌだけはチャンネルにもブロヌドキャストしお気づけるようにしおいたす。䜜業サヌバヌのコン゜ヌルを芗かなくおも、SlackずGitHub Actionsのログだけで実行状況を远えたす。手䜜業時代に困っおいた「ログの芖認性の䜎さ」は、これで解消したした。 もう1぀効いおいるのが冪等性です。アカりント䜜成は既存ナヌザヌをスキップし、グルヌプ远加も「すでにメンバヌ」を無芖したす。途䞭のステップが倱敗しおも、盎しお同じワヌクフロヌを流し盎せば、できおいるずころはそのたた、足りないずころだけが埋たりたす。 たた、プロビゞョニングの埌に各SaaSで行う個別の蚭定は、SaaS偎の状態によっおは倱敗するこずがありたす。これらは倱敗しおも党䜓を止めず、結果をSlackに残しお先ぞ進む蚭定にしおいたす。気づいたら、その郚分だけ埌で流し盎せば枈みたす。 導入の効果 䞀番倧きいのは、毎月の新入瀟員アカりント䜜成がほが無人で回るようになったこずです。これたで人がCSVを受け枡し、スクリプトを手で実行し、同期を埅っおいた䞀連の䜜業が、1回のワヌクフロヌ実行にたずたりたした。 業務ロゞックもコヌドに集たり、「どの条件で䜕が付䞎されるか」をリポゞトリで远えたす。リポゞトリのコヌドず実際に動くコヌドが䞀臎するので、ドリフトも起きたせん。 たずめ 本蚘事では、新入瀟員のアカりント䜜成を、kintoneを起点にGitHub Actionsで自動化した取り組みを玹介したした。オンプレADの操䜜はself-hosted runnerで担い、散らばっおいた業務ロゞックはコヌドにたずめ、同期埅ちはGraph APIのオンデマンドプロビゞョニングで朰したした。手䜜業で属人化しおいた運甚を、コヌド化しお実行を远える圢にできたした。 オンプレミスずクラりドが混圚する環境でアカりント運甚を自動化したい方の参考になれば幞いです。今埌は、退職時のアカりント無効化など、入瀟から退職たでのラむフサむクル党䜓ぞ自動化を広げおいく予定です。 ZOZOでは、䞀緒にサヌビスを䜜り䞊げおくれる方を募集䞭です。ご興味のある方は、以䞋のリンクからぜひご応募ください。 corp.zozo.com
  Linux初心者がAzure仮想マシンでHTTPサヌバヌを構築した話 --> こんにちは新卒でサむオステクノロゞヌに入瀟したごたたぐろです。 本蚘事では、Linux初心者が研修で埗た孊びを以䞋の構成でご玹介したす。LinuxはITパスポヌトなどの資栌勉匷で少し知っおいる皋床だったのですが、この床新卒研修の䞀環ずしおLinux仮想環境でのサヌバ構築を行いたした。 これからLinuxを孊ぶ方の参考になれば幞いです。 Linuxに぀いお Linuxずは LinuxはWindowsやMacのようなOSOperating Systemの䞀皮です。OSSOpen Source Softwareずしお公開されおいるため、䞖界䞭の開発者が自由にプログラムの䞭身を確認したりカスタマむズできたす。 厳密にいえば、「Linux」ずはOSの栞心である「カヌネル」のこずを指すようです。しかし実際には、カヌネルに独自の管理ツヌルやアプリケヌションを組み合わせた「Linuxディストリビュヌション」のこずをLinuxず呌ぶこずが倚いそうです。 有名なLinuxディストリビュヌションには以䞋のものがありたす。 RedHat系 RHEL、AlmaLinux など Debian系 Debian、Ubuntu など Linuxの特城 Linuxには以䞋のような特城がありたす。 基本的に文字ベヌスで操䜜する デヌタをディレクトリずファむルの入れ子構造で管理する ナヌザごずに暩限を蚭定できる 私の堎合、このあたりの特城を掎むのに時間がかかりたした。今も完党に理解できおいるか分からないのですが、私なりの蚀葉で簡単に説明したいず思いたす。 LPI-Japanずいう団䜓が初孊者向けに 「Linux暙準教科曞」 ずいう資料を公開しおいるので、正確な情報を知りたい方はそちらを参照しおみおください。 基本的に文字ベヌスで操䜜する Linuxでは、キヌボヌドで呜什コマンドを入力するCUICharacter User Interfaceでの操䜜が基本です。 Linuxのコマンドは基本的に「コマンド」「オプション」「匕数」で構成されたす。 同じ操䜜でも、ディストリビュヌションによっおは別のコマンドやオプションが存圚する堎合があるため、泚意が必芁です。 デヌタをディレクトリずファむルの入れ子構造で管理する Linuxでは、デヌタはディレクトリずファむルの入れ子構造で管理されたす。 ディレクトリはフォルダのようなもので、ファむルを敎理するための入れ物です。ディレクトリの䞭にさらにディレクトリを䜜るこずもでき、これを入れ子構造ず呌びたす。 ファむルを操䜜する時には、ファむルの䜏所パスを指定する必芁がありたす。パスには、最䞊䜍/ルヌトディレクトリからの絶察パスず、珟圚のディレクトリからの盞察パスがありたす。 絶察パス /home/username/newdir/file1.txt 盞察パス(珟圚の䜍眮が/home/usernameの堎合) newdir/file1.txt ナヌザごずに暩限を蚭定できる Linuxには「ナヌザ」ずいう抂念がありたす。ナヌザには、人がログむンしお操䜜を行うためのものの他に、人がログむンできず内郚でプログラムを動かすためのものもありたす。 Linuxでは、ナヌザごずに暩限を蚭定できたす。暩限には、読み取りr、曞き蟌みw、実行xの3皮類がありたす。 䟋えば、ファむルに䜕か曞き蟌みたいず思っおも、自身が操䜜するナヌザにその暩限がなければ曞き蟌むこずはできたせん。 暩限を蚭定するコマンドもあるため、必芁に応じお割り圓おたり倉曎する必芁がありたす。 本章の内容は以䞊です。 次章では、実際にLinux仮想環境を甚意しおサヌバ構築を行った手順をご玹介したす。 Linux仮想環境でのサヌバ構築 仮想マシン(AzureVM)の甚意 Linuxは、コンピュヌタハヌドりェアの機胜を管理しプロセスずの仲立ちを行うカヌネルず、カヌネルに人間の出した呜什コマンドを翻蚳し䌝えるシェルで構成されおいたす。 実際にLinuxを動かしお孊ぶには、コマンドを出す察象ずなるコンピュヌタが必芁です。 しかし私が珟圚䜿っおいるコンピュヌタはWindowsずいう別のシステムが管理しおいるため、Linuxのコマンドを曞いおも通じたせん。 そのため今回は仮想化されたコンピュヌタである「Azure VMVirtual Machines」ずいうクラりドサヌビスを利甚しお仮想環境を構築したした。 仮想マシンOSには、「Red Hat Enterprise Linux (RHEL) 9.4」を遞択したした。 Windows環境を維持したたたLinuxを実際に操䜜する方法は他にもいろいろあるので、ご自身のパ゜コンやその他条件に応じお遞択するこずをおすすめしたす。 仮想マシンにSSH接続 仮想マシンを䜜成したら、次はそれに接続する必芁がありたす。 今回はSSHずいう通信プロトコルを䜿っお接続したした。 SSHは暗号化された通信を行うためのプロトコルで、今回のようにコンピュヌタが手元にないリモヌト堎合でも安党に接続するこずができたす。 SSH接続の手順は以䞋の通りです。 仮想マシン䜜成時に生成された秘密鍵を自分のパ゜コンに保存する タヌミナルコマンドプロンプトを開き、以䞋のコマンドを実行しお接続する ssh -i 秘密鍵のパス ナヌザヌ名@IPアドレス 初回接続時には、ホストキヌの確認が求められるので「yes」ず入力 HTTP通信に必芁なもののむンストヌルず蚭定 䜜成した仮想マシンには最䜎限の機胜しかないため、目的に応じお必芁な郚品や蚭定を远加する必芁がありたす。 今回は、Webブラりザにアドレスを入力するずWebペヌゞが衚瀺されるようにしたかったので、Apacheずいうものをむンストヌルしたした。 Azure Portalで受信ポヌト芏則の倉曎 認蚌のため受信ポヌト22番SSHを蚱可する ゜ヌスは安党のため自分のIPアドレスに限定する 仮想マシン䞊でApacheのむンストヌル sudo dnf install httpd Apacheの起動ず自動起動蚭定 ・サヌビスの起動 sudo systemctl start httpd ・自動起動の有効化 sudo systemctl enable httpd RHELの内郚ファむアりォヌルでHTTPトラフィックの蚱可 ・HTTPの蚱可 sudo firewall-cmd --add-service=http --permanent ・蚭定の反映 sudo firewall-cmd --reload Azure Portalで受信ポヌト芏則の倉曎 Webペヌゞを閲芧するため受信ポヌト80番HTTPを蚱可する ゜ヌスは自分のIPアドレスに限定する 衚瀺するコンテンツの䜜成 Apacheのデフォルト蚭定では、「/var/www/html」ディレクトリにHTMLファむルを眮くこずで、Webペヌゞずしお衚瀺されるコンテンツを䜜成できたす。 今回は、以䞋のコマンドで「index.html」を䜜成したした。 sudo vi /var/www/html/index.html Linuxでファむルを線集するには、vi゚ディタなどのテキスト゚ディタを䜿甚したす。 vi゚ディタには実際に䞭身を線集するむンサヌトモヌドず、ファむルの保存や終了などの操䜜を行うコマンドモヌドがありたす。 慣れないうちは操䜜が難しく、䜕床かパニックになりたした。   Webペヌゞの衚瀺確認 Webブラりザに仮想マシンのIPアドレスを入力するず、䜜成したWebペヌゞが衚瀺されたす。 Azure Portalの受信ポヌト芏則で゜ヌスを自分のIPアドレスに限定しおいるため、他のIPアドレスからはアクセスできたせん。 感想ずたずめ 以䞊が今回のサヌバ構築で行った内容でした。党くの初心者の私にずっおは非垞に充実した経隓ずなりたした。 実はこの埌も様々な孊習を続けおおり、珟圚は認蚌認可ずいうもっず高床な蚭定に挑戊しおいたす。䜙裕があれば珟圚取り組んでいる内容もたずめたいず思っおいるため、たた機䌚があればよろしくお願いしたす。 長く぀たない文章を最埌たでお読みいただき、ありがずうございたした。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 1人がこの投皿は圹に立ったず蚀っおいたす。 The post Linux初心者がAzure仮想マシンでHTTPサヌバを構築した話 first appeared on SIOS Tech Lab .

動画

曞籍

おすすめマガゞン

蚘事の写真

SDV時代の「むネヌブラヌ」を目指す。パナ゜ニック オヌトモヌティブシステムズが远求する「゜フトりェア・ファヌスト」の本...

蚘事の写真

SDV時代の「むネヌブラヌ」を目指す。パナ゜ニック オヌトモヌティブシステムズが远求する「゜フトりェア・ファヌスト」の本...

蚘事の写真

Claude Codeを組織で䜿いこなす— サヌバサむドAI゚ヌゞェント運甚の実践知

蚘事の写真

゜フトバンク×OpenAIが挑む「AIの瀟䌚実装」── 日本最倧玚の倉革、その最前線ぞ

蚘事の写真

PM × 生成AI ― 日々の業務における生成AIの利掻甚

新着動画

蚘事の写真

【ルヌプ゚ンゞニアリングずは】AIに自動で仕事を任せる前に決めるべき4぀のこず

蚘事の写真

「Noetra」単なる囜産ChatGPTではない。3,800億円PJの本圓の狙い。゚ンゞニアが求められるスキルの倧転換

蚘事の写真

【ゞュニア゚ンゞニア䞍芁論】消えるのぱンゞニアだけなのか産業革呜の歎史から考える