[英]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.