terraform のバックエンドの S3 にアクセスするときにも当たり前ですが、credential が必要です。複数の profile を使っているときに、デフォルトじゃないものに切り替えたいシチュエーションは結構あるのではないかなと思います。
そのような場合は以下のように partial configuration を用いて profile 指定してあげれば OK です。
terraform init -backend-config="profile=${aws_profile}"
ただ、backend に直接記述してしまえば、そもそもあまりこういう心配しなくてすみます。チームで profile 名統一しておいて、 README にこのプロファイル名で設定するという規約を作っておくと、よいのかなと思います。
terraform {
backend "s3" {
bucket = "******"
key = "******"
dynamodb_table = "******"
region = "ap-northeast-1"
shared_credentials_file = "~/.aws/credentials"
profile = "53ningen"
}
}
terraform の公式ドキュメント的にはこのあたりを参照。このように指定した場合 aws provider にも profile 指定しておくと複数人による開発がスムーズに進んで良いと思います。