Open2
AWS Transfer Family でS3にSFTP接続する
サービスマネージドユーザーのIAMロールを作成するとき、「信頼関係」の設定が漏れていた。
これを設定しておかないとだめ。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "transfer.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
「許可」で s3:
系のやつが付いてるかだけ見ていた・・
信頼関係の設定がない状態だと、サーバーにログインはできるがコマンドが "Permission denied" とかで通らなかった。
IAMロールのポリシー定義
S3の話だが、"Resource" の設定を正しくしておかないとだめ。
Actionが十分でも、ls
したら "Couldn't read directory: Permission denied" とかでおこられる。
バケットレベルのオペレーションの例:
- "Resource": "arn:aws:s3:::bucket_name".
オブジェクトレベルのオペレーションの例:
- バケットのすべてのオブジェクトの "Resource": "arn:aws:s3:::bucket_name/*"
例)S3内のファイル取得を許可する場合
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::{bucket-name}",
"arn:aws:s3:::{bucket-name}/*"
],
"Effect": "Allow",
"Sid": "AllowGetS3Object"
}
]
}