0

Я использую Redshift и должен написать некоторые пользовательские сценарии для создания отчетов. Я использую AWS datapipeline CustomShellActivity для запуска моей пользовательской логики. Я использую python и boto3. Мне интересно, что является самым безопасным способом и на самом деле лучше всего предоставлять пароль базы данных в скрипте python. Я уверен, что пароль hardcoding в скрипте не является хорошей практикой. Какие у меня есть другие варианты или я должен их изучить?Как обеспечить пароль базы данных Redshift в скрипте Python в Datapipeline AWS?

ответ

1

Довольно стандартный подход заключается в store credentials в безопасном ведро S3 и загружать их как часть процесса развертывания/запуска с использованием роли IAM с доступом к защищенному ведру. Для ограниченного времени выполнения, такого как lambda или datapipeline, вы можете скачать с S3 до memory buffer usingboto.Key.get_contents_as_string() при запуске, проанализировать файл и настроить свои учетные данные.

Для повышения безопасности вы можете включить KMS secret management. Вот an example, который объединяет два.

0

Обычно я храню их как переменные среды. Я не уверен, о развертывании трубопровода данных AWS, но на стандартном Linux коробки (EC2), вы можете сделать:

# ~/.profile or /etc/profile 
export MY_VAR="my_value" 

И тогда вы можете получить доступ к ним в Python, как это:

# python script 
import os 
my_var_value = os.environ['MY_VAR'] if 'MY_VAR' in os.environ else 'default' 
+0

Might не будет хорошей идеей, так как доступ к серверу по умолчанию предоставляет доступ к учетным данным AWS. – nightgaunt