1. ホーム
  2. amazon-web-services

[解決済み] AWS Secrets Managerで指定された秘密が見つからない

2022-02-07 01:56:25

質問内容

AWS Fargateを使用しており、Secrets Managerで機密データを保存しています。タスク定義はシークレットストアから環境変数を取得する必要がある

- name: "app"
  image: "ecr-image:tag"
  essential: true
  secrets:
    - name: "VAR1"
      valueFrom: "arn:aws:secretsmanager:us-east-1:111222333444:secret:var-one-secret"
    - name: "VAR2"
      valueFrom: "arn:aws:secretsmanager:us-east-1:111222333444:secret:var-two-secret"
    - name: "VAR3"
      valueFrom: "arn:aws:secretsmanager:us-east-1:111222333444:secret:var-two-private"

が、なぜか以下のようなエラーが出て失敗します。

ResourceNotFoundException: Secrets Manager can’t find the specified secret. status code: 400, request id

というのは、ちょっと不思議な気がします。

  • IAMはsecret値を取得する権限を持っており、さらに

  • のみを残す場合 VAR1 変数がすべて期待通りに動作する

  • AWS CLIは問題なく各シークレットを取得することができる

aws secretsmanager get-secret-value --secret-id var-two-secret

私の設定に何か問題があるのでしょうか?何かヒントがあれば教えてください。

解決方法は?

Secrets Managerは、ARNの末尾にGUIDを指定しない場合、ARNの部分マッチングを行おうとします。しかし 不完全である なぜなら、部分的なARNは衝突する可能性があるからです。同じアカウント内の秘密を取得する場合は、完全な ARN ではなく、秘密名 (secret: の後、ダッシュ 6 文字の -GUID を除いた部分) を使用すればよいのです。しかし、完全なARNがある場合は、それを使用することが常に最善です。