Terraformのaws_iam_userのforce_destroyオプションがバグってたので直した

以前からTerraformでIAMユーザ削除しようとするとエラーになる問題があって、微妙だなぁと思ってた。

原因はIAMユーザ作ったあとに各自が設定するアクセスキーやログインプロファイル(パスワードなど)がTerraform管理外でIAMユーザ削除時に依存が削除できないことなのだけど、この問題はforce_destroyというオプションがv0.7.0で導入され、IAMユーザのアクセスキーが削除できるようになり、
provider/aws: Delete access keys before deleting IAM user by dtolnay · Pull Request #7766 · hashicorp/terraform · GitHub

v0.7.8でIAMユーザのログインプロファイルも削除できるようになった。
provider/aws: Delete Loging Profile from IAM User on force_destroy by stack72 · Pull Request #9583 · hashicorp/terraform · GitHub

ということで、待望のforce_destroyオプションだったのだけど、バグってた。悲しい。
aws_iam_user: Destroying users with force_destroy does not work · Issue #9863 · hashicorp/terraform · GitHub

どうやらforce_destoryつけてログインプロファイルが存在しない場合は、terraform destoryはエラーにならないが、実際にIAMユーザが削除されない。
コードを眺めたらエラーハンドリングが間違ってるだけで簡単に直せそうだったので直して、プルリクエストしてみた。
provider/aws: Ignore NoSuchEntity error when IAM user does not have login profile by minamijoyo · Pull Request #9900 · hashicorp/terraform · GitHub

今度こそforce_destoryできるようになるとよいなぁ。