Amazon S3 File GatewayにActive Directoryと連動したアクセス制御を行う
こんにちは、大石(@se_o_chan)です。
前回、プライベートサブネットにAmazon S3 File Gateway on EC2を実装しましたが、今回はそのFile GatewayにActive Directoryと連動したアクセス制御を実装します。
前回の振り返り
前回実装したシステム構成は次の通りでした。
プライベートサブネットのEC2インスタンスにAmazon S3 File Gateway(以下、File Gateway)を実装し、パブリックサブネットの踏み台からSMBプロトコルでマウントしてS3アクセスできることを確認しました。
File Gatewayの実装中にインターネットから直接アクセスが必要となる為、プライベートサブネットのルートテーブルに、インターネットゲートウェイへのルーティングを暫定的に登録するという癖のある手順を行いました。
システム構成
今回のシステム構成は下記です。前回構築した環境を使います。
まずManaged Microsoft ADを構築し、DHCPオプションセットにドメインネームサーバとして登録します。 その後、踏み台をドメイン登録させて、然るべきドメインユーザのみがFile Gatewayにアクセスできることを確認します。
実装する
Managed Microsoft ADを実装
では、まずManaged Microsoft ADを実装します。AWS Directory Serviceから「ディレクトリのセットアップ」をクリックします。
今回はAWS Managed Microsoft ADを選びます。
エディションは任意ですが、今回は検証向けに小規模に使うのでStandard Editionを選びます。ディレクトリのDNS名もお好きなものを設定していただければよいですが、ここではtest.storagegateway.localというドメイン名にします。Adminユーザのパスワードを設定しますが、管理者権限を持つユーザとして割り振られるのはAdministratorユーザではなくAdminユーザであることは要注意です。
Managed Microsoft ADを実装するVPCとサブネットを選びます。サブネットとしてプライベートサブネット2つを選んでいます。
この後、入力値の確認画面が表示されるので「ディレクトリの作成」ボタンを押せばManaged Microsoft ADの実装は完了です。 構築後、DNSアドレスが確認できるのでメモっておきましょう。後で使います。
DHCPオプションセットを設定
次にDHCPオプションセットを使って、VPC内の各サーバに対してManaged Microsoft ADをDNSサーバとして設定します。VPC > DHCPオプションセットのコンソールから「DHCPオプションセットを作成」をクリックします。
ドメイン名にManaged Microsoft ADを構築した時の「ディレクトリのDNS名」を、ドメインネームサーバーに先ほどメモったDNSアドレスを記入し、「DHCPオプションセットを作成」をクリックします。
次にVPCコンソールから、今回のVPCを選択してアクション > VPCの設定を編集に進みます。
DHCP設定 > DHCPオプションセットで、先ほど作成したDHCPオプションセットを選びます。
踏み台サーバを見てみると、DNSサーバがManaged Microsoft ADのIPアドレスになっていることが分かります。また、同じVPCに構築しているFile Gatewayを含むEC2も同様に、DNSサーバが切り替わっています。
踏み台をドメイン参加させる
これで踏み台サーバをドメイン参加させる準備が整いました。踏み台サーバで、システムのプロパティ(スタートメニューで「sysdm.cpl」と入力) > コンピュータ名タブの「変更」 から、ドメインのラジオボタンを選択後、Managed Microsoft ADのドメイン名を入力して「OK」を押します。
ドメインの管理者権限を持つユーザが必要となるので、Managed Microsoft AD作成時に設定したAdminユーザのパスワードを入力しましょう。
これでドメインに参加できました。その後、サーバ再起動を求められるので再起動します。
ドメインユーザ(admin@test.storagegateway.local)で踏み台サーバにログインすることが出来ました。
File GatewayにADと連動したアクセス権を設定
では、ようやく本題です。File Gatewayのアクション > SMB設定の編集 > Active Directory設定を選びます。
File Gatewayが参加するドメイン名(=Managed Microsoft ADのドメイン)とドメインユーザ・パスワードを指定します。これでFile GatewayとADの連動準備が出来ました。
次に、新しいファイル共有設定を登録しましょう。Storage Gatewayコンソールのファイル共有 > ファイル共有の作成に進みます。最初の「ファイル共有設定の構成」は前回構築時と特段変更点はありません。
つぎのファイルアクセス設定で、前回は認証方法として「ゲストアクセス」を選択していましたが、今回は「Active Directory」を選びます。これでドメインユーザしかSMBマウントできなくなります。さらに今回は「ユーザーとグループのファイル共有アクセス」から、Adminユーザのみアクセス許可にしてみます。「保存」ボタンを押し、次の確認画面で「作成」ボタンを押してファイル共有を作成します。
これでFile Gatewayのアクセス制御設定は完了です。
動作確認
最後に動作確認をしてみます。踏み台サーバにadminユーザでログインした状態で試してみると、無事正常にマウントできました。
別のドメインユーザでも試したいので、一旦踏み台サーバにActive Directory管理センターをインストールします。詳細は省きますが、こちらに手順の記載があります。
新規のドメインユーザとしてtest.userを登録します。
登録できました。
test.userで踏み台サーバにログインしなおし、File Gatewayのマウントを試してみます。すると確かにマウントできず、アクセス制御が効いていることが確認できました。
※エラーメッセージは「The user name or password is incorrect.」になっているので紛らわしいですが・・・
(補足)DHCPオプションセットを使わない場合
AD連動したアクセス制御を実装するには、File Gateway自身のDNSサーバをADに向けておくことが必要です。今回はDHCPオプションセットを使うことで、それを実現しましたが、File Gatewayを実装しているEC2自身にSSHでログイン(デフォルトのユーザ名はadmin、パスワードはpassword)して直接DNS設定することもできます。
上図の「2: Network Configuration」ですね。
まとめ
File GatewayのAD連動したアクセス制御設定を試しました。Managed Microsoft ADから実装したので少し長くなりましたが、アクセス制御に必要なのは、「DHCPオプションセットの設定」と「File Gatewayの設定」のみです。簡単なのが実感できました。