1.首先,在 AWS Secret Manager 中创建一个新的密钥(Secret)和对应的值(Value)。确保该密钥值对只对需要访问到它的任务可见。
2.然后,创建或更新任务定义,以确保它引用了正确的密钥和值。在任务定义中,您可以使用以下格式引用该密钥:
{
"name": "my-app",
"image": "my-app-image",
"secrets": [
{
"name": "MY_SECRET",
"valueFrom": "arn:aws:secretsmanager:us-west-2:123456789012:mysecret"
}
]
}
这段代码中,"MY_SECRET" 是您任务中使用的密钥名称,而 "arn:aws:secretsmanager:us-west-2:123456789012:mysecret" 是指向存储该密钥的 Secret Manager 中对应密钥的 ARN。
3.最后,在 IAM 中创建一个新的 IAM 角色或更新现有 IAM 角色,使其允许 ECS 任务访问 AWS Secret Manager 中的密钥。您可以使用以下策略为此目的创建一个 IAM 角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetResourcePolicy",
"secretsmanager:GetSecretValue",
"secretsmanager:DescribeSecret",
"secretsmanager:ListSecrets"
],
"Resource": "*"
}
]
}
此操作将允许 ECS 任务从 AWS Secret Manager 中读取密钥。保存 IAM 角色并将其分配给 ECS 任务所在的 EC2 实例即可。
这样,ECS 就可以正确地从 AWS Secret Manager 中读取并使用密钥了。