
AWS Transfer Familyの入門チュートリアルをやってみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは!AWS事業本部コンサルティング部のたかくに(@takakuni_)です。
今回は、AWS Transfer Familyの入門チュートリアルをやってみて、どのような構成要素か図解してみようと思います。
まとめ
1枚絵にすると、次の図のリソースを作成しています。
マネジメントコンソールで自動的に作られているリソースもあるため、手順に記載がないリソースも表記しています。

チュートリアルやってみた
では、どのタイミングでどのリソースが作られるのか確認してみようと思います。
ステップ1は、マネジメントコンソールへのログイン手順のため省略します。
ステップ2
ステップ2では、SFTPサーバーとIAMロールの作成を行います。
手順に従い作成すると次の図のリソースが作成されます。

「ログを送るためのロール」として、作成されたIAMロールを確認してみます。
自動で作成したため「AWSTransferLoggingAccess」といった名前で作成されています。ポリシーにはAWS管理ポリシーの「AWSTransferLoggingAccess」がアタッチされていました。

より詳しい詳細は以下ドキュメントに記載されていました。
ステップ3
ステップ3では、SFTPサーバーへアクセス可能なユーザーを作成します。
ロールの作成
作成するユーザーがS3にアクセスするために利用するIAMロールとIAMポリシーを作成する必要があります。
今回は次のドキュメントを参考にIAMポリシーを作成してみました。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListingOfUserFolder",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
},
{
"Sid": "HomeDirObjectAccess",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetObjectVersion",
"s3:GetObjectACL",
"s3:PutObjectACL"
],
"Resource": "arn:aws:s3:::*/*"
}
]
}
構成図

SSHキーの作成
今回、SFTPプロトコルを使用してTransfer Familyと通信するため、SSHキーを作成します。
ssh-keygenコマンドを利用して、SSHキーペアを作成しました。
takakuni% ssh-keygen -t rsa -b 4096 -N "" -f transfer_tutorial Generating public/private rsa key pair. Your identification has been saved in transfer_tutorial Your public key has been saved in transfer_tutorial.pub The key fingerprint is: SHA256:Gf32lItve2epdtEKyhjBHLg9poppse+Dg9RcfLUNQ48 takakuni The key's randomart image is: +---[RSA 4096]----+ | ... | | . .=o | | . =oE*. | | o..B+ o . | | o . .oSo o o .| | ..o . . ..+ o.| |.. * . + ...o.o| |. B o . o ooo+| | . +o. .o=+.| +----[SHA256]-----+
構成図

S3バケットの作成
転送先のS3バケットを作成しておきます。
今回は、「takakuni-trasnfer-tutorial」といった名前で作成してみました。

構成図

ユーザーの作成
ステップ3の前段階で作成した、IAMリソース、SSHキー、S3バケットを利用してユーザーの作成を行います。
ホームディレクトリは空白で今回は設定しました。

ステップ4
今回は「Cyberduck」を利用してファイル転送を行なってみようと思います。
Cyberduckを開き、「Open Connection」からSFTPサーバー/ユーザーへの認証情報を入力します。

ログインに成功すると、S3を操作可能になります。今回は「key.png」をアップロードしてみました。

また、初回ファイルアップロード等を行うとCloudWatch Logsロググループが作成されます。

構成図

S3を確認すると、「key.png」が転送されていることが確認できました。

まとめ
以上、「AWS Transfer Familyの入門チュートリアルをやってみた」でした。構成要素が少し多く(特にロールの使い道等)、図解してみようと思ったのがブログのきっかけでした!
この記事がどなたかの参考になれば幸いです。
以上、AWS事業本部コンサルティング部のたかくに(@takakuni_)でした!






