【发布时间】:2021-11-01 19:18:02
【问题描述】:
尝试使用 IAM 角色测试一种无需硬编码凭据即可获取 ECS 任务凭据的方法
创建了一个虚拟 python 应用程序来检索秘密并返回它,例如:
{
username: "x",
password: "x",
engine: "postgres",
host: "x",
port: 5432,
dbInstanceIdentifier: "x"
}
Dockerfile(要求添加)
FROM python:3.8-slim-buster
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY app2.py .
RUN chmod +x /app/app2.py
CMD [ "python3", "/app/app2.py"]
我得到错误:
当我 ssh 任务 ec2 并记录容器时,每个任务都会立即失败:
standard_init_linux.go:211: exec user process caused "exec format error"
创建了任务定义并使用了正确的任务角色
Task role
devops-TestRole
IAM 角色(AWS 服务:ecs-tasks):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
和
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue",
"kms:Decrypt"
],
"Resource": [
"arn:aws:secretsmanager:x:x:secret:x",
"arn:aws:kms:x:x:key/x"
]
}
]
}
谢谢!!
【问题讨论】:
-
你能分享你用来构建镜像的 Dockerfile 吗?
-
确定!生病将它添加到我的问题。只是为了清楚,它在向我添加卷时在本地工作 ~/.aws/credentials 文件夹
标签: python amazon-web-services amazon-iam amazon-ecs aws-secrets-manager