久しぶりの投稿です。
AWS Transfer for SFTPが発表されたので、早速触ってみました。
実際には以下のようなステップで作成できます。
事前準備
- sftpサーバ用のLogging roleとユーザ用roleの作成
- sftp用の秘密鍵/公開鍵の準備(既存のものでも新規作成したものでも可)
Server作成
-
AWSのマネジメントコンソールから "AWS Transfer for SFTP"をクリック
「Create server」をクリックした後、以下を設定して「Create server」をクリックして作成- Create server
- DNS configration:「None」を選択
- Identity provider:「Service Managed」を選択(sftpサーバとユーザの管理をAWS側で実施してくれる)
「Custom」はAPI Gatewayとの連携が必要なようなので未検証 - Logging role:事前準備で作成したIAMロールを選択
- Tags:必要に応じて設定
- Create server
User作成
- 対象のsftpサーバのチェックボックスをチェックして「Add User」をクリック
- Add User
- User configration
- Username:任意
- Access:事前準備で作成したIAMロールを選択
- Policy:「None」を選択(「Select a policy from IAM」で別途ポリシーを追加付与可能)
- Home directory:データをアップロードしたいバケットを選択(フォルダは任意)
- SSH Public keys:別途用意しておいた公開鍵を登録
- Username:任意
- User configration
- Add User
注意事項や気づいた点
-
IAM設定
- ロール
アクセス権限:ロギングCloudWatchLogsへのフルアクセス権限をもったポリシーを付与(権限は別途調整)
S3は指定したバケットへのListBukectとPutObject,GetObject,DeleteObject権限をもったポリシーを付与
またはS3へのフルアクセス用ポリシーを付与して、必要に応じて別途ユーザに付与するポリシーを作成・付与する
信頼関係:エンティティを "transfer.amazonaws.com" にする(一番重要!)
- ロール
-
Create server
- DNS configration:
- Amazon Route53 DNS aliasを選択すると、指定したFQDNに紐付いたDNSレコードセットが"新規で"作成される
→既存ドメインでレコードを設定したい場合は「Other DNS」を選択して、FQDNを入力する
DNS側には作成したsftpサーバのEndpointを CNAME で登録する(Aliasレコードは使えない→使えるようになってほしい!)
- Custom hostnameを設定すると、serverのTagsに"Key:aws:transfer:customHostname","Value:設定したFQDN"が追加される
- Amazon Route53 DNS aliasを選択すると、指定したFQDNに紐付いたDNSレコードセットが"新規で"作成される
- DNS configration:
※参考:
https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html
https://docs.aws.amazon.com/transfer/latest/userguide/users-policies-all-access.html
- Logについて
- Logging roleを設定しておくと、CloudWatch Logsに自動的にログが反映される
サーバ単位でロググループが作成されて、ユーザ単位のログストリームが反映される
サーバの詳細画面から「View Logs」をクリックするとロググループ内のログストリーム一覧が表示される
ユーザの詳細画面から「View Logs」をクリックするとユーザ単位のログストリーム一覧が表示される
- Logging roleを設定しておくと、CloudWatch Logsに自動的にログが反映される
API Gateway経由での設定など、まだまだ他にも面白そうな設定がありますが、とりあえず設定してみました。
少しでも誰かのお役に立てば幸いです!
追記:
すでにクラスメソッドさんで記事になっていました!
このスピード感、本当にすごいなぁ。
https://dev.classmethod.jp/cloud/aws/try-aws-transfer-for-sftp/