(Last updated on )
Failed to get the data key required to decrypt the SOPS file. の対応
Failed to get the data key required to decrypt the SOPS file. の対応
Terraform
で、sops
を利用してクレデンシャルな情報を管理している。
別プロジェクトで、クレデンシャルな情報を見ようとしたときに下記エラーが発生した。
エラー
$ sops -d secrets.yaml
Failed to get the data key required to decrypt the SOPS file.
Group 0: FAILED
arn:aws:kms:ap-northeast-1:000000000000:key/xxxxxxxx-yyyy-0000-1111-222222222222: FAILED
- | Error creating AWS session: CredentialRequiresARNError:
| credential type source_profile requires role_arn, profile
| default
Recovery failed because no master key was able to decrypt the file. In
order for SOPS to recover the file, at least one key has to be successful,
but none were.
対応
role_arn
を設定していないのが原因っぽいが、当時のエラーを再現できない・・・
適切な profile
名を AWS_PROFILE
の環境変数に設定するとエラーが発生しなくなる。
具体的には、対応 1, 対応 2 のいずれかを実施すると解決する。
対応 1: 環境変数を読み込む
.env
, .envrc
, mise
などで、環境変数が読み込めていないか確認する。
読み込めていない場合は、各ツールの設定・環境変数の読み込み方法を確認して読み込む。
対応 2: AWS_PROFILE を shell で設定する
$ export AWS_PROFILE=sample-developer
$ sops -d secrets.yaml
or
$ AWS_PROFILE=sample-developer sops -d secrets.yaml