簡體   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