

「デジタルアイデンティティのやさしい教科書」の連載記事です。この連載で認証・認可、権限管理などサイバーセキュリティにおけるアイデンティティの基礎を学ぶことができます。
IDとは識別子(Identifier)です。システムやアプリケーション内でユーザー、デバイス、プロセスなどを一意(Unique:ユニーク)に識別するための基本情報を指します。IDは、主体(subject:人・デバイス・プロセスなど)がリソース(object:目的となるもの)にアクセスする際に、これらエンティティが「誰(または何)であるか」を検証・確認するために使用されます。
具体的には、ユーザー名、メールアドレス、デバイスID、APIクライアントID、ホスト名などがIDに該当します。IDは認証(Authentication)や認可(Authorization)プロセスにおいて、エンティティを正確に識別する重要な属性として機能します。
アカウントは、システム内でIDに紐付けられた、権限、設定、アクセス情報を管理する単位です。主体がリソースにアクセスできる範囲や操作可能な権限を制御する役割を持ちます。
アカウントには、ID(ユーザー名やメールアドレスなど)を中核に、ロール、セキュリティ設定、ログイン履歴などが含まれます。この情報を基に、システムは主体を正確に識別し、適切な権限を付与します。
また、IDやアカウントと密接に関わる「アクセス管理」の仕組みについては、アクセス管理とは―現代のセキュリティに不可欠な仕組みで詳しく解説しています。
サイバーセキュリティの文脈では、アイデンティティとは、IDやアカウントなどを含む広い概念を指します。NISTのデジタルアイデンティティガイドライン(NIST SP 800-63-3)では、以下のように定義されています。
"An identity is the set of attributes that uniquely describe an entity within a given context."(アイデンティティとは、特定のコンテキスト内でエンティティを一意に識別するための属性の集合である。)
例えば、社員番号のような自社でしか通用しないアイデンティティや所属部署という属性もあれば、実名やメールアドレスのように組織外でも通用するアイデンティティもあります。特定のシステムでのアカウントのユーザー名、パスワード、ロール(権限)もアイデンティティに含まれます。
・Identity
役割
ID、アカウント、属性などを含む、エンティティを一意に識別するための情報全体。
例
Name: Taro Yamada Department : business technology Email: taro@example.com
・ID(Identifier)
役割
アイデンティティを一意に特定するための属性。単一の識別子。
例
user123 taro.yamada@example.com
・アカウント
役割
IDにもとづき、システムやIT環境の中でリソースへのアクセス権限や設定を管理する単位。
例
username:user123 Email: taro@example.com Role: Admin
情報システムに関連する事柄で説明すれば、アイデンティティは上記のような定義になりますが、誕生日、家族構成、好きな食べ物、飼っていたペットなど、あらゆるものはアイデンティティを構成する属性であると言えます。いわば、アイデンティティとは、少し哲学的な言い方になりますが、そのものが持つ属性の束のようなものであり、その人やものを形作る認知できる属性の集合体です。実際に、過去には秘密の質問として、好きな食べ物やペットの名前などを認証情報にしていました。これは、多くの脆弱性や問題があったため今では用いられなくなりましたが、確かにアイデンティティの一部に他なりません。
このように、アイデンティティは多面的で曖昧ですが、現代のデジタルアイデンティティの領域においては、標準化されたプロトコルやそれを支える暗号技術によって、システムはそのエンティティの検証可能な属性をもって、主体を識別します。第2章から詳しく解説しますが、現代のシステムでは、主体の主張する属性が検証可能であることが求められます。
アカウントが見えづらくなりがちなシャドーITも、アイデンティティ管理の課題のひとつです。シャドーITについてさらに詳しく知りたい方は、Josys ブラウザ拡張機能によるシャドウ IT の管理もご覧ください。
なぜ多要素認証が主流になったのか?なぜWindows11ではTPM2.0が必須になったのか?パスキーはなぜ普及しようとしているのか?パスワードレス、公開鍵基盤(PKI)、X.509証明書、デジタル署名、ハッシュなど暗号技術はなぜ必要なのかなど、アイデンティティに関する疑問や技術を本連載で明らかにしていきます。
セキュリティやIT関連の用語として、エンティティとは、識別可能な一意のすべての「実体」を指します。エンティティはID(識別子)などの属性(Artribute)情報を持つ箱や束のようなもので、人やデバイスだけでなく、システムやプロセスなど無形のリソースも含まれます。
例えば、ユーザー エンティティは、一意のID(メールアドレスやUUIDなど)や部署・役職・ステータスなどの属性およびロールなどの情報が含まれます。また、デバイス エンティティは、デバイスID、シリアルナンバー、OSバージョン、場所、その他ハードウェアやソフトウェアの構成などの属性を持ちます。

本記事では、NIST SP 800-207(Zero Trust Architecture)と同様に、リソースをサーバ、システム、データ、アプリケーション、デバイス、ネットワーク機器など、組織が管理する資産とします。保護すべき対象であり、適切なアクセス制御が必要です。組織のネットワーク内だけではなく、クラウドサービスで管理しているアカウント・データなど、有形無形を含む情報資産も対象です。また、本記事においては、アクセスや操作をする対象として、英単語のObject(目的・目標)と同義として扱います。
NIST SP 800-207(Zero Trust Architecture)
"Resources are the information, data, applications, services, or assets that users or entities request access to." (リソースとは、ユーザーまたはエンティティがアクセスを要求する情報、データ、アプリケーション、サービス、または資産です。)
コンテキストは直訳すると「文脈」ですが、サイバーセキュリティの分野では、ユーザー、デバイス、システムといったエンティティの属性や状態、環境の変化を相関的に捉えることを指します。コンテキストによって、現在と過去の状況からリスクを判断することに活用されています。
例えば、普段は、日本からあるシステムへアクセスしていたユーザーが、1時間後に突然、ロシアからアクセスしてきました。このコンテキストは、物理的に不可能な速度で移動していることを示しています。アカウントのなりすましなどの不正アクセスのリスクが高く、すぐにアクセスを遮断すべきという判断ができます。
次回は、「デジタルアイデンティティ管理の目的と必要性」について、ゼロトラストに絡めながら解説します。お楽しみに!


今回のジョーシスラーニングは、株式会社メルカリ IT Service Teamの木村さんをゲストにお迎えして、「GASを活用した情シス業務の超・自動化術」をテーマとして情シス業務効率化のベストプラクティスを解説していただきました。
前編では、そもそもGASとは何かといった基本から、GASを使ったメルカリの活用事例をご紹介します。後半では、ラクスル株式会社 取締役CTOの泉との「自社内製ツールとSaaSの使い分け」に関するディスカッションや、よくあるQ&Aについて解説します。
本コンテンツでは、前編・後編に分けてお届けします。
<スピーカー>
木村喜生|株式会社メルカリ IT Service Team

まずは、そもそもGAS(Google Apps Script)とは何か。GASを使うことで、どんなメリットがあるのか。といったことを中心に解説していただきました。元々、木村さんはエンジニア教育事業で起業された経験を持つこともあり、要点を絞った解説でGASの理解を深めことができます。

木村さん:Google Apps Script(以下GAS)とは、Googleが提供するJavaScriptベースのプログラミング言語のことです。分かりやすく言うと、ExcelマクロのGoogle版だと認識してもらえれば良いかと思います。GASを使えば、Googleのアプリケーションのカスタマイズを簡単に行うことができます。
もう一点、情シス部門におけるGASの大きな特徴としては、Google Admin APIもすぐに連携できることが挙げられます。つまり、認証のためのコードを記述しなくとも連携できるんです。例えば、Google Admin APIを使いたいときはGCP(Google Cloud Platform)のサービスアカウントを作って、シークレットトークンを発行、認証処理をゼロから書かなくてはいけないので、割と面倒で手間がかかりますよね。
そうしたときにGASを使えば、サービスの部分からAdmin APIを選択し、ノーコードですぐに使うことができます。それによって、エンジニアはコードを書き始めるまでのいくつかのステップを飛ばして使うことができるのがGASのメリットです。
木村さん:GASを使うことの大きなメリットは、GoogleスプレッドシートやGoogleドキュメント、Gmailなど、Googleが提供しているSaaSアプリで操作する作業が基本的にすべて自動化できることです。それによって、定期的に実行するような業務タスクを自動化できるので、手作業による手間が不要になります。
特に、情シス部門では社内ユーザーごとの、外部ツールのアカウント設定だったり、管理だったりがありますよね。ユーザーの数や連携するツールの数が増えれば、その分連携に必要な工数が増えます。
その際に、GASによって連携タスクを自動化すれば、1回でも100回でも、ボタンを1度クリックするだけで処理を完了させることができます。
木村さん:システム開発経験がない非エンジニアや、プログラミング初学者にとって、GASは最適な言語だと感じています。
一般的に、非エンジニアがイチからプログラミング学習をする際に苦労することは大きく3つあります。1つ目は、作りたいものが見つからないこと、2つ目は環境構築が複雑であること、そして3つ目は学習コストが高いことです。
それに対してGASは、作りたいものが作りやすい、環境構築が不要、そしてベースはJavaScriptと同じなので構文が理解しやすいといった特徴があります。コーディング自体も簡単なので、タイプミスが起きにくく、初心者にありがちな構文エラーに苦しむということも減ると思います。

複雑な環境構築を行わずに、手軽に自動化を設計できるGASですが、木村さんによればいくつかの注意点があると言います。GASを使う際に前提として理解すべきこと、そして事前準備について解説していただきました。

木村さん:GASは、誰でも手軽に自動化を設計できる便利なツールですが、万能なわけではありません。前提として、GASが解決できる部分は仕事の全体像の中でHOW(どう解決するか)の部分だけです。
そのため、WHAT(どこが問題なのか)、WHY(どこに原因があるのか)といった部分はあらかじめ検討しておかないと、GASのパフォーマンスを十分に発揮できないでしょう。
つまり、GASを使えば社内の問題がなんでも解決できるわけではなく、あくまでも問題解決のための手段であるということを理解していただけたらと思います。
木村:GASの使用に着手する前には、事前準備としてやらなければいけないことが多々あります。
例えば、アカウント発行の自動化をGASでやるとしましょう。その準備として、アカウントの作り方はどういう流れで進めるのか、プロビジョニングのあり方をどうするのか、といったことを事前に検討する必要があります。
そのため、GASを使う前には、「そもそも何が問題か」をもう一段深堀りして検討する必要があります。むしろ、「GASを使わずに解決できないか?」「理想はどうあるべきなのか」といったように、GASを使用するニーズが発生した時点でGASを使わない方法をあわせて考えるくらいがちょうど良いかもしれません。
そうした意味でいえば、GASを使わざるを得ない時点で、組織上未成熟な部分があると捉えた方が良さそうです。頼り過ぎは良くないですし、なんでもかんでも自動化で解決するというアプローチは、組織の成長を考えるとベストプラクティスとはいえないと感じています。
GASを使わなければならないときこそ、上流工程から見直すことが大切だと感じています。

GASを使わない仕組みが作れれば理想ではありますが、実際にはそう上手くいかないということも理解しています。やはり本質的な打ち手には、実施に至るまでに時間を要することがほとんどですし、多くの企業がそうした課題に直面しています。
例えば、システム開発に掛かる経営陣との握りや予算の確保、最優先のシステム対応事項の存在、満たさないといけないセキュリティ要件などによって、なかなか議論が前に進まないといったケースも少なくありません。
こうした理想と現実のギャップを埋めるためにGASは有効なアプローチです。外部ツールを使わなくとも手軽に内製化できるとあれば、予算的な問題はクリアできます。自社に開発リソースが不足している場合でも、GASを使えば非エンジニアでも実行できる自動化を整備可能です。
その他にも、特定の組織だけ例外的に実行したい処理や、集計に時間のかかるKPIモニタリング、ツールを入れるほどではないが手間が掛かるタスクなど、日常業務の中で顕在化する様々な問題解決に役立ちます。
GASを使うことで、あらゆる業務タスクの自動化が実現できます。メルカリでは実際にどういった場面でGASを利用しているのか、具体例を交えて解説していただきました。

木村さん:新規で入社した人の各種アカウントを自動で発行する仕組みを構築した事例です。人事マスタから新規ユーザーの入社申請が入ったら、スプレッドシートに入社者一覧が自動作成されます。そのデータをGASが毎日読み込み、入社4日前の朝4時に各種ツール(oktaやGoogle Workspace、slackなど)のアカウント発行APIが自動的に実行され、その結果をSlack通知とスプレッドシートに記入することまで自動化しています。

木村:2つ目は、ヘルプデスクに届くJiraのチケット(課題・タスク)情報が一覧で溜まるようにした事例です。15分ごとにチケット情報を取得するように定期処理を設定しています。既に存在する情報であれば「更新」。存在しなければ「行を追加」。となるように設計し、常に最新のチケット情報が表示されるようにしています。
この設計で良かったのは、コスト観点の精査をする際など、派遣社員の方のチケット遷移がどうなっているかなどを見ることができ、スタッフごとの生産性管理に役立ったことです。

木村さん:3つ目は、各種ツールのアカウント情報やデバイス情報を全件取得し、自動更新するように設定しています。当社の場合は、各ツールの情報をそれぞれに対応したスプレッドシート上に取得し、その上で各スプレッドシートを1つのシートに統合するということを行っています。
例えば「Aさん」がどのツールのアカウント情報を持っていて、反対にどれを持っていないのかがひと目でわかるようになります。それによって、退職者のアカウント削除の対応漏れを見つけることが可能になりました。
また、ヘルプデスクに問い合わせが入ったときに、ユーザーの所属チームと入社日がわかれば、どの程度のITリテラシーや社内言語の理解があるかを予想できるため、どれくらい丁寧に説明すべきかといったことまで判断しやすくなります。
GASの活用による情シス部門の自動化術の他にも、他部門で汎用できるポイントや、組織的にGASを活用する際の注意点を解説していただきました。
木村さん:GASを使えば、データの集計を自動的に行ってくれるため、わざわざ手動で確認する手間やCSVファイルにエクスポートする手間が不要になります。
例えば、メルカリの情シス部門では、各ツールでの休眠アカウントを削りたいといったニーズがあり、そうしたときに、ユーザーごとに各ツールの最終ログイン日を確認しにいくのは非常に手間がかかります。1週間後に見直したら、最終ログイン情報が変わっているといったことも起きるかもしれません。
こうしたアカウントの棚卸しの際にGASを使えば、自動でデータを収集してくれます。その結果、どのツールを現在何人が使っているかといったような質問を受けた場合でも、わずか数分で回答できるのです。
その他、当社の例でいえば「人事マスタにいないのにGoogleアカウントがアクティブなユーザーはどれか?」であったり、「PCを持っている業務委託の一覧を出してほしい」といった問い合わせにも対応できています。
またヘルプデスクとしては、依頼者の所属チーム、入社日、利用端末、権限タイプなどを即時で把握できるため、それによって相手のITリテラシーを推し量ることが可能です。
自動化による運用効率化を進める中で見落としがちな「設定ドリフト」。その対処法を知りたい方はよくある構成ドリフトの5つの課題と対策もご覧ください。
木村さん:GASは情シス部門以外にも、さまざまな業務で活用できます。例えば、労務部門であれば、有給日数が残っているメンバーに対して、有給残日数を自動で通知するようなことも可能です。
その他にも、法務部門の反社チェックの自動化、カスタマーサクセスであれば各種メトリクスの可視化、セールス部門であればSFDCとの連携など、定期的に行う業務を自動化させることができます。
基本的に定型業務の自動化に役立つため、まずは自部署で何が問題になっているか、どこに原因があるかを上流から捉えた上で、GASを使って効率化できないかといったことを考えると良いと思います。
木村さん:GASを使って個人情報などセキュリティリスクがあるものを扱う場合は、あらかじめセキュリティポリシーを作成することが必要です。
具体的には、個人情報の入ったシートのデータを外部に通知させない対策や、セキュリティ部門と連携する情報資産台帳に登録して、十分にテストするなどレビュープロセスを設けるなどが挙げられます。
こうしたことを確実にやらないと、社内の個人情報が外部の関係者宛に通知されてしまうなど、情報漏洩事故が発生するリスクもありますので、注意していただきたいポイントです。
想を描き、そこに対するギャップを埋める作業をすることに尽きると思っています。
木村さん:ここまでGASについて、当社の取り組みも含めて伝えてきましたが、何でもかんでもGASに頼るのではなく、あえて手作業を残すことも大切だということを最後に伝えたいです。
というのも、自動化を進めすぎると、今度はその自動化がちゃんと動作しているのか不安になってくるんです。例えば、手作業の場合、「自分の手でちゃんとやった感」が得られるのですが、それが自動化によって無くなってしまうんですね。
その結果、「エラーが起きていないか」といった不安な気持ちが生じてしまい、せっかく自動化したのに、手作業でダブルチェックをしていては本末転倒ですよね。そのため、あえて自動化しないポイントを残すことであったり、チェック作業そのものを自動化(2段階の自動化)することが大事だったりします。
GASとSaaS管理の組み合わせに興味がある方は、Josys ブラウザ拡張機能によるシャドウ IT の管理も参考になります。
今回は、情シス業務の自動化・効率化に役立つGASの活用術について、GASの基本から具体的な活用事例を紹介しました。実際の自動化施策がどう展開されたのか、より実践的な手法についてはGASの活用方法【メルカリの情シス業務の超・自動化術とは】で詳しくご紹介しています。
後編では、ラクスル株式会社 取締役CTO 泉とのディスカッションの様子を展開していきますので、あわせてご覧ください。
.avif)
構成ドリフトは、IT環境において意図しない設定変更や管理されていない修正が発生することで、システムの安定性やセキュリティに影響を与える要因となります。特にマルチクラウドやハイブリッド環境では、その影響が大きくなりがちです。
本記事では、構成ドリフトによって発生しやすい5つの課題と、それらを未然に防ぐための具体的な対策についてご紹介します。
開発・検証・本番環境が一致していないと、構成ドリフトが発生しやすくなります。たとえば、開発環境での非公開の変更が本番環境に展開された際、障害や動作不良を引き起こす可能性があります。
追跡されていない小さな変更でも、結果としてセキュリティホールを生み出すことがあります。これにより、システムへの不正アクセスや情報漏洩のリスクが高まります。
構成が文書化されていない、または監視が不十分な状態では、GDPRやHIPAAといった規制要件を満たせず、監査時に違反と判定される可能性があります。
構成ドリフトが進行すると、システム全体の応答速度や稼働率に影響を及ぼします。緊急対応として行った非公式な設定変更が、長期的なパフォーマンス劣化につながるケースもあります。
不要なリソースの使用や古い構成のまま運用を継続することで、インフラコストが無駄にかかる可能性があります。構成ドリフトを放置すると、結果としてコスト最適化が困難になります。
これらの課題を回避するためには、構成管理の自動化や監視体制の強化が有効です。
構成ドリフトは見落とされがちですが、実際には重大なセキュリティリスクを引き起こす可能性があります。
構成のずれ(Configuration Drift)によるセキュリティリスクの増加についてもご覧ください。
構成ドリフトを抑制するには、次のような対策が有効です。
シャドーITの増加も構成管理を複雑化させる一因です。
Josys ブラウザ拡張機能によるシャドウ IT の管理もご参照ください。
Josysは、構成ドリフトの監視・是正を支援するSaaSプラットフォームです。構成変更やアクセス権限を自動で追跡し、IT環境の一貫性と安全性を維持します。
Josysを活用することで、以下のような効果が得られます。
構成管理の強化は、ITガバナンス全体の向上にも直結します。
ITガバナンスの強化:SaaS管理による統制とコンプライアンス対応の記事も参考になります。
構成ドリフトは、セキュリティ・パフォーマンス・コンプライアンスすべてに影響を与える重要な課題です。しかし、適切なツールと運用プロセスを導入することで、未然に防止し、安定したIT環境を維持することが可能です。
Josysは、自動化と可視化を通じて、構成管理を効率化し、組織全体の運用基盤を強化します。 構成ドリフト対策の第一歩として、ぜひご活用ください。