goofysとは

goofysはS3をフォルダとしてマウントできるミドルウェア。

kahing/goofys: a high-performance, POSIX-ish Amazon S3 file system written in Go

mountコマンドやfstabを使ってS3の任意のパスをフォルダとしてマウントできて便利。

IMDSv2を必須にするとマウントに失敗する

SecurityHubを導入し、EC2に対するセキュリティ指摘[EC2.8]Amazon EC2 instances should use Instance Metadata Service Version 2 (IMDSv2) に対応するとgoofysのマウントが失敗するようになった。

参考: 【Terraform】EC2インスタンスでIMDSv2を必須にする

/var/log/messagesを確認すると以下の様なメッセージを確認できる。

error: NoCredentialProviders: no valid providers in chain. Deprecated.

goofysの現リリースバージョン(2023年3月現在)はIMDSv2をサポートしていない

GithubにIssueは上がっていて、最先端のコードではサポートしているらしい。

goofys not compatible with imds v2 #727
NoCredentialProviders error surfaces when using goofys on ec2 instances with IMDSv2 enabled. #671

Goofys Release Plan v0.25.0 によると2022年10月予定となっているが2023年3月現在でもリリースされていない。

Releases · kahing/goofys

対処

goofysの先端を自分でビルドする

  • メリット: IMDSv2を必須にできる
  • デメリット: (リリースバージョンに比べると)思わぬ不具合が入っている可能性がある。また、自前でビルド環境を用意する必要がある。

IMDSv1を許可する

  • メリット: リリースバージョンを使える
  • デメリット: IMDSv1を利用可能にする必要がありセキュリティ低下