Amazon Web Services ブログ
Linux 環境から Amazon FSx for Windows File Server のファイル共有にアクセスする
クラウドベースのストレージを活用するために、オンプレミスの Network Attached Storage (NAS) をクラウドに移行したいと考えるお客様が増えています。これらの多くのお客様の環境は混在しており、Windows と Linux オペレーティングシステムを組み合わせたワークステーションを使用しています。Windows オペレーティングシステムを使用する従業員にとって一般的なアプローチは、コンピュータを Active Directory に参加させ、ファイル共有を使用して共有ストレージにアクセスすることです。Active Directory は、ネットワーク内のデバイスへのアクセスとアクセス許可を管理できる Microsoft のディレクトリサービスです。コンピュータを Active Directory に参加させると、Active Directory を介した認証が可能になるだけでなく、共有ファイルシステムに対する適切なアクセス許可も付与されます。
Amazon FSx for Windows File Server (Amazon FSx) は、SMB プロトコルを完全にサポートすることにより、Windows と Linux の混在環境からアクセスできるようにします。これには、Linux SMB クライアントを使用した Linux からのアクセスも含まれます。お客様は共有ファイルストレージをクラウドに簡単に移動でき、AWS でフルマネージド型のネイティブ Windows ファイルサーバーをご利用いただけます。セットアップとプロビジョニング、レプリケーション、フェイルオーバー、およびメンテナンスを自動的に処理します。さらに、オンプレミス統合とクラウド内の両方で、SMB プロトコル、Windows NTFS、および Active Directory 統合をサポートしています。
お客様には、次のようなさまざまなユースケースで Amazon FSx をご利用いただいております。
- ホームディレクトリ
- エンタープライズビジネスアプリケーション
- コンテンツ管理
- ソフトウェア開発環境
- メディアとエンターテイメント
- データベース
- データ分析
このブログ記事では、Linux マシンを Active Directory ドメインに参加させる手順をご紹介します。手順には、realmd をインストールしてから、Kerberos 認証を使用してを参加を実行することが含まれます。次に、Amazon FSx からその Linux マシンにファイル共有をマウントする手順を示します。これは、cifs-utils ライブラリを使用して行います。
Linux マシンを Active Directory ドメインに参加させるための前提条件
最初のステップは、Linux マシンを Active Directory ドメインに参加させることです。そのためには、以下が必要です。
- マシンをドメインに参加させる Active Directory 上のアカウントへのアクセス。
- ドメイン名。
- KDC (キー配布センター)。これは、Linux は認証に Kerberos を使用するためです。これらの詳細については、Active Directory ID チームから入手できます。
- Linux マシンへのルートアクセス。これには、Ubuntu マシンを使用します。
このデモでは、AWS Managed Microsoft Active Directory を使用します。次のスクリーンショットは、Active Directory セットアップの外観を示しています。ドメイン名は「EXAMPLE.COM」です。
また、「testUser1」というテストユーザーを作成します。
Linux マシンを Microsoft Active Directory ドメインに参加させる手順
ここで、Linux マシンを Microsoft Active Directory に参加させます。このデモでは、最初に Amazon EC2 で Ubuntu マシンを作成します。次に、マシンを参加させる手順を実行します。
Ubuntu マシンを作成する
- Linux マシンがアクティブドメインの DNS を解決できるように、Dynamic Host Configuration Protocol (DHCP) オプションセットを作成します。AWS 以外の環境では、DNS サーバーを Linux ボックスに追加していたでしょう。
- このオプションセットを使用するように VPC を変更します。
- このオプションセットがある VPC で Ubuntu マシンを作成します。DHCP オプションセットは
/run/systemd/resolve/resolv.conf
を変更し、次の行を追加します。
nameserver 172.31.9.241 nameserver 172.31.27.108 search example.com
また、stub-resolv.conf も変更され、次のようになります。
nameserver 127.0.0.53 options edns0 search example.com
AWS にないマシンでこれを試す場合は、マシンとオペレーティングシステムに合わせて必要な変更を加えます。
- root 権限を持つユーザーとして Linux マシンにログインします。
- マシンを次のように更新します。
sudo apt-get update
sudo apt-get -y upgrade
- 以下のように、必要な Ubuntu パッケージをインストールします。
sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
デフォルトのレルムの入力を求められたら、「EXAMPLE.COM」と入力します (大文字で入力することに注意)。
sudo vi /etc/krb5.conf
と入力して/etc/krb5.conf
を編集します。これにより、ファイルが次のように変更されます。
マシンを参加させる
- 次のコマンドを使用して、マシンを Active Directory ドメインに参加させます。
sudo realm join -U service_account@EXAMPLE.COM EXAMPLE.COM –verbose
「Service_account」は、ドメインに参加する特権を持つアカウント名です。パスワードを入力すると、最終的に次のメッセージが表示されました。
* Successfully enrolled machine in realm (レルムにマシンを正常に登録しました)
これで、マシンがドメインに参加しました!
- Active Directory ユーザーとしてマシンにログインする前に、必要な手順がいくつかあります。Active Directory ユーザーとしてログインしたとき、ユーザーにデフォルトのホームディレクトリがありませんでした。ユーザーのログイン時にホームディレクトリの作成を許可するには、次の手順に従います。
- 次のように入力します。
sudo vi /etc/pam.d/common-session
- 次の行を追加します。
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
- 前の行を次の行の後に追加します。
session required pam_unix.so
- デフォルトでは、ユーザーは sudo にアクセスできません。ユーザーが sudo にアクセスできるようにするために、ユーザーの Active Directory グループ名を見つけて、そのグループを sudoers ファイルに追加しました。それには、
/etc/sudoers
ファイルを編集して、次の行を追加しました。
%Domain\ Users@EXAMPLE.COM ALL=(ALL:ALL) ALL
この行の「Domain Users」がグループの名前です。これにより、グループのすべてのユーザーに sudo アクセスが許可されます。
- Amazon Linux ボックスを使用しているため、Active Directory ユーザーとしてボックスにログインする前に、次のように入力して sshd 構成ファイルを変更します。
sudo vi /etc/ssh/sshd_config
また、[PasswordAuthentication] を [yes] に変更し、次のように入力して sshd を再起動します。
sudo service sshd restart
- 最後に、ユーザー「testUser1」を使用して Linux ボックスにログインします。 次のように入力します。
ssh EXAMPLE.COM\\testUser1@ec2-3-104-54-234.ap-southeast-2.compute.amazonaws.com
あとは、パスワードを入力するだけです。現在、Active Directory ユーザーを使用してマシンにログインしています。
次のセクションでは、cifs-utils を使用して Amazon FSx ディレクトリをマウントする方法を示します。
Ubuntu で Amazon FSx ファイル共有をマウントするための前提条件
Linux マシンを Active Directory ドメインに参加させたので、Amazon FSx ファイル共有をマウントします。Windows ファイルシステムを作成することから始めて、そのドライブを Active Directory に参加させました。これは、Windows ファイルシステムの外観です。
このデモでは、最小容量 の FSx for Windows File Server を作成します。
Active Directory に参加している Linux マシンに Amazon FSx ファイル共有をマウントする
- cifs-utils を使用して、ファイル共有をマウントします。ドメインユーザー (「testUser1」) としてログインし、次を入力して cifs-utils をインストールします。
sudo apt install cifs-utils keyutils
- マウント用のディレクトリを作成します。ユーザーとしてマウントするため、ユーザーのホームディレクトリ内にディレクトリを作成する必要があります。
mkdir ~/fsx
- 次のように、Kerberos チケットを作成します。
kinit
- 次のように、ファイルシステムをマウントします。
sudo mount -t cifs --verbose -o
vers=3.0,cache=none,user=$USER,cruid=$USER,sec=krb5,uid=$
(id -u),gid=$(id -g),ip=172.31.15.73 "//fs-
08a42c788e24ce540.example.com/share"
/home/testuser1@example.com/fsx/
fs-08a42c788e24ce540.example.com
をファイルシステムの DNS に、172.31.15.73
をファイルシステムの優先ファイルサーバー IP アドレスに置き換えます。これは、AWS コンソールから取得できます。このコマンドが失敗した場合は、次の手順を実行します (成功した場合は無視してください)。klist
と入力し、ユーザーのキーが存在するかどうかを確認します。- (ディレクトリ DNS と置き換えて)「
nslookup fs-08a42c788e24ce540.example.com
」と入力し、次のように正規名を探します。 - mount コマンドを繰り返しますが、ファイルサーバーの DNS 名の代わりに、正規名を使用します。
これで完了です! Linux インスタンスに Amazon FSx 共有フォルダを正常にマウントできました。お客様も上手くいきますように。ファイル共有は、ファイル共有に設定されているユーザーファイルアクセス許可を尊重します。つまり、ユーザー「testUser1」は、アクセス許可を持つフォルダにのみアクセスできます。
クリーンアップ
概念実証を完了した後、Amazon FSx ファイルシステム、AWS Managed Active Directory、および ubuntu EC2 インスタンスを削除して、リソースをクリーンアップしました。そうすることで、この概念実証で使用したリソースから将来コストが発生しないようにします。
まとめ
この記事では、Ubuntu インスタンスを Active Directory に参加させる方法と、Amazon FSx をマウントする方法を説明しました。上記の手順のほとんどは、あらゆる種類の Linux システムで動作するはずです。ターゲットオペレーティングシステムで「apt get」コマンドを同等のコマンドに置き換え、パッケージの名前をターゲットシステムで同等のコマンドに置き換えます。手順を実行すると、すべての Linux ワークステーションをドメインに参加させるだけでなく、Amazon FSx の素晴らしい利点を活用することもできます。
Amazon FSx により、お客様は共有ファイルストレージをクラウドに簡単に移動でき、AWS でフルマネージド型のネイティブ Windows ファイルサーバーをご利用いただけます。セットアップとプロビジョニング、レプリケーション、フェイルオーバー、およびメンテナンスを自動的に処理します。また Amazon FSx は、オンプレミス統合とクラウド内の両方で、SMB プロトコル、Windows NTFS、および Active Directory 統合もサポートしています。そして Amazon CloudWatch、AWS CloudTrail、AWS Managed Microsoft Active Directory、および AWS Key Management Service (AWS KMS) といった他のサービスと密接に統合できます。
いつもお読みくださりありがとうございます。AWS Storage についてご質問がある場合は、コメント欄にご記入ください。