ALLSPICE

スパイスファクトリー株式会社のメンバーが運営するWeb開発メディア

ユーザ管理に関する基本説明と、AWS Directory Serviceでユーザ管理基盤を構築する方法について

ユーザ管理に関する基本説明と、AWS Directory Serviceでユーザ管理基盤を構築する方法について

Posted by MatsuraKoji | |システム開発

AWSインフラ環境構築・DevOps体制構築サービスを見る
クライアントのデジタルトランスフォーメーションを幅広く支援するスパイスファクトリー株式会社、インフラエンジニアの松浦です。
この記事では、Active Directory のマネージドサービスとして展開されている AWS Directory Service を用いてユーザ管理基盤を構築するケースについて考え、まとめていきます。

ユーザ管理・ユーザ管理基盤に関する基本説明

社内ネットワークに対する情報セキュリティ管理のためには、利用者ごとに適切な権限設定を行う必要があります。
こういった管理のための仕組みをユーザ管理といい、ユーザ管理を行うシステム全体の事をユーザ管理基盤と呼びます。

例えば、Windows を利用していると、 Active Directory が利用者を管理します。
使う PC が Active Directory に登録され、利用者が PC のユーザとして作成されます。

利用者が PC でログインする際に、ID とパスワード(ドメインも)を求められますが、このタイミングで Active Directory サーバに認証・共有ネットワーク利用の許可をもらうことになります。
そうすることで社内の共有サーバやプリンターの利用が許可される仕組みがユーザ管理です。

ActiveDirectory をユーザ管理基盤として利用すると共有ネットワークだけではなく Office365 などの外部サービスへSSOで利用できるようになります。

ユーザ管理基盤に認証をおこなうことで、 VPN の利用や SSO の認証を一元管理することができ、利便性もあがります。

Active Directoryとは

Active Directory とは、Microsoft がつくった PC などを管理するディレクトリサービスになります。
WindowsNT のころにはすでに存在していたもので、共有ディレクトリや共有プリンタなどを簡単につくることができます。
PC を登録することにより、ユーザ管理や権限をきめ細かく制御することができます。また、GUI で管理ができるため Windows に慣れている人であれば管理しやすいでしょう。

今やLDAPサーバとしても使えるようになってきており、Kerobers 認証をすれば Linux をPC同様に管理することも可能になります。
しかし、SSH-KEY が標準で登録できない、LinuxOS(CentOS6系など)で Kerobers が使えずLDAPサーバが必要になる、など Linux で利用するには注意が必要です。

LDAPについての補足説明

ここで LDAP という単語が出てきましたが、LDAP とは古くからあるディレクトリサービスで、DC や OU などを持つツリー構造でユーザや機器を管理するものです。
基本 CUI で管理し、LDIF という形式のファイルで登録削除をおこないます。
GUI は JAVA ベースの管理ツールがありますが、個人的にはインターフェースがわかりにくく使いづらい印象です。

また、LDAPサーバの中にもいくつか種類があります。OpenLDAP 以外にも商用バージョンのものがあったり、Active Directory がLDAPサーバとして利用できたりします。
構造も共通ではなくそれぞれ違いが存在し、LDAPクライアントの指定で吸収することもあります。
柔軟な仕組みで、用途によってツリーを作ることができる為、管理がしやすいのが特徴です。

ユーザ認証の仕組みの一つであるPAMについて

Unix系OSのログインに使う LDAP は、ログインするための外部認証サーバという位置付けになります。
ネットワーク機器にも使えるためデータセンターといったような端末が多い所でよく使われます。

また、SSH-KEY もLDAPサーバに保存されるため、サーバ側はLDAPサーバの指定をすることでログインすることができるようになります。
これらの認証には PAM という仕組みを利用しており、OS に登録してあるユーザと LDAP を利用するユーザが違和感なく利用可能になっています。
PAM はプラグインのように複数の認証を可能にしており、Active Directory との連携も可能になっています。

ユーザ管理はどこで行われるか

そもそも、ユーザ管理はどのようなときに行われるのでしょうか。
社内ネットワークに対する情報セキュリティ管理のために使わるため、やはり、企業組織でのPC管理などで使われることが多いです。
具体的には、Active Directory サーバでプリンタの共有やファイル共有を行うなどです。
PCにログインすると、ドメイン認証がおこなわれ、プリンターやファイル共有が利用可能になるイメージです。

こういったユーザ管理の為に、管理者はActive Directoryサーバでユーザの登録や削除を行います。
もう一方の LDAP も同じようにサーバやネットワーク機器のログインが共通化されます。
Active Directory はLDAPサーバとして利用できるため、サーバやネットワーク機器のログインも共通化することができます。

ユーザ管理をインターネット側でも利用可能にする必要がある

ユーザ管理を共通化することが、利便性の向上や管理負担の削減に有効なことは、先程説明した通りです。
しかし、いまは PC だけではなく Google Apps や MS Office Online などWebを使ったアプリケーションも普及しているため、社内の Active Directory だけでは管理が十分でない事もあります。

そこで、ユーザ管理をインターネット側でも利用可能にするよう、システム基盤を整備していく必要があります。
そのために、ローカルだけの管理から他へ管理する基盤をひろげる、要はシステムやネットワークを組み合わせて管理する対象を広げるために基盤を作っていきます。
そうしてシステムを拡張し、ユーザ管理基盤を作っていきます。

AWS Directory Serviceを利用する

Linux で Active Directory をLDAPサーバとして利用するには SSH-KEY などの拡張が必要です。
以前と比べ使いやすくなってきましたが、クラウドなどのインフラで利用するにはローカルに構築した Active Directory では少々難があります。

そこで、AWS Directory Service という Active Directory のマネージドサービスを利用します。

AzureADと比較して

AzureAD はフェデレーションサービスを利用し同期することで Azure の認証を localAD と連携することができます。
尚、AWSなど他のクラウドでは利用し辛い事も多いのでご注意ください。
Azure ADと比較して AWS Directory Service はフルサービスの Active Directory ということもあり、ADドメインのプライマリとして利用可能のようです。

社内Active Directoryとの同期には VPN などを利用します。AWS Site-to-Site VPN・AWS Direct Connect などで接続を行います。オンプレとの同期は信頼関係をつくることで同期することができます。
通常の Active Directory と同じ運用が可能なところが使いやすそうですね。

AWS SSOについて

AWS SSOと Active Directory を連携させことでシングルサインオン(SSO) が提供されます。

また、外部との連携には SAML を使用できます。
アプリケーションで認証を統合することもできそうで、AWS Cognito と組み合わせることでスマートフォンアプリとの連携も可能になります。
AWSコンソールの利用だとスイッチロールがありますが、よりシームレスな切り替えが可能になりそうです。

セキュリティ面で考案すべき事

このように便利なユーザ管理ですが、情報漏洩等のセキュリティ面を最大限考慮し、対策を取る必要があります。
基本的な考え方として、LDAP/ADを外部公開しないようにするなどが重要です。
そのためには、以下が代表的な対策になります。

  • VPCなどを利用し外部からアクセスできないようにする。
  • 外部からアクセスを許可する場合にはIPアドレスで制限する。
  • TLS(LDAPs)を掛け暗号化する。

さらに、以下も同時に行うことで情報漏洩リスクを下げることができます。

  • 閲覧権限を適切に管理する
  • 推測しやすいパスワードを使用しない
  • パスワード発行規則

大変重要な事ですので、必ずユーザ管理の取り組みとセットにして考えるようにしてください。

技術を組み合わせる事で、新たな発見がある

AWS Directory Service でユーザ管理を考えてみました。
業務系のアプリケーションやユーザ管理に向いているのでは、という点に対しては予想通りではありました。
しかし、Cognito の認証として利用することで、スマートフォンからデータを直接送信し Athena で検索させるような仕組みの認証基盤として使えそうだというのは、全くもって新しい発見でした。

また、ユーザ管理を一元的にできるので監査などもスムーズに対応できそうだと感じました。

古くからある技術と最新の技術を組み合わせる事で面白い発見が多くあったので、是非皆さまも色々挑戦してみて下さい。

また、弊社では開発からサービスの運用まで、幅広くご支援させていただいております。詳しいサービス内容に関しては、当社サービスページをご参照ください。
AWSインフラ環境構築・DevOps体制構築サービスを見る

=> アジャイルシステム開発に関するページ

無料相談はこちらから
 

このエントリーをはてなブックマークに追加
アバター画像
About The Author

MatsuraKoji

何かお困りのことはありませんか?無料でご相談を承っております!