6. 6
AW S Tr a n s f e r f o r S F T P と は
• S 3 が ス ト レ ー ジ に な って る マ ネ ー ジ ド な S F T P
• 冗 長 化 ・ ス ケ ー ラ ビ リ テ ィ は AW S に お ま か せ
• 数 ク リ ッ ク で S F T P サ ー バ ー が 立 ち 上 げ 可 能
10. 10
認 証 周 り
•I A M か 独 自 認 証 か を 選 べ る
•独 自 認 証 の 場 合 は A P I G a t e w a y
•ド キ ュ メ ン ト に C l o u d F o r m a t i o n の テ ン プ レ ー ト
が あ る
•A P I G a t e w a y と L a m b d a を ディ プ ロ イ して く れ る
13. L a m b d a
13
'use strict';
// GetUserConfig Lambda
exports.handler = (event, context, callback) => {
console.log("Event:", JSON.stringify(event));
var response;
if (event.serverId == 's-myServerId' && event.username == 'MyUserName') {
response = {
Role: "arn:arn:aws:iam::000000000000:role/UserS3AccessRole",
Policy: 'user-scope-down-policy', // Not required
HomeDirectory: '/bucket/userHome' // Not required, defaults to '/'
};
if (event.password == "") {
response['PublicKeys'] = [ "ssh-rsa rsapubkey" ];
} else if (event.password !== 'MySuperSecretPassword') {
response = {};
}
} else {
response = {};
}
callback(null, response);
};
14. • 認証に成功した場合は以下のJSONを返す
L a m b d a で の 認 証 の 成 功 ・ 失 敗 の 判 定
14
response = {
Role:"arn:arn:aws:iam::000000000000:role/UserS3AccessRole",
Policy: 'user-scope-down-policy', // Not required
HomeDirectory: '/bucket/userHome' // Not required, defaults to '/'
};
• 認証に失敗した場合は空のJSONを返す
16. • Transfer for SFTP用のIAMポリシー変数。
• ユーザーごとにポリシーを作らなくても良い。
• Custom認証だとScope down policyが効かない?
• Cusotm認証時の設定がドキュメントにあまり記載がない。
• Lambdaのレスポンスに何を入れれば良いのか。
• policyのarnとかpolicyをアタッチしたRoleのarnとか
• IAMのユーザーだと問題なし。
• Lambdaで返すJSONからPolicyを外すと認証は通る。
が、当然どこでも見えてしまう。
S c o p e d o w n p o l i c y
16
17. • マネージド万歳
• API Gateway経由でlambda叩けば認証周りは好きにできる。
• Scope down policyでユーザー毎の制限もできるはず。
• lambdaでのPolicy指定の仕方が悪い?
• グローバルにさらされてるんで、ちょいちょい怪しいアクセスが。
• IP制限は掛けたいですね。。
ま と め
17