AWS_ACCESS_KEY_ID=access_key AWS_SECRET_ACCESS_KEY=secret_key aws s3 --endpoint-url=https://endpoint.example.com ls s3://test_bucket An error occurred (InvalidSecurity) when calling the ListObjects operation: The provided security credentials are not valid.
対象のオブジェクトストレージは署名バージョンが v2 までしか対応していないが、aws コマンドのデフォルトの署名バージョンは v4 になったらしい。
今回、バックアップスクリプト用のため、~/.aws 以下でなく別に設定ファイルを設けて設定する。プロファイルを分けてもいいのだが。
default.s3.signature_version に s3 を設定する。v4 の場合、s3v4 となる。
AWS_CONFIG_FILE=/opt/backup/.awscfg aws s3 configure set default.s3.signature_version s3
/opt/backup/.awscfg
[default] s3 = signature_version = s3signature_version の前にスペースがあるがこれは必要。
AWS_CONFIG_FILE=/opt/backup/.awscfg AWS_ACCESS_KEY_ID=access_key AWS_SECRET_ACCESS_KEY=secret_key aws s3 --endpoint-url=https://endpoint.example.com ls s3://test_bucket 2018-06-18 04:05:05 0 a.txt
無事接続。