以下の内容はhttps://rela1470.hatenablog.jp/entry/2025/12/22/000000より取得しました。


2025年 Kyash コーポレートエンジニアリング振り返り

@rela1470 です!
株式会社Kyash のCSIRTでCorporate Engineeringの統括をしています。

Kyashのアドベントカレンダーでは毎年、チームが1年間でやったことを振り返るブログを書いています。

adventar.org

昨年はこちら〜 rela1470.hatenablog.jp

なんと今年で7年目になるそうです!
7年ともなると、首が据わっていなかったはずの姪っ子が、いつの間にか小学校高学年になっています... 時の流れは早い...!

ということで、2025年も沢山の施策を行いました!
毎年恒例、自分だけの手柄のようにブログで振り返っていきます!

2025年カオスマップ

さて、これもおなじみ、2025年時点でのカオスマップです。

2025年カオスマップ

今年の変更点はちょっと控えめですね。

2024年時点でやるぞって言ってたもの

昨年のブログではこんな次回予告をしていました。

  • Chromebookを導入するぞ
  • SASEをやっぱり入れたいぞ
  • Jamf Connect ZTNAをさっき契約したぞ

Chromebookを導入したぞ

オペレーターさん限定ではありますが、WindowsからChromebookに完全移行することができました。
もともとカスタマーサポートチームはZendeskとGoogle Driveしか利用していないという前提条件があり、2024年にHENNGEを導入し、テナント分離を行っていました。

そのGoogle Workspaceテナント上でChrome Enterprise UpgradeでMDM管理をし、スペックもChromebook Plusという上位シリーズを揃え、万全の状態でお仕事をできるように構築を行いました。

www.google.com

Chrome OS、本当に良く出来ていますね〜!
姪っ子たちの学校から配られているくらい実績抜群だし、もともとOSの完成度は高いのは知っていましたが、管理側のツールもよく出来ています。

Google AdminにMDMが統合されている
制御内容も申し分無し

Powerwashという初期化コマンドがあるのですが、MacWindowsのOS初期化と比べて10分の1くらいの時間で終わるんですよね。検証で感動しました。

姪っ子が学校から貸与されているChromebook。ボロボロだけど堅牢性もそれなりにありますね。Powerwashのやり方を教えたら「悪いことしたらいけないんだよ...」って引かれました。

いまの小中学生はChrome OSがパソコンだと思っている子も多いって時代がくるってことですよねー。いやはや。
ぜひ色々挑戦してエンジニアになってほしいですね。自分は小学校でWindows 3.1のブート領域をぶっ飛ばしたり、中学校のActive Directoryサーバーのパスワードが「administrator」だったのに気づいてグループポリシー書き換えたらバレて校長室でバチクソ怒られてなんか最終的には凄いなお前って褒められたお陰でエンジニアになったので。

閑話休題

Chromebookの利用、今は1部署だけの対応なのですが、タッチパネルも付いている軽い機種も多いので、出来れば他の部署にも増やしていきたいなーと思っています。
出社も増えてきたので重いMacBook運びたくないんですよね〜。

今後Chrome OSAndroid OSが一本化されるって話があって、Android 16でデスクトップモードがベータ版で入ってるんですよね。これを持ち運び端末にしてもいい未来がくるかも?

Pixel 8で試してみたけど流石にまだ常用はできんね

SASEは入れられなかったぞ

毎年のように予算チャレンジしているSASEですが、やはり今年も敗北してしまいました。
というかそもそもCloudflare Zero TrustのFree Planで軽く動作確認したところ、Jamf Trustとは両立できないようでした。

どっちもWireGuardなVPNだもんね

Apple製品はNetwork Relayへの移行が進むっぽいので将来性はありますが、どうしようかな〜。と、現状維持な2025年でした。また来年。

Jamf Connect ZTNAはもちろん導入したぞ

情シスSlack側のアドベントカレンダーで書きましたが、2025年はJamf Trustの年だったな〜という感じです。

rela1470.hatenablog.jp

Jamf Trust、まだまだやったこと多いので、こっちの記事でも触れちゃおうかな。

初回ログイン時のハンドリング

Jamf Trustはデバイストラスト文脈で導入していますので、弊社基盤のIdPであるOneLoginでIP制限をかけており、Jamf TrustがONになっている時だけログインが可能になっています。

https://www.youtube.com/watch?v=8SLGf5Uumlw

ただ、Jamf TrustをONにするためには、ユーザー認証が必要。
そう、OneLoginにログインしないといけません。
OneLoginにログインするためにはJamf TrustをONにする必要があり…

何も考えないと、デッドロック状態になってしまいます。

learn.jamf.com

Jamf Trustがネイティブで対応しているIdPはEntra ID、Okta、Googleの3つのみ。弊社で導入しているOneLoginには未対応で、Entra IDをフェデレーションさせてログインさせています。
おこです。早くOneLogin対応してください。

OneLoginに穴をつくる

Jamf Trustの初回ユーザー認証時のみOneLoginの認証を弱める必要があるわけですが、あまり考えずに実装すると一定期間「無防備モード」にする... みたいな感じになってしまうのではないでしょうか。
ぶっちゃけ弊社も「PCセットアップ中ユーザーポリシー」ってのが2〜3年前までありました。ただ使い終わったあとに切り替え忘れたり、事故の原因になりかねないので、あまりやりたくないですよね。

免疫力はね、強くないと

そこで使うのがSmart Hooksです。
カスタムコードスニペットを認証の間に挟めるという有償オプションがあります。

www.onelogin.com

ログインしようとしているアプリID、ユーザーコンテキストが取得できます。

管理ツールなどはなく、REST APIのみの提供なのでちょっと玄人向け機能って感じではあります。

リリースされて数年経つんだがAPIだけで一向にWeb GUIが提供されないんだよな。とりあえずでつくった自作UIがもう2年使われている

本当は「Jamf Trustのログイン時だけ迂回」という処理を書きたいのですが、前述した理由によりEntra ID経由のログインなため、アプリ情報もかなり大雑把に送られてきます。
流石にそれを全通しするとガバすぎるため、今はセットアップ時にフラグを立てたあと、時限式で通す処理にしています。

1秒以内に返事をしないといけん

実はSmart Hooksには1秒以内にレスポンスを返さなくてはいけない、というルールがあります。

ユーザーコンテキスト以外にも必要な情報がある際、内部でAPIを叩く必要がありますよね。
以前はスクリプト内でOneLogin APIを叩き、追加でセットアップ中該当ユーザーか取得していました。

ただ、そのAPIが返答に2秒くらい掛かるような時があり、ログインに失敗する事例が多発していました。

時間帯によってユーザーログインが全くできなくなるので非常に問題

この1秒以内というのはなかなかシビアで、いくら通信を減らしても改善しなかったため、最終的には通信をゼロにしなくてはいけませんでした。
具体的には別途利用できる環境変数に対象ユーザーのIDを全て保持するようにし、ユーザー情報が書き変わる度にその環境変数を更新する...という、結構な力技で解決しています。

WebHookでユーザー情報変更を検知して、jsonを事前生成して環境変数に埋め込む

事前に環境変数はロードされた状態になるようなので、処理は0.1秒くらいに削減されました

以前はこのスクリプト内でSlack通知も行っていましたが、もちろんタイムアウト対象なのでLoggerでとりあえずメッセージだけ記録し、事後のイベントハンドラで後追いSlack通知するように変更しました。
通知は2〜3分遅れてしまいますが、まあ何もわからないよりはマシなのでね。

時間差でOneLoginちゃんが怒ってきます

リアルタイムで原因がわからないので、連続で5回失敗するとOneLoginちゃんが時間差で5回くらい同じこと言ってきてきます。すごい悪いことした気分になります。

その他やったこと

Jamf Trust以外にも、もちろん色々やってました。

複合機がなにもわからない

複合機を約6年ぶりに買い替えまして、ICカード認証のセキュアプリントを導入しました。
本当は買い替える予定なかったんですが、使っていた複合機富士ゼロックス時代のものだったので、ディスコンICカードリーダーの増設ができず。
Tooさんなどにも見積もり取りましたが、最終的には正当後継機である富士フイルムさんの複合機を購入しました。

クソデカタッチパネルが付いててすごい

ICカードのシリアル管理

で、初回の有償セットアップをケチっちゃったんですよね。結構なお値段だったので。
エンジニアの端くれなので行けるだろう...と。でもICカードと社員の紐づけの自動化、とっても苦労しました...

エンプラ機械ってホントムズいよね

最初はOneLoginのVirtual LDAPで繋ごうと思い、3日間挑戦したのですが、bindがユーザー名とパスワード以外どうやら仕様的に動作しないのでは?ということがわかりました。

onelogin.service-now.com

画面からパスワードを入力すればユーザー認証できる状態までは持っていけたのですが、今回はICカードのシリアル番号でログインさせたいわけで、残念ながら断念しました。

その後も隙を見つけて色々試行錯誤した結果、FUJIFILM IWproという謎のクラウドサービスを経由してEntra IDから情報を引っ張ってくるという構成になりました。

www.fujifilm.com

複合機自体もIWproも他の人の知見がないわけですよね、となるとソースがないからAIくんもポンコツで。
本当に試行錯誤しました... しんどかった。

罠だったのは3点。

ICカードのシリアルは大文字でないといけない

マニュアルのどっっっっっこにも書いてない。ほんと罠。

Entra IDの読めるパラメータに制限がある

これもマニュアルのどこにも書いていないんですが、読めるパラメータの制限がきつい。最終的に使っていなかったemployeeIdにシリアルを埋め込みました。

Entra IDのmail欄は有料ライセンスがないと空になる

これはEntra ID側の仕様ですね。知ってる人は知ってるのかもしれんけど...

UPNには全社員メールアドレスが入っているがmail欄には入っていない

弊社はBusiness Premiumライセンスをほとんどの人につけていたので気づかなかったんですが、Freeライセンスだとmail欄にメールアドレスが入らないんですね。
しょうがないのでスクリプトで流し込んでます。

初めてCodexくんに全部書いてもらいました。いい感じ。

Scopeの相談にも乗ってくれたのでとても工数削減できました。Entra IDだけはネットに無限に知見があるのでAIの相性も良いですね。

User-Mail.ReadWrite.Allでも行ける気がするんだけどうごかん...Entra IDむずかしい

備品の郵送返却を自動化した

PCの交換などをリモート対応することがあるかと思うんですが、その時に必要なのが「パソコン宅急便の箱」、ですよね。

この箱か純正箱じゃないと受け付けてくれないんですよね

business.kuronekoyamato.co.jp

先出しセンドバックだったらいいんですが、退職時など一方通行な際は困りますね。今までは空箱を送るというアホなことをしていました。
送料1,530円で空気を送る。せつない。

なにかいい案なにかなーと思っていたんですが、ヤマトさんに相談したところ、返品・交換サービスを紹介していただきました。

business.kuronekoyamato.co.jp

API経由で集荷を行えるだけでも良いサービスなのですが、なんとこれ本当はECの返品用なので、ヤマトの運転手さんが梱包材を持参して集荷くれるんですね!!!!神!
エンドユーザーはそのままPCを無梱包で手渡しするだけです。良い...

もちろんAPI連携なので、データ取れるところは自動化しています。

備品情報とか(Snipe-IT)

集荷先の住所とか(SmartHR)

初期費用5万、月額1万となかなかの費用ですが、空気を1,530円で送っていたことを考えると、まあアリかなと思ってます。

社内ツールのDBをTiDBに移行した

Corp-ITチーム謹製の社内ツールはすべてAWS Lambda上で動作しており、その特性からRDSは利用できず、Dynamo DBを利用していました。
しかしNoSQLなので、運用には一定の配慮が必要です。Schema変更とか大変なんですよね。
ヤマトのシステムを作っているときに爆発してしまったので、今回全ツールをTiDBに移行させました。

pingcap.co.jp

TiDBはフルマネージドのMySQL互換サービスで、個人的にはPlanetScaleをよく利用していました。
Hobby Tierが廃止されたタイミングで乗り換え先を探していたのですが、周りにTiDBいいぞおじさんが大量に発生したのを機に、つかってみることにしました。

といってもMySQL互換性が凄まじいので、ほとんど詰まることはなかったですね! increment idくらいかな。

DBが3台位にクラスタ化されていて、Primaryキーが凄まじい桁数になります。連続かどうかもわからないので別のID振りが必要。

価格もすごく安くて、支払いもAWS Marketplace上で1本化できます。

ただ、うちの社内アクセス規模だとFree Tierから抜け出せない。課金できない。推しなのに...

社内インフラをUniFiで更に内製化した

昨年、社内のインフラをCisco MerakiからUbiquiti UniFiにリプレイスしました。
フロアの一部でWi-Fiのハンドオーバーがうまく行かないなど、ちょっとした問題は発生しましたが、基本的には大成功だったと言っていいと思います。

meraki同様、どこでもメトリクスが取れて対応もラク

最近のUniFi OSアップデートで、普通のLAN口をWANにできる機能が出来たんですよね。これでネットワークのバランシングや冗長化が1台で済むようになり、完璧度が上がりました。マジ素敵。

画面上はFailoverと出てますが、うちはVLANで出口が別れてます

2025年は更に内製化を進め、本社以外の拠点でもすべてUniFiに移行完遂しました。

小規模拠点ではオールインワンのDream Machineを選定

監視カメラのシステム的にはHDD4台のRAIDとオンプレ回帰になるので、法定停電での故障を見越して多めに予算を付けましたが、今年は故障0でしたね。

新商品も続々とでてますねえ。おもろいです。

来年も攻めの改善していきたいと思います。UniFi最高。

Jamf for Mobile

さて、もう言うのも飽きましたがJamfも最高です。
今はJamf for Mobileが納品されて20日くらい経ったところで、そろそろAndroid側も触ろうかなといった感じ。
これを機にBluePrints化しようかなとか思ってるんですが、Jamf AccountのSSO設定とかサボっていたところが関係しはじめ、なかなか苦戦しています... でも最高なのでがんばる。

ということで

今年も盛り沢山でした!
盛りといえば会社的にも最近盛り返しており、自分としてもまだやれることがいっぱいありそうだなあと言った感じです。 採用も絶賛募集しているみたいなので、ぜひこにふぁーとカジュアル面談してみてください!

【PR】

pitta.me

herp.careers 【PR】




以上の内容はhttps://rela1470.hatenablog.jp/entry/2025/12/22/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14