Как не кодировать учетные данные клиента Boto3 в скрипт Python3 / Kivy - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь скрыть учетные данные для моего клиента boto3, расположенного в приложении kivy (python3).Boto3 используется для SecretsManager для хранения других учетных данных для доступа к базе данных RDS.

    client = session.client(
        service_name='secretsmanager',
        region_name=region_name,
        aws_access_key_id='AK########.....'

Я не хочу жестко кодировать мой ключ доступа, секрет и т. Д.

Я думал оназначение конкретной роли IAM этому клиенту, что теоретически даст мне роль / доступ, требуемый для boto3, но я точно не знаю, как это сделать.

Я также использую cognito для входа в систему (авторизация);Я мог бы создать группу, связанную с этими пользователями, и затем через нее получить кредиты / доступ к клиенту boto3 (что, я думаю, будет работать).

Есть ли лучшее решение для этого или это мойрабочий процесс все не так?!

Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 25 апреля 2019

Альтернативой жесткому кодированию идентификатора ключа доступа и секретного ключа доступа может быть использование Amazon Cognito Identity Pools, которые генерируют роли с набором разрешений. Я бы порекомендовал вам взглянуть на вызовы API GetId и GetCredentialsForIdentity в Boto3.

0 голосов
/ 25 апреля 2019

Согласно документам , есть несколько способов сделать это, вы можете прочитать из переменных среды, файла, конфигурации общего файла (файл .aws / credentials ...).

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

Если вы ищете быстрый способ, использование общих кредитов (пункт 4) внутри хоста не будет большой проблемой (IMO).

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

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