Клей AWS с SecretManager для учетных данных базы данных - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть скрипт AWS Glue Python, который я использую для подключения к базе данных Aurora Mysql. Для этого я попытался использовать AWS SecretManager, чтобы мне не пришлось жестко кодировать учетные данные базы данных в сценарии.

Хотя я могу успешно использовать secretmanager и использовать его в своем скрипте AWS Glue для подключения к RDS, я вижу, что учетные данные не являются секретными, и если я распечатываю содержимое переменной, содержащей учетные данные базы данных, я могу чтобы увидеть пароли, имя пользователя и т. д. в логах cloudwatch.

Ниже приведен фрагмент кода:

# Getting DB credentials from Secrets Manager
client = boto3.client("secretsmanager", region_name="us-west-2")

get_secret_value_response = client.get_secret_value(
        SecretId="RDS_Dev_Cluster"
)

secret = get_secret_value_response['SecretString']
secret = json.loads(secret)

db_username = secret.get('username')
db_password = secret.get('password')
db_url = secret.get('host')

print db_username
print db_password
print db_url

Есть ли способ, которым мы можем зашифровать имя пользователя / пароль. Можем ли мы использовать AWS KMS? Я не пробовал KMS в этом, но хотел бы получить предложения, прежде чем использовать другой сервис AWS. Если нет, то как мы можем замаскировать учетные данные базы данных, кроме secretmanager.

Спасибо

1 Ответ

0 голосов
/ 16 июня 2019

Документация AWS гласит, что AWS Secret Manager всегда хранит ключи в зашифрованном виде, как правило, прозрачно обрабатывает дешифрование. При указании ключа KMS, который должен использовать AWS Secret Manager. прозрачно расшифровывает и возвращает их вам в виде открытого текста

Таким образом, в основном вы видите дешифрованный результат только за вычетом вызова, который вам потребуется для дешифрования KMS API.

...