这是由于在ECS任务定义中未正确设置机密信息或注册表身份验证配置而导致的错误。为了解决这个问题,你可以按照以下步骤操作:
1.在ECS任务定义中声明需要使用的秘密信息或注册表身份验证,例如:
{ "containerDefinitions": [ { "name": "my-container", "image": "my-registry-image", "secrets": [ { "name": "my-secret", "valueFrom": "arn:aws:secretsmanager:us-west-2:123456789012:secret:my-secret-MjiO6L" } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/my-app", "awslogs-region": "us-west-2" } } } ] }
在以上代码片段中,“my-secret”是要使用的机密信息的名称,“valueFrom”是引用实际机密的ARN(Amazon资源名称)。
2.确保在ECS任务角色策略中具有“secretsmanager:GetSecretValue”和“ecr:GetAuthorizationToken”权限,以便访问秘密信息和注册表身份验证。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:us-west-2:123456789012:secret:my-secret-MjiO6L" ] }, { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
3.如果仍然遇到问题,请确保启用了ECS任务角色,并将其分配给ECS任务。
通过遵循以上步骤,你就可以成功解决AWS ECS中