繁体   English   中英

获取具有 IAM 角色的 ECS 的凭证

[英]Obtain credentials to an ECS with IAM role

尝试使用 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"
            ]
        }
    ]
}

谢谢 !!

找到了解决办法。

如此处链接所述,可能是由于不同的芯片引起的(使用 arm64-M1)

用过的

docker build --platform linux/amd64 -t devops-tests .

它修复了它!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM