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つの異なるプロトコルを理解しましょう。
- SFTPプロトコル:Secure Shell File Transfer Protocolは、インターネットを介したデータの安全な転送に使用されるネットワークプロトコルです。 プロトコルは、SSHの完全なセキュリティおよび認証機能をサポートします
- FTPプロトコル:ファイル転送プロトコル(FTP)は、データの転送に使用されるネットワークプロトコルです。 FTPは、制御とデータ転送に別々のチャネルを使用します。
- FTPSプロトコル:SSLを介したファイル転送プロトコルはFTPの拡張機能です。 トランスポート層セキュリティとSecureSocketsLayer暗号化プロトコルを使用してトラフィックを暗号化します。
パブリックにアクセス可能なサーバーを作成することも、VPCでサーバーを作成することもできます。
AWS Identity and Access Management(IAM)ポリシーを使用してサーバーへのアクセスを制御することもできます。これらのポリシーは、IAMロールに割り当てられ、IAMロールがユーザーにアタッチされます。
前払いの費用はなく、エンドポイントへのアクセスを有効にしたものとプロトコルに対してのみ支払う必要があります。 価格については、AWSの公式ページにアクセスしてください ここに。
この記事では、パブリックにアクセスできるAWSでSFTP対応サーバーを作成する手順を説明します。 この記事に進む前に、IAMロール、EC2インスタンス、およびS3バケットに精通していることを前提としています。
前提条件
- AWSアカウント(作成する お持ちでない場合)。
- Ubuntu EC2インスタンス(AWSでUbuntu EC2インスタンスを作成する方法については、ここをクリックしてください)。
- S3へのフルアクセス権を持つIAMロール(IAMロールの作成については、ここをクリックしてください)。
- S3バケット(AWSでS3バケットを作成する方法については、ここをクリックしてください)。
何をしたらいいでしょう?
- AWSにログインします
- SFTPサーバーを作成する
- IAMポリシーの信頼関係を変更する
- S3バケットにフォルダーを作成します。
- EC2インスタンスでキーペアを生成します。
- SFTPサーバーでユーザーを作成します
- SFTPサーバーへの接続をテストします
- SFTPサーバーを削除します
AWSにログインします
クリック ここに アカウントにアクセスするための資格情報を入力できるログインページに移動します。
アカウントに正常にログインすると、次のようにメインのAWS管理コンソールが表示され、目的のリージョンを選択してSFTPサーバーを作成できます。
SFTPサーバーを作成する
画面上部の検索ボックスで「家族を転送」を検索します。
AWSTransferファミリーのメインダッシュボードは次のように表示されます。 「サーバーの作成」ボタンをクリックして、最初のSFTPサーバーを作成します。
ここで、サーバーに対して有効にするプロトコルを選択します。 複数のプロトコルを有効にすることができますが、ここでは単一のSFTPプロトコルについて説明します。 「次へ」ボタンをクリックして続行します。
要件に基づいてエンドポイントタイプを選択します。 エンドポイントに公的にアクセスできるようにしたい場合は、それを続行します。 「次へ」ボタンをクリックしてください。
データを保存するAWSストレージサービスを選択します。 ここでは、AmazonS3に進みます。 「次へ」ボタンをクリックして続行します。
ここでデフォルトのオプションを続行します。
構成を確認し、[サーバーの作成]ボタンをクリックします。 これにより、SFTPサーバーが作成されます。作成プロセスが完了するまでに数分かかります。
IAMポリシーの信頼関係を変更する
次のステップは、S3バケットへのフルアクセスを持つIAMポリシーを変更することです。 「IAMロール->信頼関係」に移動して編集します。
サービスを「transfer.amazonaws.com」に変更すると、ポリシードキュメントは次のようになります。
S3バケットにフォルダーを作成します。
SFTPサーバーからのデータを保存したいS3バケットがあるかどうかを確認してください。
EC2インスタンスでキーペアを生成します。
次のステップは、SFTPサーバーへの認証に使用されるキーペアを作成することです。 Linuxサーバーに移動し、次のコマンドを実行してキーペアを生成します
ssh-keygen
猫〜/ .ssh / id_rsa.pub
次のステップで必要になる公開鍵を取得します。
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バケットにアップロードされているかどうかをコンソールから確認できます。
SFTPサーバーを削除します
SFTPサーバーが不要になったら、簡単に削除できます。 サーバーを削除するには、「アクション->削除」をクリックします。
削除アクションを確認し、「削除」ボタンをクリックします。 SFTPサーバーを削除すると復元できなくなりますので、削除操作の際はご注意ください。
結論
この記事では、S3をバックエンドとして使用してSFTPサーバーを作成する手順について説明しました。 ユーザーを作成し、特定のS3バケット->フォルダーをホームディレクトリとして割り当てました。 ユーザーがIAMロールを使用するために必要な変更を確認しました。
Hope this helps!