WinSCPはバージョン5.13からS3への接続にも対応するようになっているが。
アクセスできるバケットを制限したIAMでWinSCPで利用しようとしたらエラーになったのでメモ。
今回利用した環境
- Windows 10 21H1
- WinSCP 5.19.5
今回起こった事象
下記のような指定されたバケットのみ、list,put,get,deleteができるようなポリシーを持ったIAMユーザの資格情報でWinSCPで接続しようとしたらエラーになった
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::バケット名"
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::バケット名/*"
]
}
]
}
アクセスキーとシークレットキーを入力してログインしようとした所
エラーが発生
なんとなく実行する前から、バケットをリストできないけどどう動作するの? って感じがありましたが。
案の定エラー。
WinSCPのドキュメントを確認した所、下記ページに記載がありました。
Connecting to Amazon S3 service
IAMにバケットをリストする権限がない場合では、リモートディレクトリの設定でバケットを指定する必要がありそうです。
リモートディレクトリにバケット名を指定
リモードディレクトリにバケット名を指定して、アクセスするバケットを指定します。
設定を選択
環境 ー> ディレクトリ ー> リモートディレクトリにバケット名を設定して OK選択
リモートディレクトリにバケット名を指定した状態であらためてログインをしてみると、先程のエラーが解消された事を確認できます。
総評
ガイドを見るとそのものズバリのケースについて記載がありました。