インターネット経由でクライアントとファイルを共有したいので、AWS の FTP ソリューションを検討しています。AWS SFTP を試してみましたが、ロール ポリシーの設定が面倒で、基本的な使用例ではサービスが少しコストがかかりそうです。AWS 以外のユーザーがアクセスできる FTP サーバーを EC2 または S3 上にセットアップする別の方法はありますか。異なるサブディレクトリに対して異なるユーザーに読み取り権限を追加したいと考えています。私は MacOSX を使用しています。
私は以下の指示に従ってみましたhttps://stackoverflow.com/questions/7052875/amazon-cloud-server での ftp の設定しかし、AWS 以外のユーザーにファイルを表示する権限を与える方法が明確ではなく、vsftpd を動作させることができませんでした。
非 AWS ユーザーとファイルを共有するための推奨/標準の AWS 設定はありますか。できれば安全 (sftp) に共有してください。毎日、数百人のユーザーと 1 日に数回、更新されたファイルを共有する予定です。
答え1
AWS Transfer for SFTP を使用しない場合は、EC2 インスタンスから直接 SFTP サーバーをセットアップすることも可能です。
これらの手順に正しく従えば、SFTPユーザーを簡単に作成できるはずです。私の場合は、Ubuntu 18.04のマイクロT2インスタンスを使用しました。
- インストールしてみましょう
openSSH
sudo apt-get install openssh-server
- ユーザーを監禁する特定のグループを作成する必要があります。
sudo groupadd sftpusers
/etc/ssh/sshd_config
vimまたはnanoを使用して編集します
。コメントアウトします。#Subsystem sftp /usr/lib/openssh/sftp-server
代わりに、Subsystem sftp internal-sftp
サーバーへのSFTP接続を許可するように追加します
。最後に、ファイルの最後に新しいグループ構成を指定します。
Match group sftpusers
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
- この時点で、次
/etc/ssh/sshd_config
のようになります。
(...)
#Subsystem sftp /usr/lib/openssh/sftp-server
(...)
Subsystem sftp internal-sftp
Match group sftpusers
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
- 変更を適用するには、ssh サービスを再起動する必要があります。
sudo service ssh restart
- これで、新しいユーザーを作成する準備が整いました。
以下のコマンドのさまざまな指示に従って、ユーザーのパスワードを入力します。
sudo adduser user1
- 先ほど作成した sftp グループに新しいユーザーを追加しましょう。
sudo usermod -g sftpusers user1
sudo usermod -s /bin/nologin user1
- この時点で、最後に必要なことは、ユーザーを
/home/<user>
ディレクトリ内に閉じ込めることです。
sudo chown root:user1 /home/user1
sudo chmod 755 /home/user1
ユーザに属する新しいフォルダを作成するには、
sudo mkdir /home/user1/new_folder
sudo chown user1:user1 /home/user1/new_folder
sudo chmod 755 /home/user1/new_folder
わたしは作ったこれ数日前にこのプロセスを自動化するリポジトリ