Менеджер секретов AWS: «Ротация не завершена» при ротации секретов - PullRequest
0 голосов
/ 24 апреля 2018

Я создал секрет и обновил его, чтобы иметь функцию вращения лямбды

Мой секрет выглядит как

aws secretsmanager list-secret-version-ids --secret-id envir/username
{
    "Versions": [
        {
            "VersionId": "90179cd3-daa1-48e4-9fe5-dde0a4cf22e4",
            "VersionStages": [
                "AWSPREVIOUS"
            ],
            "LastAccessedDate": 1524528000.0,
            "CreatedDate": 1524568488.358
        },
        {
            "VersionId": "60576823-5d98-4360-af53-7e1f909b88d0",
            "VersionStages": [
                "AWSCURRENT"
            ],
            "LastAccessedDate": 1524528000.0,
            "CreatedDate": 1524568827.466
        }
    ],
    "ARN": "arn:aws:secretsmanager:eu-west-1:8282828282828:secret:username-YdgbPA",
    "Name": "envir/username"
}

, и когда я пытаюсь повернуть его, я получаю эту ошибку

An error occurred (InvalidRequestException) when calling the RotateSecret operation: A previous rotation isn’t complete. That rotation will be reattempted.

Я могу вращать секрет без проблем, если я запускаю лямбда-функцию без проблем.

У кого-нибудь есть идеи?


ссылки по теме:

Ответы [ 4 ]

0 голосов
/ 27 июня 2018

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

Например, с секретом с секретным идентификатором thefrog, позвоните

aws secretsmanager get-secret-value \
    --secret-id thefrog \
    --version-stage AWSPENDING

чтобы получить идентификатор версии версии с ожидающей меткой.Результат будет выглядеть следующим образом:

{                                                                      
    "CreatedDate": 1541540242.561,                         
    "Name": "thefrog",                
    "VersionStages": [                               
        "AWSPENDING"                                        
    ],                                                    
    "SecretString": "TOP-SECRET",                                                    
    "ARN": "arn:aws:secretsmanager:xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "VersionId": "2a27cecb-23c7-4320-b168-78661c24612f"   
} 

Затем вызовите

aws secretsmanager update-secret-version-stage \
    --secret-id thefrog \
    --version-stage AWSPENDING \
    --remove-from-version-id 2a27cecb-23c7-4320-b168-78661c24612f

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

Отсюда вы можете повторить поворот

0 голосов
/ 14 мая 2018

Для тех, кто считает, что ссылка на https://forums.aws.amazon.com/thread.jspa?threadID=280093&tstart=0 не применяется, обязательно проверьте выходные данные как aws secretsmanager list-secret-version-ids, так и aws secretsmanager list-secrets, чтобы убедиться, что они синхронизированы друг с другом.У меня был только один секрет, который я не мог повернуть, и получал сообщение об ошибке «Предыдущее вращение не завершено. Это вращение будет повторено».У меня был случай поддержки с открытым AWS, и пока я ждал в ожидании, чтобы поговорить с представителем службы поддержки, я решил проверить вывод list-secrets, и вот, я нашел ярлык AWSPENDING на секрете, который могне вращаться (эта метка НЕ ​​отображалась на выходе list-secret-version-ids для этого секрета).После того как я очистил этот ярлык, я смог успешно повернуть секрет, с которым у меня были проблемы.

0 голосов
/ 31 мая 2018

Просто записка для людей в будущем, которые могут получить ту же ошибку ...

Если вы используете , используя AWS Secrets Manager для поворота пароля Amazon RDS , Secrets Manager автоматически создаст функцию Lambda. Эта функция требует:

  • Доступ к Интернету (для вызова Менеджера секретов)
  • Доступ к экземпляру RDS (для входа и изменения пароля)

Таким образом, работают следующие комбинации:

  • Общедоступная база данных (плохо для безопасности) с функцией Lambda, которая не подключена к VPC, ИЛИ
  • Функция Lambda в частной подсети с шлюзом NAT в общедоступной подсети (чтобы функция Lambda могла получить доступ к Интернету) ИЛИ Эластичный IP-адрес, присоединенный к ENI

Кроме того, Группа безопасности, подключенная к базе данных , должна разрешать входящий доступ из функции Lambda. По умолчанию лямбда-функции назначается та же группа безопасности, что и для базы данных, поэтому либо:

  • Отредактируйте группу безопасности базы данных, чтобы разрешить входящие соединения от самого (то есть от Lambda до базы данных через ту же группу безопасности), ИЛИ
  • Измените группу безопасности, которая используется лямбда-функцией, на группу, которой в настоящее время разрешен доступ к группе безопасности базы данных
0 голосов
/ 30 апреля 2018

Проблема заключалась в том, что лямбда-функция не работала, и повторная попытка происходила без моего контроля (в настоящее время нет способа ограничить повторы для лямбда-функции).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...