2

我有一个用于连接 Aurora Mysql 数据库的 AWS Glue Python 脚本。为此,我尝试使用 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,我们如何屏蔽数据库凭证。

谢谢

4

1 回答 1

1

The AWS docs states that AWS Secret Manager always stores the keys encrypted it normally deals with the decryption transparently. When you specify the KMS key that AWS Secret Manager should use. transparently decrypts and returns them to you in plaintext

So basically you are seeing the decrypted result just minus the call you would have to make the the KMS API to decrypt.

于 2019-06-16T10:49:58.547 回答