AWSでSFTP対応サーバーを作成する方法

AWS Transfer Familyは、Secure File Transfer Protocol(SFTP)、File Transfer Protocol over SSL(FTPS)、およびFile Transfer Protocol(FTP)をサポートして、AWSS3またはAWSEFS(Elastic File System)との間でファイルを転送します。 Amazon Route 53でDNSルーティングをサポートします。AWSTransferFamilyは、独自のFTPサーバーを購入して実行するためのオーバーヘッドを取り除き、代わりにファイルインフラストラクチャを管理します。 自動スケーリング機能をサポートし、高可用性を維持します。

AWS Transfer Familyは、リアルタイムで拡張できるAWSによるフルマネージドサービスであり、作成する必要はありません。

AWS TransferFamilyでサポートされている3つの異なるプロトコルを理解しましょう。

  1. SFTPプロトコル:Secure Shell File Transfer Protocolは、インターネットを介したデータの安全な転送に使用されるネットワークプロトコルです。 プロトコルは、SSHの完全なセキュリティおよび認証機能をサポートします
  2. FTPプロトコル:ファイル転送プロトコル(FTP)は、データの転送に使用されるネットワークプロトコルです。 FTPは、制御とデータ転送に別々のチャネルを使用します。
  3. FTPSプロトコル:SSLを介したファイル転送プロトコルはFTPの拡張機能です。 トランスポート層セキュリティとSecureSocketsLayer暗号化プロトコルを使用してトラフィックを暗号化します。

パブリックにアクセス可能なサーバーを作成することも、VPCでサーバーを作成することもできます。

AWS Identity and Access Management(IAM)ポリシーを使用してサーバーへのアクセスを制御することもできます。これらのポリシーは、IAMロールに割り当てられ、IAMロールがユーザーにアタッチされます。

前払いの費用はなく、エンドポイントへのアクセスを有効にしたものとプロトコルに対してのみ支払う必要があります。 価格については、AWSの公式ページにアクセスしてください ここに

この記事では、パブリックにアクセスできるAWSでSFTP対応サーバーを作成する手順を説明します。 この記事に進む前に、IAMロール、EC2インスタンス、およびS3バケットに精通していることを前提としています。

前提条件

  1. AWSアカウント(作成する お持ちでない場合)。
  2. Ubuntu EC2インスタンス(AWSでUbuntu EC2インスタンスを作成する方法については、ここをクリックしてください)。
  3. S3へのフルアクセス権を持つIAMロール(IAMロールの作成については、ここをクリックしてください)。
  4. S3バケット(AWSでS3バケットを作成する方法については、ここをクリックしてください)。

何をしたらいいでしょう?

  1. AWSにログインします
  2. SFTPサーバーを作成する
  3. IAMポリシーの信頼関係を変更する
  4. S3バケットにフォルダーを作成します。
  5. EC2インスタンスでキーペアを生成します。
  6. SFTPサーバーでユーザーを作成します
  7. SFTPサーバーへの接続をテストします
  8. SFTPサーバーを削除します

AWSにログインします

クリック ここに アカウントにアクセスするための資格情報を入力できるログインページに移動します。

ログインページ

アカウントに正常にログインすると、次のようにメインのAWS管理コンソールが表示され、目的のリージョンを選択してSFTPサーバーを作成できます。

AWS管理コンソール

SFTPサーバーを作成する

画面上部の検索ボックスで「家族を転送」を検索します。

検索転送ファミリー

AWSTransferファミリーのメインダッシュボードは次のように表示されます。 「サーバーの作成」ボタンをクリックして、最初のSFTPサーバーを作成します。

AWSTransferファミリーダッシュボード

ここで、サーバーに対して有効にするプロトコルを選択します。 複数のプロトコルを有効にすることができますが、ここでは単一のSFTPプロトコルについて説明します。 「次へ」ボタンをクリックして続行します。

プロトコルを選択する

要件に基づいてエンドポイントタイプを選択します。 エンドポイントに公的にアクセスできるようにしたい場合は、それを続行します。 「次へ」ボタンをクリックしてください。

エンドポイント構成

データを保存するAWSストレージサービスを選択します。 ここでは、AmazonS3に進みます。 「次へ」ボタンをクリックして続行します。

ドメインを選択してください

ここでデフォルトのオプションを続行します。

ロギングの役割

構成を確認し、[サーバーの作成]ボタンをクリックします。 これにより、SFTPサーバーが作成されます。作成プロセスが完了するまでに数分かかります。

サーバーを確認して作成する

IAMポリシーの信頼関係を変更する

次のステップは、S3バケットへのフルアクセスを持つIAMポリシーを変更することです。 「IAMロール->信頼関係」に移動して編集します。

SFTPのIAMロール

サービスを「transfer.amazonaws.com」に変更すると、ポリシードキュメントは次のようになります。

信頼関係の編集

S3バケットにフォルダーを作成します。

SFTPサーバーからのデータを保存したいS3バケットがあるかどうかを確認してください。

S3バケットにフォルダーを作成します

EC2インスタンスでキーペアを生成します。

次のステップは、SFTPサーバーへの認証に使用されるキーペアを作成することです。 Linuxサーバーに移動し、次のコマンドを実行してキーペアを生成します

ssh-keygen

猫〜/ .ssh / id_rsa.pub

次のステップで必要になる公開鍵を取得します。

キーペアを生成する

SFTPサーバーでユーザーを作成します

作成したSFTPに行きましょう。

SFTPサーバー

[ユーザーの追加]ボタンをクリックして、作成したSFTPサーバーを使用してファイルを認証してS3に転送するために使用するユーザーを作成します。

ここでは、表示されているエンドポイントを使用して、データ転送のためにSFTPサーバーにアクセスします。 SFTPサーバーにアクセスするときに必要になるこのエンドポイントを携帯してください。

ユーザー名を追加し、IAMロールを選択し、S3バケットと、作成するユーザーのホームディレクトリとして機能するその中のフォルダーを選択します。 前の手順でコピーした公開鍵を「SSH公開鍵」の部分に追加します。

ページを下にスクロールして、[追加]ボタンをクリックします。 これにより、ユーザーの作成時に追加した公開鍵に関連付けられた秘密鍵を必要とするユーザーが作成されます。

ユーザーを追加する

SFTPサーバーへの接続をテストしますSFTPサーバーへの接続をテストします

キーペアを作成したLinuxサーバーに移動し、次のコマンドを使用してSFTPサーバーに接続します。

ここでは、SFTPサーバー用に持っているものでエンドポイントを変更する必要があります。

sftp -i〜 / .ssh / id_rsa [email protected]azonaws.com

次のコマンドで使用されるファイルがローカルシステムに属している場合は、次のコマンドを使用してファイルのアップロードを試すことができます。

/ home / ubuntu / test-fileを置きます

上記のコマンドは、「/ home / ubuntu / test-file」ファイルをローカルシステムからSFTPサーバーにコピーします。

ファイルをアップロードする

上記の「put」コマンドを使用して、ファイルがS3バケットにアップロードされているかどうかをコンソールから確認できます。

S3バケットを確認してください

SFTPサーバーを削除します

SFTPサーバーが不要になったら、簡単に削除できます。 サーバーを削除するには、「アクション->削除」をクリックします。

SFTPサーバーを削除します

削除アクションを確認し、「削除」ボタンをクリックします。 SFTPサーバーを削除すると復元できなくなりますので、削除操作の際はご注意ください。

削除の確認

結論

この記事では、S3をバックエンドとして使用してSFTPサーバーを作成する手順について説明しました。 ユーザーを作成し、特定のS3バケット->フォルダーをホームディレクトリとして割り当てました。 ユーザーがIAMロールを使用するために必要な変更を確認しました。

Hope this helps!

Source link