事象
aws cliでs3コマンドを実行するとタイトルのエラー。
$ aws s3 ls
'str' object has no attribute 'get'
原因
.aws/configのs3署名バージョン部で改行が入っていない。
(誤)
$ cat .aws/config
[default]
output = json
region = ap-northeast-1
s3 = signature_version = s3v4
(正)
$ cat .aws/config
[default]
output = json
region = ap-northeast-1
s3 =
signature_version = s3v4
※[]内は各々で定義したprofile名です。
IAM権限が足りない場合(s3:ListBucketが無い)でも同様のエラーが発生しました。
切り分けのためにpython、boto、aws cliのバージョンやIAMを見て少し長引いたため共有です。