Секреты, удаляемые из определения задачи aws ecs

#amazon-web-services #amazon-ecs

#amazon-веб-сервисы #amazon-ecs

Вопрос:

Я использую github actions для развертывания определения задачи ecs в моем кластере. Я столкнулся с этой странной проблемой, когда секреты в определении задачи удаляются. Я не уверен, что происходит, или проблема на стороне ecs или github, но я предполагаю, что это на стороне ECS, поскольку, когда я создаю новое определение задачи или ревизию вручную через панель мониторинга и используя опцию JSON, я включаю секреты в определение задачи, и они удаляются. Затем я должен зайти в контейнер через пользовательский интерфейс и вручную добавить все секреты, что, похоже, работает.

При создании определения задачи с помощью опции JSON в пользовательском интерфейсе предусмотрена ли функция удаления секретов из определения? Если да, есть ли какой-либо способ остановить это? Ниже приведен пример определения моей задачи, в котором я использую param store:

 {
  "ipcMode": null,
  "executionRoleArn": "myrole",
  "containerDefinitions": [
    {
      "dnsSearchDomains": null,
      "logConfiguration": {
        "logDriver": "awslogs",
        "secretOptions": null,
        "options": {
          "awslogs-group": "mylogGroup",
          "awslogs-region": "us-east-1",
          "awslogs-stream-prefix": "ecs"
        }
      },
      "entryPoint": null,
      "portMappings": [
        {
          "hostPort": 80,
          "protocol": "tcp",
          "containerPort": 80
        },
        {
          "hostPort": 443,
          "protocol": "tcp",
          "containerPort": 443
        }
      ],
      "secrets": [
        {
          "name": "myParamName",
          "valueFrom": "arn:aws:ssm:us-east-1:<myId>:parameter/pathToMyParam"
        },
        {
          "name": "myOtherParamName",
          "valueFrom": "arn:aws:ssm:us-east-1:<myId>:parameter/pathToMyOtherParam"
        }
      ],
      "command": null,
      "linuxParameters": null,
      "cpu": 0,
      "resourceRequirements": null,
      "ulimits": null,
      "dnsServers": null,
      "mountPoints": [],
      "workingDirectory": null,
      "secrets": null,
      "dockerSecurityOptions": null,
      "memory": null,
      "memoryReservation": null,
      "volumesFrom": [],
      "stopTimeout": null,
      "image": "<myImagePath>",
      "startTimeout": null,
      "firelensConfiguration": null,
      "dependsOn": null,
      "disableNetworking": null,
      "interactive": null,
      "healthCheck": null,
      "essential": true,
      "links": null,
      "hostname": null,
      "extraHosts": null,
      "pseudoTerminal": null,
      "user": null,
      "readonlyRootFilesystem": null,
      "dockerLabels": null,
      "systemControls": null,
      "privileged": null,
      "name": "myContainer"
    }
  ],
  "placementConstraints": [],
  "memory": "1024",
  "taskRoleArn": "<myRolePath>",
  "family": "myTask",
  "pidMode": null,
  "requiresCompatibilities": ["FARGATE"],
  "networkMode": "awsvpc",
  "cpu": "512",
  "inferenceAccelerators": null,
  "proxyConfiguration": null,
  "volumes": []
}
  

Комментарии:

1. Что вы подразумеваете под «удаленными»? Вы не можете видеть секреты внутри контейнера как переменные среды?

2. ДА. Если я не добавлю их вручную (имеется в виду переход через панель мониторинга -> Определения задач -> создать новую редакцию -> щелкнуть имя моего контейнера в разделе Определения контейнеров -> вручную ввести мои переменные env), они не появятся.

3. Вы когда-нибудь выясняли, почему это происходит? Я сталкиваюсь с той же проблемой…