hene

hene.dev

(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

関連記事