AWS ECS - 如何从秘密管理器中检索特定密钥?
AWS ECS - How to retrieve specific key from secret manager?
我可能在这里遗漏了一些明显的东西,但我似乎找不到有关从 ECS 任务定义的机密管理器机密中检索特定 key/value 的文档。
我有一个关于 ARN 的秘密...
arn:aws:secretsmanager:<region>:<account>:secret:LDAP_Bind_Credentials-abcd
在这个秘密中,我有 key/value 对这样的......
LDAP_BIND_USER: <ldap bind user name>
LDAP_BIND_PASSWORD: <ldap bind user password>
我想要做的是在我的任务定义 LDAP_BIND_USER 和 LDAP_BIND_PASSWORD 中定义环境变量,并在我的秘密中引用适当的密钥。
这真的可能吗,还是我应该在我的程序中实际解码 key/value 对?
文档似乎只引用了秘密本身的 ARN,而不是秘密中的 key/value 对。
使用 secret 是不可能的,你必须在程序内部进行解码。
通常,当 ECS 检索机密时,它会在 json 对象中提供给我们,例如 {"admin":"admin","pas":"pas"}我们必须以编程方式对其进行解码。
但另一种选择是使用 AWS System Manager 参数存储 [1] 来存储机密,在这种情况下,ECS 将直接为您提供实际值。
[1] https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html
自 2020 年 2 月起,ECS 任务定义现在支持从使用 EC2 启动类型的任务的 JSON 对象中的密钥读取 AWS Secrets Manager 机密。
您可以在任务定义文件的 containerDefinitions
中添加以下内容
{
"containerDefinitions": [{
"secrets": [{
"name": "<environment_variable_name>",
"valueFrom": "arn:aws:secretsmanager:<region>:<account_id>:secret:<secret_name>:<json_key>::"
}]
}]
}
我可能在这里遗漏了一些明显的东西,但我似乎找不到有关从 ECS 任务定义的机密管理器机密中检索特定 key/value 的文档。
我有一个关于 ARN 的秘密...
arn:aws:secretsmanager:<region>:<account>:secret:LDAP_Bind_Credentials-abcd
在这个秘密中,我有 key/value 对这样的......
LDAP_BIND_USER: <ldap bind user name>
LDAP_BIND_PASSWORD: <ldap bind user password>
我想要做的是在我的任务定义 LDAP_BIND_USER 和 LDAP_BIND_PASSWORD 中定义环境变量,并在我的秘密中引用适当的密钥。
这真的可能吗,还是我应该在我的程序中实际解码 key/value 对?
文档似乎只引用了秘密本身的 ARN,而不是秘密中的 key/value 对。
使用 secret 是不可能的,你必须在程序内部进行解码。
通常,当 ECS 检索机密时,它会在 json 对象中提供给我们,例如 {"admin":"admin","pas":"pas"}我们必须以编程方式对其进行解码。
但另一种选择是使用 AWS System Manager 参数存储 [1] 来存储机密,在这种情况下,ECS 将直接为您提供实际值。
[1] https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html
自 2020 年 2 月起,ECS 任务定义现在支持从使用 EC2 启动类型的任务的 JSON 对象中的密钥读取 AWS Secrets Manager 机密。
您可以在任务定义文件的 containerDefinitions
中添加以下内容
{
"containerDefinitions": [{
"secrets": [{
"name": "<environment_variable_name>",
"valueFrom": "arn:aws:secretsmanager:<region>:<account_id>:secret:<secret_name>:<json_key>::"
}]
}]
}