Могу ли я получить конкретную версию секрета Secrets Manager в определении задачи ECS?

Я сохранил секрет, используя AWS Secrets Manager. Я пытаюсь получить секрет как переменную среды в определении задачи ECS.

Следуя документации, я создал определение задачи ECS, которое включает следующий раздел:

"secrets": [
  {
    "name": "MY_PASSWORD",
    "valueFrom": "/aws/reference/secretsmanager/my_password"
  }
],

Как я понимаю, когда моя задача начинается, это:

  1. Получает последнюю версию секрета my_password от менеджера секретов
  2. Расшифровывает это внутри задачи
  3. Назначает его переменной среды MY_PASSWORD

Я хотел бы загрузить конкретную версию секрета в моем определении задачи, поэтому изменение секрета будет означать создание нового определения задачи.

Могу ли я сделать это?


Я искал в Google, но не смог найти никого, кто пытался сделать это.

Я попытался добавить идентификатор версии в valueFrom параметр, т.е.

"secrets": [
  {
    "name": "MY_PASSWORD",
    "valueFrom": "/aws/reference/secretsmanager/my_password:39231735-0279-4093-b8d1-7acd5a467295"
  }
],

но получил ошибку:

Имя параметра системного менеджера, указанное для секретного имени es_user, недопустимо. Имя параметра может содержать до 2048 символов и включать следующие буквы и символы: a-zA-Z0-9_.-,

1 ответ

Согласно документам AWS , мы должны пройти Secrets ARN, чтобы это сработало.

Синтаксис:

      {
    "containerDefinitions": [{
        "secrets": [{
            "name": "environment_variable_name",
            "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name"
        }]
    }]
}

Чтобы получить конкретную версию секрета, вы можете передать промежуточную метку или конкретный идентификатор версии.

Пример использования промежуточной метки:

      {
  "containerDefinitions": [{
    "secrets": [{
      "name": "environment_variable_name",
      "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name::AWSPREVIOUS:"
    }]
  }]
}

Пример использования идентификатора версии:

      {
  "containerDefinitions": [{
    "secrets": [{
      "name": "environment_variable_name",
      "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name:::VersionID"
    }]
  }]
}
Другие вопросы по тегам