1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Transfer Family SFTP で「固定IP」「接続元IP制限」「パスワード認証」を実現する

Last updated at Posted at 2024-12-06

はじめに

気がついたら華金の投稿が多くなっている @___nix___ です。

背景

AWS Transfer Familyを使用してSFTPサーバーを構築し、ファイルをS3バケットにアップロードするワークフローを設定することは、多くの企業にとって重要なタスクです。
このTerraform構成は、AWSのさまざまなサービスを組み合わせて、セキュアでスケーラブルなファイル転送ソリューションを提供します。

概要

このプロジェクトは、AWS Transfer Familyを使用してSFTPサーバーを設定し、ファイルをS3バケットにアップロードするためのワークフローを構築します。
アップロードされたファイルはSQSキューを介して管理され、Lambda関数によって処理されます。
SFTPサーバーは、SSHキー認証とパスワード認証の2つの認証方法をサポートしており、ユーザーのニーズに応じて選択できます。
この記事で紹介するポイントはここで、パスワード認証を許可しようとするとフルマネージドでは無くなってしまう為、自前で構築するにはやや面倒な部分を隠蔽できるという点です。

特徴

  • SFTPサーバーのIP固定化
    • 厳しい接続元の場合、接続先IPを固定化する要件がある
  • 接続元IP制限
    • 流石にどこからでも接続できてしまうのはリスクがある
  • マルチ(鍵+パスワード)認証対応
    • クライアントの都合でパスワード認証を求められることがある

アーキテクチャ

image.png

リポジトリ

導入

  1. リポジトリのクローン: このリポジトリをクローンします。
  2. 変数の設定: terraform.tfvarsファイルを作成し、必要な変数を設定します。
  3. Terraformの初期化: terraform initを実行してTerraformを初期化します。
  4. リソースの確認: terraform planを実行して作成されるリソースを確認します。
  5. インフラのデプロイ: terraform applyを実行してインフラをデプロイします。

終わりに

このTerraform構成は、AWS Transfer Familyを使用したSFTPサーバーの設定を簡素化し、ファイル転送のセキュリティと効率を向上させます。SSHキー認証とパスワード認証の両方をサポートしており、ユーザーのニーズに応じた柔軟な設定が可能です。S3バケット、SQSキュー、Lambda関数を組み合わせることで、ファイルのアップロードと処理を自動化し、運用の効率化を図ります。

【謝辞】
以下の公式ブログのコードを利用させて頂きました。

一言

最初の要件は、メディア変換用としてのSFTPサーバーでした。
ただ、固定費用が意外にお高いのね、と感じた記憶がありますが、マネージドサービスなのでそこも踏まえての金額なので仕方が無いですね。

この記事良かったと少しでも思って頂けたら是非 @___nix___ をフォローしてあげてください。或いは記事に対してリアクションをお願い致します。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?