FOLIOにおけるiOS/Android/macOSの端末管理とその運用について
これは FOLIO Advent Calendar 2017 の17日目の記事でもあります。
最近とらドラ!を観返していて、もうそろそろ10年経つとか思うとゾッとします。
さて、先日「Apple製品を会社として導入するための準備をした話」を書きましたが、 準備だけではなく、具体的な導入についても気になる点かと思います。
今回は、中々世に出てこないWindows端末以外のiOS、AndroidおよびmacOS端末をどういった感じで管理・運用していくと良いのか、 そのためにどのようなツールなどを使用しているかを一部紹介できればと思います。
大人の事情により、一言。 この投稿に記載されているポリシーおよび記載した内容は、個人の意見を多く含んでおり、 FOLIOとして適用・運用し続けていることを保証するものではありません。
なぜ端末管理を行うのか
- 情報セキュリティ対策
- 不正利用対策
- ライセンス管理
- コスト削減につながる端末の稼働状況の確認および棚卸業務の最適化
などとつらつら挙げましたが、情報端末は会社にとって大切な資産であり、 大切な情報も取り扱うため、適切に管理する必要があります。 また、現状把握のため社内情報システム業務において棚卸しなどを行いますが、 こういった業務を効率化する必要もあります。
更に、FOLIOは証券会社であるため、主に金融商品取引業者等向けの総合的な監督指針にもとづき、施策しています。 金融商品取引業者等向けの総合的な監督指針 - 監督上の評価項目と諸手続のシステムリスク管理態勢
の項目においても、
情報資産について、管理ルール等に基づいて適切に管理されていることを定期的にモニタリングし、管理態勢を継続的に見直しているか。
のように謳われており、やらないわけにはいきません。
端末の選定するにあたって
特に基準を決めないで選定してしまうと、選択のブレが発生し、管理が煩雑になってしまうため、 一定の基準を設けると、これらの課題が解消または緩和されることがあります。
挙げるとキリがないですが、パッと思い付くものですと、
- 仕入先
- 予算
- 携帯性
- セキュリティ
- スペック
あたりでしょうか。
仕入先
信頼できる提供元から端末を仕入れるということは、基本的なことではありますが重要なことでもあります。
端末は製品や取扱先によって品質に違いが出てきます。 ここで言う 品質 とは、バグの少なさや耐障害性、サポートなどを想定しています。 また、
また、中古の場合、品質の低下や不正なプログラムの混入などの可能性があります。
そのため、端末の購入は信頼できる提供元から購入するようにしましょう。
予算
購入金額は一番みなさんが気にするポイントかと思います。 会社が出せるお金は有限であるため、予算によっては何かを妥協するという選択をとることもあります。
安いことがすべてではないですが、 相見積を行うことで経費を削減できる可能性が高くなります。 さらに、視野が広くなり、より良い端末を選択することにもつながります。
携帯性
会議室などに端末を持ち運び、電子化を進めることで、紙の管理コストを減らすことができます。
また、場所にとらわれない働き方への挑戦や時間当たりの生産性を向上させる施策など、 働き方変革に取り組むことは、働きやすい会社の大きな一歩になることでしょう。
セキュリティ
やはり会社としてはこれは特に重要視する項目です。
セキュリティ ということを考えるのであれば、 まずは、扱う情報にどのようなものがあるのか。ということを整理しましょう。 その整理された情報区分に応じてセキュリティ対策を適用していくことが必要です。
もし扱う情報が整理できていない場合は、まずは整理をするところから始めることをオススメします。
ただ単に
- 「外部への持ち出しは危ない」
- 「責任は誰が取るんだ」
みたいなことを言っていたら、この競争社会で生き残れないです。 そうしないと利便性が下がり、従業員のパフォーマンスだって上がりません。 もちろん情報の種類によっては持ち出せないケースも出てきます。
と、セキュリティだけで1記事以上書けてしまいそうですので、踏み込んだ話はまた別の機会に。
前置きが長くなってしまいましたが、端末選定においては以下のようなこと考慮してみると良いと思います。
施策 | 主な効果 | 端末選定において考慮すること |
---|---|---|
多要素認証 | パスワード認証のみより高い安全性を得る | 多要素認証対応かどうか |
ディスク暗号化 | ブートOS変更によるデータ解読防止 | SSDの選択とディスク暗号化対応かどうか |
ファームウェア暗号化 | 起動ディスク以外の端末のみでのOSが起動 | セキュリティチップ内包かどうか |
上記を全部を満たす必要はないものの、端末選定におけるセキュリティについては
本当にやりたいことがなんだったのか
ということに立ち戻って選定いくようにしましょう。
スペック
業務を効率化し、従業員に快適な労働環境を提供するためには、 業務内容に応じて、端末のスペックを変更していくことも必要となります。
もちろん予算が許すなら、すべての従業員に高スペックな端末を貸与したい!
FOLIOのWindows端末以外の端末たち
2017年12月1日時点のデータですが、以下のラインナップを取り扱っています。
iOS端末
機種 | 入手経路 | 台数 | 主な用途 |
---|---|---|---|
iPhone SE | 通信キャリアレンタル | 7 | 開発、緊急連絡 |
iPhone 6 | 通信キャリアレンタル | 40 | 緊急連絡 |
iPhone 6 | 寄付 | 2 | 開発 |
iPhone 7 | Apple直販 | 1 | 開発 |
iPhone 7 Plus | Apple直販 | 1 | 開発 |
iPhone 8 | Apple直販 | 1 | 開発 |
iPhone X | Apple直販 | 2 | 開発 |
iPad | Apple直販 | 1 | 開発 |
ご覧の通り、主に開発と緊急連絡用途として使用しています。 「緊急連絡用途」と堅く言っていますが、 外出先でのチャットやメール使用、システム障害のアラート通知受領などで主に使用するということです。
また、約10個のApp Storeのアプリケーションを使用しています。
Android端末
機種 | 入手経路 | 台数 | 主な用途 |
---|---|---|---|
Nexus7など | 購入 | 4 | 開発 |
SCV33など | 寄付 | 2 | 開発 |
ほぼ開発用途にしか使っていません。 細かい機種にあまり意味はないので、ざっくりと載せています。
また、約5個のGoogle Playのアプリケーションを使用しています。
macOS端末
機種 | 入手経路 | 台数 | 主な用途 |
---|---|---|---|
MacBook Pro | Apple直販 | 30 | 開発 |
MacBook Air | Apple直販 | 4 | 開発 |
iMac | Apple直販 | 9 | 開発 |
FOLIOのサービスを開発するために、主にクリエイターが使用しています。 クリエイターについてはFOLIO アドベントカレンダー1日目の記事を御覧ください。
また、有償/無償含め約10個のMac App Storeのアプリケーションを使用しています。
緊急連絡用途としてiOS端末を選択するということ
普段、従業員に携帯してもらう会社支給の携帯端末にiOSを選択した。ということになるのですが、 これはiOSの方がAndroidより、エンタープライズにおける管理のしくみが単純に豊富であるということに尽きます。
Androidも近年、エンタープライズにおける管理のしくみが整いつつあります。
Android 5系から Device Owner Mode と呼ばれる、会社が所有するAndroid端末を従業員に配布し管理するしくみが搭載されました。 さらに、5系は adb
コマンドを用いないとDevice Owner Modeにできませんでしたが、6系以降はその必要がなくなりました。 アプリケーションも、Android for Work専用の社内公開に限定したアプリケーションストアを使用できます。
しかし、たとえばGmailを使いたいとなると、Androidのシステム的にアカウント接続をすることになってしまいます。 管理者の設定でアカウント接続を不許可として制御可能ですが、そうなると、Gmailが使えなくなってしまいます。 それではと、アカウント接続を許可してしまうと、個人で使用しているGoogleのアカウントがAndroidのシステムに接続可能となってしまい、 挙句にはそのアカウントで、通常のGoogle Playも使用できてしまいます。 公私混同を誘発しかねない中々香ばしい仕様です。
また、Androidアプリケーションの仕様上しかたないのですが、アプリケーションによってさまざまなユーザー権限を求めてきます。 使用者の要望で入れたいアプリケーションがあったとしても、「この権限は許容できない」ということも多々あります。 せっかく便利なアプリケーションなのに会社での使用を考えると導入できなくなるケースも出てきて、使用者の利便性を損ねることにもなりかねません。
上記のほかにも問題点はあるのですが、挙げるとキリがないのでこの辺で。
その点、iOSは長年エンタープライズで使われてきており、 DEPやVPPなど管理のしくみやMDM用のAPIが多く用意されているため、制御が細かく設定できるなど、会社での使用におけるしくみが豊富です。 社内情報の業務効率化を考えると、2017年時点では、iOSを選択する方が適切であると判断しました。
キッティング
社内情報システム業務に携わっていない方はあまり聞き馴染みのない単語かと思いますが、 要はすぐに使えるように準備する作業のことです。
キッティング効率化
キッティングは、使用者が増えてくると、すべての設定を1つずつ流し込むのがたいへんになってきます。 そのため、キッティングを効率化してくれるEMM(エンタープライズモビリティ管理)が提供されているツールを導入してみることにしました。
EMMと大層なことを言っていますが、
- MDM(モバイルデバイス管理)
- MAM(モバイルアプリケーション管理)
- MIM(モバイル情報管理)
の機能を包含しているツールを示しています。
EMMツール
ツール | 主な対応OS | 料金 |
---|---|---|
プロファイルマネージャー | iOS, macOS | 2,400円(macOS Server代) |
GSuite モバイル管理 | iOS, Android, Windows Phone | 無料(別途GSuite導入) |
MobileIron | iOS, Android, Windows Phone | 450円〜 device/month |
CLOMO | iOS, macOS, Android, Windows, Kindle | サイト参照 |
Jamf Pro | iOS, macOS | 有償 |
Cisco Meraki Systems Manager | iOS, macOS, Android, Windows Phone, Chrome OS, Windows | 100台まで無料 |
これら以外にもさまざまなツールがあります。
ツールは規模やフェーズなどに伴い、柔軟にリプレイスすることによりコストを抑えることが可能となります。 ソフトウェア開発でも共通ですが、移行コストが明らかになっていない段階で、 将来のことを考えすぎてしまうとそれ自体が負債になる可能性があります。 移行コストはかかるものである、と割り切ってしまうのもツール選定には必要だと思います。
いろいろと挙げましたが、FOLIOではiOSとAndroidで1つのツール、macOSでプロファイルマネージャー(順次新たなツールに移行予定)を選択しました。
iOSとAndroidで1つのツールを採用した理由
iOSとmacOSに対しては機能が特化している。というツールが多いですが、 QAチームや開発者が端末を誰が持っているのかを把握したい需要にも答えたかったため、 iOSとAndroidのモバイル端末という単位で一元管理ができるツールを選択しました。
選定理由を細かく挙げると数が多くなってしましますが、
- 管理コンソールのSAML対応
- 所有者一覧のActive Directory連携
- root化チェックなど機能の豊富さ
- 細かいセグメント分け
- iOSとAndroidのモバイル端末の一元管理
- DEPやVPPとの連携(詳しくはApple製品を会社として導入するための準備をした話を参照)
- Android for Workとの連携
- 監査ログの出力
- 端末リストのステータス付きCSV出力
あたりが決め手となりました。
macOSでプロファイルマネージャーを採用した理由
導入したフェーズでは外部のツールを使うにはオーバースペックであり、 自社でmacOS Serverを持っていたため、ローカルネットワーク内に設置して、こちらで運用することにしました。
しかし、最近macOS端末の使用者が増えてきて、手動で行っていた設定の流し込みにミスが発生したり、個別対応が多くなったりしてきました。 そのため、外部のツールへの移行を進めてさらなる効率化を図って行くことにしました。
なぜ最初から外部のツールを導入しなかったかとよいますと、 予算はもちろんでしたが、最大の理由は最小ロットが50や100ライセンスなど、我々にとっては大型であったためです。
運用におけるTips
ここでは実際運用の際に気を付けた方が良い点などを紹介していきます。 読者のお役にたてば幸いです。
共通編
ショルダーハック対策
いわゆる覗き見対策というやつです。
外部へ持ち出しとなると、関係者でない人にも端末が覗き見られる機会が増えます。特に、モバイル端末においてはその確率が非常に高くなります。
対応方法としては、プライバシーフィルタなどのディスプレイの視野角を狭めて、 正面からのみディスプレイを正常に見られるように、対策としてシートなどを貼るべきです。 何も行わないより、何かしら対応策を講じることは必要であると思っています。
もちろん、物理的な対策にも限界があるため、 秘密情報や機密情報を扱う状況下では他者に見られることのないように、 「人混みの中では使用しない」など従業員への教育も必要となります。
iOS編
正規販売店経由以外の端末も管理端末にしたい
中古の端末を使用するなど、Apple直営販売店以外から仕入れた端末も使いたくなることもあるかもしれません。 DEPを使用する場合、Apple直営販売店からでないと、各種MDMサーバーに端末を割り当てることができません。
実は、EMMサービスによっては Apple Configurator を介してマニュアルでMDMサーバーに端末を割り当てることができます。 また、iOS 11の端末の場合、Apple Configurator 2.5以降を使用すると、Apple直営販売店から購入していない端末もDEP登録できるようになりました。
中古の端末を使用する際は、必ず端末を工場出荷状態に戻してから使用するようにしましょう。
参考までにCisco Meraki Systems Managerでどのように設定するかのドキュメントのリンクを貼っておきます。
Enrolling and Supervising iOS Devices using Apple Configurator 2.5 or Later
デバイス名を固定したい
デバイス名は社内のネットワークでの使用状況を確認する際にアクセス元を調べたり、デザリングで一意特定したりする際など、管理において有用です。 iOSではプロファイルの設定で、デバイス名を変更を制御できます。 デバイス名の変更を従業員に許可させてしまうと、一意特定が難しくなるため、デバイス名の変更を不可にすると誤って変更されずに済みます。
しかし、EMMツールにはデバイス名を変更する機能がないものが多く(私の観測範囲では見たことがない)、 かといって、プロファイルが撒かれてしまうとデバイス名が変更できません。
ほかによい方法があればよいのですが、今のところわからずですので、少しテクニックを使用します。
- iOS端末を立ち上げ、
こんにちは画面
を表示させます - iOS端末をMacに接続させます
- Mac側でApple Configuratorを立ち上げます
- 接続したiOSが一覧に出てくるので、右クリック > 変更 > デバイス名。.. を選択します
- デバイス名変更画面が出てくるので、あらかじめ決めているデバイス名に変更します
端末によってはアクティベーションが終わっていないとデバイス名が変更できないことがあるので、 その場合はアクティベーションを済まして、その後いったんiOS端末側の作業をやめて2からの作業で解決します。
Android編
工場出荷状態にしたい
Android端末は開発用途において、さまざまなバージョンそろえるために中古で端末を取得するケースも多いと思います。
- 電源を切ります
- 電源 + 音量下 または 電源 + 音量下 + 音量上 または 電源 + 音量上 + ホームボタン を押してリカバリーモードにします
- 機種によってはリカバリーモードにする方法が異なる可能性があるのでご注意ください
- リカバリーモードはドロイド君が出て来る画面です
- 音量(選択)ボタンを押して選択カーソルを動かし、 Wipe data / factory reset の項目で 電源(決定)ボタンを押します
中古で手に入れる際の落とし穴
中古で手に入れた場合、Android 5系から導入された Device Protection 機能をONにされていた場合、 上記の工場出荷状態にする方法を使用してもアクティベーション途中で、以前ログインしていたGoogleアカウントを求められます。
そのため、中古で手に入れる際は上記の点念頭に置きつつ仕入れを行いましょう。
macOS編
ダウングレードしたい
ファイルフォーマットがAPFSになったりと新機能が豊富なmacOS High Sierra。 まだ世に出てまだ半年経っていませんが、数々のクリティカルな脆弱性が検出されており頭が痛い状態です。 また、使用しているツールなどの動作保証も追いつかず、社内情報システム業務従事者にとっては気苦労が絶えません。
既存の端末に関しては、まずは様子見でも良いと思いますが、 一番問題なのは新しいOSが出てから一定期間経つと、macOS端末が最新のOSがプリインストールされてやってくるということです。
その際に、一時的に過去のOSにダウングレードする方法を紹介します。
この方法は Apple社は推奨しておらず、あくまで自己責任となります のでご注意ください。
- macOS の起動可能なインストーラを作成する方法に記載されている方法を使用してインストールイメージを作成してください。
- ダウングレードしたい端末にインストールイメージを接続します。
- Optionキーを押しながら電源を入れてください。
- ブート先が選べるので、作成したインストールイメージを選択します。
- 「ディスクユーティリティ」を使用してHDD/SSDをフォーマットし直します。
- フォーマットが終わったら1つ前の画面に戻ります。
- 「macOSをインストール」を選択してインストールを開始します。
これでOSをダウングレードできます。
masコマンドの悪夢
mas
コマンドはMac App StoreのアプリケーションをインストールするためのSwift製のコマンドラインインタフェースです。
macOSにおいてMac App Storeのアプリケーションの使用をプロファイルで制限できます。 制限を適用すると、Mac App Storeのアプリケーションからアプリケーションをインストールできなくなります。 制限を適用してもソフトウェアアップデートは実行可能です。
しかし、mas
コマンドを使用すると、Mac App Storeのアプリケーションをダウンロードできてしまいます。 また、Mac App Storeからインストールされるアプリケーションは /Applications
に入ります。 この領域はデフォルトだと管理者権限を持っている人しかアクセスできない領域ですが、 mas
コマンドを使用すると 管理者権限がないユーザーが実行しても アプリケーションをインストールできてしまいます。 Apple社に問い合わせ、電話で回答をいただきましたが、解決の目処は立っていないとの旨を伝えられました。
ざっと調べたところ、Mac App Store関係のCocoa APIを直接たたくと、プロファイルの制限を無視して処理が行われてしまうことにあるようです。 私の見解ですが、これは普通に脆弱性なんじゃないかなと思っています。 みなさんで声を大にしてもられえれば緊急度が上がると思いますので、ぜひよろしくおねがいします。
対応策
じゃあどうしようか、ということになりますが、
-
Terminal.app
などshellへのアクセスを禁止する- エンジニアが何もできなくなるので厳しい気はしている
-
mas
コマンドを使用禁止にする- 制限する方法はないので運用でカバーする
- エージェントを動かしてmasコマンドを制御する(リネームされたら意味ないので微妙)
- Mac App Store自体のアプリケーションを使用禁止にする(未調査)
- もしかしたらこれでもCocoa API自体はたたけてしまうかもしれない
などが考えられます。
正直、効力の高い具体的対策が思いついていないので、どなたか良い手法やアイデアお持ちでしたらご教示ください。
まとめ
端末管理は、情報端末は会社にとって大切な資産と情報を守り、かつ、社内情報システム業務を効率的に回していくために必要であるという話をしました。
また、端末選定においていくつか考慮点を挙げていきました。 従業員が高いパフォーマンスが発揮できるように、そして本当にやりたいことが何だったのかを見失わないように端末を選定すると良いという話をしました。
さらに、FOLIOで取り扱っているiOS、Android、macOS端末をどうやって管理しているか、その際に何個かの運用Tipsを紹介しました。 macOSに関して情報が少なくなってしまい、期待していた方申し訳ありません。 新しい環境に移行後、詳しいお話ができればと思っています。
端末管理は会社のフェーズや状況に応じて日々変化していくので、私が書いたことも答えではありません。 皆さんの会社に合わせた方法を選択、実行していきましょう。
宣伝
FOLIO では引き続き、社員に快適に働いてもらう環境を構築する社内情報システム担当を募集しています。
また、こんな社内情報システムっぽい記事を書いていますが、私のメインはバックエンドエンジニアだったりします。 エンジニア絶賛募集中ですので、興味がある方はぜひお声がけください!