この記事は公開されてから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_)でした!