Solução
aws s3 mb s3://[new-bucket]
aws s3 sync s3://[old-bucket] s3://[new-bucket]
aws s3 rb --force s3://[old-bucket]
Explicação
Não há funcionalidade de renomear bucket para S3 porque tecnicamente não há pastas no S3, portanto, precisamos lidar com todos os arquivos dentro do bucket.
O código acima irá 1. criar um novo depósito, 2. copiar arquivos e 3. excluir o depósito antigo. É isso aí.
Se você tiver muitos arquivos no seu balde e estiver preocupado com os custos, continue lendo. Nos bastidores, o que acontece é que todos os arquivos no bucket são copiados e excluídos primeiro. Deve custar uma quantia insignificante se você tiver alguns milhares de arquivos. Caso contrário, verifique esta resposta para ver como isso afetaria você.
Exemplo
No exemplo a seguir, criamos e preenchemos o bucket antigo e sincronizamos os arquivos com o novo. Verifique a saída dos comandos para ver o que a AWS faz.
> # bucket suffix so we keep it unique
> suffix="ieXiy2" # used `pwgen -1 -6` to get this
>
> # populate old bucket
> echo "asdf" > asdf.txt
> echo "yxcv" > yxcv.txt
> aws s3 mb s3://old-bucket-$suffix
make_bucket: old-bucket-ieXiy2
> aws s3 cp asdf.txt s3://old-bucket-$suffix/asdf.txt
upload: ./asdf.txt to s3://old-bucket-ieXiy2/asdf.txt
> aws s3 cp yxcv.txt s3://old-bucket-$suffix/yxcv.txt
upload: ./yxcv.txt to s3://old-bucket-ieXiy2/yxcv.txt
>
> # "rename" to new bucket
> aws s3 mb s3://new-bucket-$suffix
make_bucket: new-bucket-ieXiy2
> aws s3 sync s3://old-bucket-$suffix s3://new-bucket-$suffix
copy: s3://old-bucket-ieXiy2/yxcv.txt to s3://new-bucket-ieXiy2/yxcv.txt
copy: s3://old-bucket-ieXiy2/asdf.txt to s3://new-bucket-ieXiy2/asdf.txt
> aws s3 rb --force s3://old-bucket-$suffix
delete: s3://old-bucket-ieXiy2/asdf.txt
delete: s3://old-bucket-ieXiy2/yxcv.txt
remove_bucket: old-bucket-ieXiy2