Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Transfer Family for SFTPを使ってみよう

da-hatakeyama
November 05, 2023

Transfer Family for SFTPを使ってみよう

JAWS-UG朝会 #51で登壇した資料です
https://jawsug-asa.connpass.com/event/291917/

da-hatakeyama

November 05, 2023
Tweet

More Decks by da-hatakeyama

Other Decks in Technology

Transcript

  1. 自己紹介 名前: 畠山 大治 業務: AWSを使ったインフラ構築 @アイレット 趣味: Perfumeを追いかける(ファンクラブ 9年目)

    読書、映画・アニメを見る 資格・活動: AWS認定全冠、GC認定ACE OpsJAWS 運営 好きなAWSサービス: VPC @hatake_book
  2. その他の便利機能 lchroot lUNIX関連の機能で、ルートディレクトリを変更することを指す lユーザーがアクセスできるディレクトリを絞ることが可能 l同様の機能をTransfer Familyでもサポートしている user1 chrootなし /(root) home/

    user1/ user2/ user1は/(root)配下全てにアクセス可能 user1 chrootあり (user1のルートディレクトリを“/home/user1” に設定) /(root) home/ user1/ user2/ user1は/home/user1配下のみアクセス可能
  3. Transfer Familyで使用できるプロトコル lFTP (File Transfer Protocol) l長い歴史を持つプロトコルで、20,21番ポートを使用する l暗号化されていないため現在では非推奨、SFTP or FTPSの利用が

    推奨されている lSFTP (SSH File Transfer Protocol) lSSHを使用して暗号化を行う lSSHが使える環境であれば使用可能 l実態としては普通のSSHと変わらないため、22番ポートを使用する
  4. Transfer Familyで使用できるプロトコル lFTPS (File Transfer Protocol over SSL/TLS) lSSL/TLSで暗号化、ポートは989(制御用),990(データ転送用)を 使用する

    l証明書の用意が必要 lAS2 (Applicability Statement 2) l小売業などで広く使用されるプロトコル lウォルマートが普及を推進したことが由来らしい lHTTP, HTTPSを使用してデータ転送を行う
  5. 補足:IDプロバイダーの種類 lサービスマネージド lTransfer Familyの一機能として提供されているIDプロバイダー lTransfer Familyで完結するため管理が楽 lAWS Directory Service l既存のAWS

    Directory Serviceのディレクトリのユーザー情報を使用する lカスタムIDプロバイダー lユーザー自ら開発したLambdaやAPI Gatewayを組み合わせて IDプロバイダーを用意する
  6. 2. ユーザー作成 l事前にクライアント側でSSHキーを発行しておく $ ssh-keygen -t rsa -b 4096 -f

    TestUser1_key Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in TestUser1_key Your public key has been saved in TestUser1_key.pub The key fingerprint is: SHA256:1j5n48+o4n2JE3S0RB/ysYdVv592K8rqFTAFw8CrqWc test@test1 The key's randomart image is: +---[RSA 4096]----+ | ..oo.oo o +| | . .o o+ *.| | .o o .= o| | . .+ o ..| | o S..o . | | o . .. . o| | . o++. oo| | . E ..==o=. o| | o .o++*+.+. | +----[SHA256]-----+ $
  7. 3. 接続確認 lsftpコマンドを使用して接続できることを確認 $ sftp -i TestUser1_key TestUser1@s-xxxxxxxxxxxxx.server.transfer.ap-northeast-1.amazonaws.com The authenticity

    of host ' s-xxxxxxxxxxxxx.server.transfer.ap-northeast-1.amazonaws.com (52.199.195.108)' can't be established. RSA key fingerprint is SHA256:6SxF/xxxxxxxxxxxxxxxxxxxxxxxx/5u/nRQ9m30. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 's-xxxxxxxxxxxxx.server.transfer.ap-northeast-1.amazonaws.com' (RSA) to the list of known hosts. Connected to s-xxxxxxxxxxxxx.server.transfer.ap-northeast-1.amazonaws.com. sftp>
  8. 3. 接続確認 sftp> sftp> put test.txt Uploading test.txt to /da-hatakeyama-test-dev-sftp-target/TestUser1/test.txt

    test.txt 100% 18 0.9KB/s 00:00 sftp> lアップロードできることを確認
  9. 4. chrootの設定を入れてみる l今の設定だとS3のディレクトリ階層が見えてしまう lディレクトリ移動も自由にできてしまう sftp> sftp> pwd Remote working directory:

    /da-hatakeyama-test-dev-sftp-target/TestUser1 sftp> cd .. sftp> pwd Remote working directory: / da-hatakeyama-test-dev-sftp-target sftp> ls TestUser1 cdTestDirectory sftp> cd cdTestDirectory sftp> pwd Remote working directory: / da-hatakeyama-test-dev-sftp-target /cdTestDirectory sftp>
  10. 3. 接続確認 lパスワードを使用して接続できることを確認 $ sftp sftp-user@s-xxxxxxxxxxxxxxxx.server.transfer.ap-northeast-1.amazonaws.com sftp-user@s-xxxxxxxxxxxxxxxx.server.transfer.ap-northeast-1.amazonaws.com’s password: Connected to

    s-xxxxxxxxxxxxxxxx.server.transfer.ap-northeast-1.amazonaws.com. sftp> lただ、chrootの設定をしていないためディレクトリ階層が丸見え lディレクトリ移動も可能 sftp> pwd Remote working directory: /da-hatakeyama-test-dev-sftp-target/sftp-user sftp> cd .. sftp> pwd Remote working directory: /da-hatakeyama-test-dev-sftp-target sftp>
  11. 参考情報 lAWS Secrets Manager を使用して AWS Transfer for SFTP のパスワード認証を有効にする

    (英語記事) l https://aws.amazon.com/jp/blogs/storage/enable-password-authentication-for-aws-transfer-for-sftp- using-aws-secrets-manager/ lAWS Secrets Manager を使用して AWS Transfer Family のパスワード認証を有効にする (更新) (英語記事) l https://aws.amazon.com/jp/blogs/storage/enable-password-authentication-for-aws-transfer-family- using-aws-secrets-manager-updated/ l論理ディレクトリを使用して Transfer Family ディレクトリ構造を簡素化する l https://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/logical-dir-mappings.html