用事があって久しぶりに AWS Transfer Family を構築する用事があったんだけど大分昔に作ったので作り方をすっかり忘れた。
今回の要件としては外部から FTP/SFTP で EFS にデータを置くっていうものだった。
Transfer Family に EFS への書き込みを許可を与える場合の最低限の権限は下記の 2 つ。
- elasticfilesystem:ClinetMount
- elasticfilesystem:ClinetWrite
Role: ap-northeast-1-transfer-efs
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:ap-northeast-1:000000000000:file-system/fs-00000000000000000" } ] }
ファイルシステムだけじゃなくてアクセスポイントも指定できるみたいなんだけどファイルパスあたりがうまく設定できなかった。ファイルシステム単位で chroot やら UID/GID の設定が出来たので素直にファイルシステムを使うことにした。
久しぶりに CloudFormation 書いてるけど相変わらずドキュメントがわかりづらいので Terraform を使いたい…。Ansible も思い出さないとなぁ…。