Mos*_*ted 13 amazon-web-services amazon-ecs aws-fargate aws-secrets-manager
我正在使用 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"
Run Code Online (Sandbox Code Playgroud)
但由于某种原因它失败并出现以下错误
ResourceNotFoundException: Secrets Manager can’t find the specified secret. status code: 400, request id
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎有点奇怪,因为
此外,IAM 具有获取秘密值的权限
当只留下VAR1变量时,一切都按预期工作
AWS CLI 能够毫无问题地检索每个密钥
例如
aws secretsmanager get-secret-value --secret-id var-two-secret
Run Code Online (Sandbox Code Playgroud)
我的配置可能有什么问题?任何提示表示赞赏
Mos*_*ted 13
好的,所以诀窍是明确指定 ARN。您应该使用完整标识符,而不是仅仅提供秘密名称
arn:aws:secretsmanager:us-east-1:111222333444:secret:var-two-secret-ID0o2R
Run Code Online (Sandbox Code Playgroud)
注意-ID0o2R秘密名称末尾的后缀。
我仍然不清楚为什么对于某些变量它没有它就可以工作。
UPD
但是,如果您的密钥的名称以连字符结尾,后跟六个字符(在 Secrets Manager 将连字符和六个字符添加到 ARN 之前)并且您尝试将其用作部分 ARN,那么这些字符会导致 Secrets Manager 假设您正在指定一个完整的 ARN。这种混淆会导致意想不到的结果。
因此,正如您从我的包含连字符的变量名中看到的那样,Secrets Manager 在通过短名称解析时遇到了困难
导致此错误的另一个潜在原因是密码未设置\xe2\x80\x99t;秘密名称可能存在,但没有值。有关设置值的步骤,请参阅https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html 。
\n| 归档时间: |
|
| 查看次数: |
15793 次 |
| 最近记录: |