AWS Secret нельзя преобразовать в имена ключей и пары значений - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть сценарий Python, который создает некоторые ключи доступа в AWS и сохраняет их в диспетчере секретов.

Однако, когда я сохраняю ключи, я получаю сообщение об ошибке:

The secret value can't be converted to key name and value pairs

Секрет хранится в диспетчере секретов (обфусцирует секретный ключ) следующим образом:

[{'Access Key': 'AKIA5AODVC64THTZNML7'}, {'Secret Key': 'SecretSecretsecretSecretSecretSecretSecr'}]

Мой скрипт использует эти строки для создания секрета:

secret_name = 'my_secret'
secret_description = 'describing the secret'
kms_key_id = create_kms_key()
key_info = str([{"Access Key":access_key},{"Secret Key":secret_key}])
aws_secret = `secrets_client.create_secret(Name=secret_name,Description=secret_description,KmsKeyId=kms_key_id,SecretString=key_info,Tags=[{'Key': 'Name','Value': user_name}])`

Как я могу получитьдоступ / секретный ключ в формат, который менеджер секретов понимает достаточно для преобразования в пары ключ / значение?

1 Ответ

0 голосов
/ 25 сентября 2019

Прежде всего, вам следует пересмотреть вопрос о том, действительно ли вам необходимо хранить ключи доступа AWS в Secrets Manager.Как вы планируете получить учетные данные, которые будут использоваться для звонка в Secrets Manager?

Посмотрите, например, на использование временных ролей - не используйте ваши кредитычтобы получить другую пару кредитов от SecretsManager.Вместо этого используйте кредиты, которые вам нужны, чтобы получить временные кредиты.

На ваш фактический вопрос похоже, что вы пытаетесь просмотреть секретное значение в консоли (поскольку именно тогда возникает ошибка "Секретное значение не можетбыть преобразован в ключ имя и значение пары "показано).Фрагмент кода Python, который вы использовали для создания секрета, работал правильно.Ошибка отображается, когда консоль не может проанализировать SecretString для пар ключ-значение.Это ожидаемое поведение, поскольку ваш объект верхнего уровня в SecretString является массивом.

Если вы нажмете на вкладку «Открытый текст» прямо над красным окном отображения ошибки, вы увидите сохраненную SecretString без каких-либо попытокпри разборе пар ключей-значений.

...