🌟

AWS Transfer FamilyでSFTPサーバーを立てる

2023/05/08に公開

S3バケットの作成

SFTPでアクセスするためのS3バケットを作成する
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/create-bucket-overview.html

IAMロールを作成

SFTPで使うユーザーを作成する
https://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/requirements-roles.html
こちらを参考に作成

ユーザーポリシーを作成

  • ポリシー → ポリシーを作成
  • 下記でS3のアクセス権を付与してみる
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::bucket_name"
            ]
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion", 
                "s3:GetObjectVersion",
                "s3:GetObjectACL",
                "s3:PutObjectACL"
            ],
            "Resource": "arn:aws:s3:::bucket_name/*"
        }
    ]
}

ユーザーロールを作成

下記を参考に
https://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/requirements-roles.html#read-write-access

  • ロール → ロールを作成
  • Transferを選択
  • 許可 で、作成したポリシーを選択

SSHキーを作成する

ssh-keygen -t rsa -b 4096 -f key_name

ユーザーを追加

https://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/getting-started.html
Transfer から、該当サーバーをチェックしてユーザー作成
ユーザー名と、作成したロールを入れる
先程作成した、公開鍵も入れる

SFTP接続

sftp -i ./keys/sftptest obana-test@s-6838be86f0ee46e6b.server.transfer.ap-northeast-1.amazonaws.com

接続できた。

コストについて

https://aws.amazon.com/jp/aws-transfer-family/pricing/
現状、SFTPを立ち上げている間課金されるようだ(SFTPのデータ転送量でも課金はされる)
10時間立ち上げていたら、約3ドルの請求になった 高いな。。
停止していても、従量課金されるようなので、課金を避けるにはインスタンスを消す他ないのかも。

GitHubで編集を提案

Discussion