ablog

不器用で落着きのない技術者のメモ

AWS Transfer Family の SFTP でパスワード認証を使う

AWS Transfer Family の SFTP でパスワード認証を行いたい場合、こちらの CloudFormation Template を実行し、Transfer Family、API Gateway、Lambda、Secrets Manager のリソースを作成する。あとは、Secrets Manager で以下を設定してやれば OK。

  • シークレットの名前: aws/transfer/<サーバ名>/<ユーザー名>
  • シークレットの値:

IAMロールの設定は以下の通り。

  • IAMポリシー
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::<S3 バケット名>"
            ]
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObjectVersion",
                "s3:GetObjectACL",
                "s3:PutObjectACL"
            ],
            "Resource": "arn:aws:s3:::<S3 バケット名>/*"
        }
    ]
}
  • 信頼ポリシー
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Principal": {
				"Service": "transfer.amazonaws.com"
			},
			"Action": "sts:AssumeRole"
		}
	]
}