顧客フロントSEのIT勉強ブログ

2022 Japan AWS Top Engineer / 2022-23 Japan AWS Certifications Engineer。AWS認定12冠、情報処理試験全冠。顧客フロントSEがなるべく手を動かしながらIT技術を学んでいくブログです。

Amazon S3 File GatewayにActive Directoryと連動したアクセス制御を行う

こんにちは、大石(@se_o_chan)です。
前回、プライベートサブネットにAmazon S3 File Gateway on EC2を実装しましたが、今回はそのFile GatewayActive Directoryと連動したアクセス制御を実装します。

前回の振り返り

前回実装したシステム構成は次の通りでした。

プライベートサブネットのEC2インスタンスAmazon S3 File Gateway(以下、File Gateway)を実装し、パブリックサブネットの踏み台からSMBプロトコルでマウントしてS3アクセスできることを確認しました。

File Gatewayの実装中にインターネットから直接アクセスが必要となる為、プライベートサブネットのルートテーブルに、インターネットゲートウェイへのルーティングを暫定的に登録するという癖のある手順を行いました。

frontse.hatenablog.jp

システム構成

今回のシステム構成は下記です。前回構築した環境を使います。

まず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の設定」のみです。簡単なのが実感できました。

参考情報